The kernel does the equivalent of the following check before proceeding:
if (address + 0x8000000000 < 0x7FFFE00000) {
return ERR_INVALID_MEMORY_STATE;
}
which is essentially what our IsKernelVirtualAddress() function does. So
we should also be checking for this.
The kernel also checks if the given input addresses are 4-byte aligned,
however our Mutex::TryAcquire() and Mutex::Release() functions already
handle this, so we don't need to add code for this case.
|
||
|---|---|---|
| .. | ||
| arm | ||
| crypto | ||
| file_sys | ||
| frontend | ||
| gdbstub | ||
| hle | ||
| loader | ||
| tracer | ||
| CMakeLists.txt | ||
| core.cpp | ||
| core.h | ||
| core_cpu.cpp | ||
| core_cpu.h | ||
| core_timing.cpp | ||
| core_timing.h | ||
| core_timing_util.cpp | ||
| core_timing_util.h | ||
| memory.cpp | ||
| memory.h | ||
| memory_hook.cpp | ||
| memory_hook.h | ||
| memory_setup.h | ||
| perf_stats.cpp | ||
| perf_stats.h | ||
| settings.cpp | ||
| settings.h | ||
| telemetry_session.cpp | ||
| telemetry_session.h | ||