mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 12:48:10 +00:00
UserspaceEmulator: Add 8/16 bit memory read/write operations
This commit is contained in:
parent
f8b38eabeb
commit
6f27770cea
5 changed files with 109 additions and 0 deletions
|
@ -49,12 +49,36 @@ public:
|
|||
free(m_data);
|
||||
}
|
||||
|
||||
virtual u8 read8(u32 offset) override
|
||||
{
|
||||
ASSERT(offset < size());
|
||||
return *reinterpret_cast<const u8*>(m_data + offset);
|
||||
}
|
||||
|
||||
virtual u16 read16(u32 offset) override
|
||||
{
|
||||
ASSERT(offset + 1 < size());
|
||||
return *reinterpret_cast<const u16*>(m_data + offset);
|
||||
}
|
||||
|
||||
virtual u32 read32(u32 offset) override
|
||||
{
|
||||
ASSERT(offset + 3 < size());
|
||||
return *reinterpret_cast<const u32*>(m_data + offset);
|
||||
}
|
||||
|
||||
virtual void write8(u32 offset, u8 value) override
|
||||
{
|
||||
ASSERT(offset < size());
|
||||
*reinterpret_cast<u8*>(m_data + offset) = value;
|
||||
}
|
||||
|
||||
virtual void write16(u32 offset, u16 value) override
|
||||
{
|
||||
ASSERT(offset + 1 < size());
|
||||
*reinterpret_cast<u16*>(m_data + offset) = value;
|
||||
}
|
||||
|
||||
virtual void write32(u32 offset, u32 value) override
|
||||
{
|
||||
ASSERT(offset + 3 < size());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue