11using namespace MaxOS::memory;
24MemIO::~MemIO() =
default;
36MemIO8Bit::~MemIO8Bit() =
default;
45 (*((
volatile uint8_t*) (
m_address))) = (data);
55 return *((
volatile uint8_t*) (
m_address));
68MemIO16Bit::~MemIO16Bit() =
default;
77 (*((
volatile uint16_t*) (
m_address))) = (data);
87 return *((
volatile uint16_t*) (
m_address));
100MemIO32Bit::~MemIO32Bit() =
default;
109 (*((
volatile uint32_t*) (
m_address))) = (data);
119 return *((
volatile uint32_t*) (
m_address));
132MemIO64Bit::~MemIO64Bit() =
default;
141 (*((
volatile uint64_t*) (
m_address))) = (data);
151 return *((
volatile uint64_t*) (
m_address));
MemIO16Bit(uintptr_t address)
Construct a new Mem IO object for 16 bit reads/writes.
virtual uint16_t read()
Reads data from the memory address.
virtual void write(uint16_t data)
Writes data to the memory address.
virtual uint32_t read()
Reads data from the memory address.
MemIO32Bit(uintptr_t address)
Construct a new Mem IO object for 32 bit reads/writes.
virtual void write(uint32_t data)
Writes data to the memory address.
virtual void write(uint64_t data)
Writes data to the memory address.
MemIO64Bit(uintptr_t address)
Construct a new Mem IO object for 64 bit reads/writes.
virtual uint64_t read()
Reads data from the memory address.
virtual uint8_t read()
Reads data from the memory address.
MemIO8Bit(uintptr_t address)
Construct a new Mem IO object for 8 bit reads/writes.
virtual void write(uint8_t data)
Writes data to the memory address.
base class for all memory IO
uintptr_t m_address
The memory address to read from / write to.
MemIO(uintptr_t address)
Construct a new Mem IO object.
Defines classes for memory input and output operations of various bit widths (8, 16,...