2022-02-08 14:48:41 +01:00
|
|
|
#include <coreinit/cache.h>
|
|
|
|
#include <coreinit/memorymap.h>
|
|
|
|
#include <kernel/kernel.h>
|
2018-09-24 10:43:20 +02:00
|
|
|
|
|
|
|
void KernelWrite(uint32_t addr, const void *data, uint32_t length) {
|
2022-02-08 14:44:53 +01:00
|
|
|
uint32_t dst = OSEffectiveToPhysical(addr);
|
|
|
|
uint32_t src = OSEffectiveToPhysical((uint32_t) data);
|
|
|
|
KernelCopyData(dst, src, length);
|
|
|
|
DCFlushRange((void *) addr, length);
|
|
|
|
ICInvalidateRange((void *) addr, length);
|
2018-09-24 10:43:20 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void KernelWriteU32(uint32_t addr, uint32_t value) {
|
2022-02-08 14:44:53 +01:00
|
|
|
uint32_t dst = OSEffectiveToPhysical(addr);
|
|
|
|
uint32_t src = OSEffectiveToPhysical((uint32_t) &value);
|
|
|
|
KernelCopyData(dst, src, 4);
|
|
|
|
DCFlushRange((void *) addr, 4);
|
|
|
|
ICInvalidateRange((void *) addr, 4);
|
2018-09-24 10:43:20 +02:00
|
|
|
}
|