1
Fork 0
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:
Andreas Kling 2020-07-10 17:17:06 +02:00
parent f8b38eabeb
commit 6f27770cea
5 changed files with 109 additions and 0 deletions

View file

@ -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());