diff options
Diffstat (limited to 'src/core/hle/svc.cpp')
| -rw-r--r-- | src/core/hle/svc.cpp | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 9da6c0adf..0401f763b 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp | |||
| @@ -110,28 +110,22 @@ static ResultCode QueryProcessMemory(MemoryInfo* memory_info, PageInfo* /*page_i | |||
| 110 | Kernel::Handle process_handle, u64 addr) { | 110 | Kernel::Handle process_handle, u64 addr) { |
| 111 | using Kernel::Process; | 111 | using Kernel::Process; |
| 112 | Kernel::SharedPtr<Process> process = Kernel::g_handle_table.Get<Process>(process_handle); | 112 | Kernel::SharedPtr<Process> process = Kernel::g_handle_table.Get<Process>(process_handle); |
| 113 | if (process == nullptr) | 113 | if (process == nullptr) { |
| 114 | return ERR_INVALID_HANDLE; | 114 | return ERR_INVALID_HANDLE; |
| 115 | 115 | } | |
| 116 | auto vma = process->vm_manager.FindVMA(addr); | 116 | auto vma = process->vm_manager.FindVMA(addr); |
| 117 | 117 | memory_info->attributes = 0; | |
| 118 | if (vma == Kernel::g_current_process->vm_manager.vma_map.end()) | 118 | if (vma == Kernel::g_current_process->vm_manager.vma_map.end()) { |
| 119 | { | ||
| 120 | //return Kernel::ERR_INVALID_ADDRESS; | ||
| 121 | |||
| 122 | memory_info->base_address = 0; | 119 | memory_info->base_address = 0; |
| 123 | memory_info->permission = static_cast<u64>(Kernel::VMAPermission::None); | 120 | memory_info->permission = static_cast<u32>(Kernel::VMAPermission::None); |
| 124 | memory_info->size = 0; | 121 | memory_info->size = 0; |
| 125 | memory_info->state = static_cast<u64>(Kernel::MemoryState::Free); | 122 | memory_info->type = static_cast<u32>(Kernel::MemoryState::Free); |
| 126 | 123 | } else { | |
| 127 | return RESULT_SUCCESS; | 124 | memory_info->base_address = vma->second.base; |
| 125 | memory_info->permission = static_cast<u32>(vma->second.permissions); | ||
| 126 | memory_info->size = vma->second.size; | ||
| 127 | memory_info->type = static_cast<u32>(vma->second.meminfo_state); | ||
| 128 | } | 128 | } |
| 129 | |||
| 130 | memory_info->base_address = vma->second.base; | ||
| 131 | memory_info->permission = static_cast<u64>(vma->second.permissions); | ||
| 132 | memory_info->size = vma->second.size; | ||
| 133 | memory_info->state = static_cast<u64>(vma->second.meminfo_state); | ||
| 134 | |||
| 135 | LOG_TRACE(Kernel_SVC, "called process=0x%08X addr=%llx", process_handle, addr); | 129 | LOG_TRACE(Kernel_SVC, "called process=0x%08X addr=%llx", process_handle, addr); |
| 136 | return RESULT_SUCCESS; | 130 | return RESULT_SUCCESS; |
| 137 | } | 131 | } |