From 402ca480cdce36a3b15955cc3bf4378b581095e7 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Sun, 1 Apr 2018 22:13:56 +0300 Subject: [PATCH] Fix vm::check_addr usage --- Utilities/GDBDebugServer.cpp | 4 ++-- rpcs3/Emu/Cell/PPUThread.cpp | 4 ++-- rpcs3/Emu/Cell/lv2/sys_gpio.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Utilities/GDBDebugServer.cpp b/Utilities/GDBDebugServer.cpp index 0a8fab87ba..c0bcf02e03 100644 --- a/Utilities/GDBDebugServer.cpp +++ b/Utilities/GDBDebugServer.cpp @@ -540,7 +540,7 @@ bool GDBDebugServer::cmd_read_memory(gdb_cmd & cmd) std::string result; result.reserve(len * 2); for (u32 i = 0; i < len; ++i) { - if (vm::check_addr(addr, 1, vm::page_info_t::page_readable)) { + if (vm::check_addr(addr, 1, vm::page_allocated | vm::page_readable)) { result += to_hexbyte(vm::read8(addr + i)); } else { break; @@ -566,7 +566,7 @@ bool GDBDebugServer::cmd_write_memory(gdb_cmd & cmd) u32 len = hex_to_u32(cmd.data.substr(s + 1, s2 - s - 1)); const char* data_ptr = (cmd.data.c_str()) + s2 + 1; for (u32 i = 0; i < len; ++i) { - if (vm::check_addr(addr + i, 1, vm::page_info_t::page_writable)) { + if (vm::check_addr(addr + i, 1, vm::page_allocated | vm::page_writable)) { u8 val; int res = sscanf_s(data_ptr, "%02hhX", &val); if (!res) { diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index 71e2c120c6..7346186797 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -489,12 +489,12 @@ std::string ppu_thread::dump() const u32 stack_min = stack_ptr & ~0xfff; u32 stack_max = stack_min + 4096; - while (stack_min && vm::check_addr(stack_min - 4096, 4096, vm::page_writable)) + while (stack_min && vm::check_addr(stack_min - 4096, 4096, vm::page_allocated | vm::page_writable)) { stack_min -= 4096; } - while (stack_max + 4096 && vm::check_addr(stack_max, 4096, vm::page_writable)) + while (stack_max + 4096 && vm::check_addr(stack_max, 4096, vm::page_allocated | vm::page_writable)) { stack_max += 4096; } diff --git a/rpcs3/Emu/Cell/lv2/sys_gpio.cpp b/rpcs3/Emu/Cell/lv2/sys_gpio.cpp index a667cfe1c2..46fc34f871 100644 --- a/rpcs3/Emu/Cell/lv2/sys_gpio.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_gpio.cpp @@ -14,7 +14,7 @@ error_code sys_gpio_get(u64 device_id, vm::ptr value) return CELL_ESRCH; } - if (!vm::check_addr(value.addr(), sizeof(u64), vm::page_writable)) + if (!vm::check_addr(value.addr(), sizeof(u64), vm::page_allocated | vm::page_writable)) { return CELL_EFAULT; }