criscv/include/address_space.h
Minecon724 d9bd57f984
Some checks failed
/ deploy (push) Has been cancelled
work
2024-10-21 19:42:27 +02:00

27 lines
No EOL
802 B
C

#ifndef ADDRESS_SPACE_H
#define ADDRESS_SPACE_H
#include <stdint.h>
#include <stdbool.h>
struct AddressSpace_s {
// A pointer to a ROM array. The array can vary in length.
uint8_t *rom;
// The size of ROM.
uint32_t romSize; // TODO look into making it const
// Is ROM read only
bool romLocked;
// A pointer to a RAM array. The array can vary in length.
uint8_t *ram;
// The size of RAM.
uint32_t ramSize;
};
typedef struct AddressSpace_s AddressSpace;
AddressSpace *create_address_space(const uint32_t romSize, const uint32_t ramSize);
int read_address_space(const AddressSpace *addressSpace, const uint32_t address, const int n, void *dest);
int write_address_space(const AddressSpace *addressSpace, const uint32_t address, const int n, void *src);
#endif