@ -139,6 +139,8 @@ void Write8(const u32 addr, const u8 data);
void Write16(const u32 addr, const u16 data);
void Write32(const u32 addr, const u32 data);
void WriteBlock(const u32 addr, const u8* data, const int size);
u8* GetPointer(const u32 Address);
/**
@ -293,4 +293,16 @@ void Write64(const u32 addr, const u64 data) {
_Write<u64_le>(addr, data);
}
void WriteBlock(const u32 addr, const u8* data, const int size) {
int offset = 0;
while (offset < (size & ~3))
Write32(addr + offset, *(u32*)&data[offset += 4]);
if (size & 2)
Write16(addr + offset, *(u16*)&data[offset += 2]);
if (size & 1)
Write8(addr + offset, data[offset]);
} // namespace