|
|
|
@ -73,7 +73,7 @@ static ResultCode ConnectToPort(Kernel::Handle* out_handle, VAddr port_name_addr |
|
|
|
/// Makes a blocking IPC call to an OS service.
|
|
|
|
static ResultCode SendSyncRequest(Kernel::Handle handle) { |
|
|
|
SharedPtr<Kernel::SyncObject> session = Kernel::g_handle_table.Get<Kernel::SyncObject>(handle); |
|
|
|
if (session == nullptr) { |
|
|
|
if (!session) { |
|
|
|
LOG_ERROR(Kernel_SVC, "called with invalid handle=0x%08X", handle); |
|
|
|
return ERR_INVALID_HANDLE; |
|
|
|
} |
|
|
|
@ -88,11 +88,11 @@ static ResultCode SendSyncRequest(Kernel::Handle handle) { |
|
|
|
} |
|
|
|
|
|
|
|
/// Get the ID for the specified thread.
|
|
|
|
static ResultCode GetThreadId(u32* thread_id, Kernel::Handle handle) { |
|
|
|
LOG_TRACE(Kernel_SVC, "called thread=0x%08X", handle); |
|
|
|
static ResultCode GetThreadId(u32* thread_id, Kernel::Handle thread_handle) { |
|
|
|
LOG_TRACE(Kernel_SVC, "called thread=0x%08X", thread_handle); |
|
|
|
|
|
|
|
const SharedPtr<Kernel::Thread> thread = Kernel::g_handle_table.Get<Kernel::Thread>(handle); |
|
|
|
if (thread == nullptr) { |
|
|
|
const SharedPtr<Kernel::Thread> thread = Kernel::g_handle_table.Get<Kernel::Thread>(thread_handle); |
|
|
|
if (!thread) { |
|
|
|
return ERR_INVALID_HANDLE; |
|
|
|
} |
|
|
|
|
|
|
|
@ -106,7 +106,7 @@ static ResultCode GetProcessId(u32* process_id, Kernel::Handle process_handle) { |
|
|
|
|
|
|
|
const SharedPtr<Kernel::Process> process = |
|
|
|
Kernel::g_handle_table.Get<Kernel::Process>(process_handle); |
|
|
|
if (process == nullptr) { |
|
|
|
if (!process) { |
|
|
|
return ERR_INVALID_HANDLE; |
|
|
|
} |
|
|
|
|
|
|
|
@ -153,7 +153,7 @@ static ResultCode QueryProcessMemory(MemoryInfo* memory_info, PageInfo* /*page_i |
|
|
|
Kernel::Handle process_handle, u64 addr) { |
|
|
|
using Kernel::Process; |
|
|
|
Kernel::SharedPtr<Process> process = Kernel::g_handle_table.Get<Process>(process_handle); |
|
|
|
if (process == nullptr) { |
|
|
|
if (!process) { |
|
|
|
return ERR_INVALID_HANDLE; |
|
|
|
} |
|
|
|
auto vma = process->vm_manager.FindVMA(addr); |
|
|
|
@ -169,6 +169,7 @@ static ResultCode QueryProcessMemory(MemoryInfo* memory_info, PageInfo* /*page_i |
|
|
|
memory_info->size = vma->second.size; |
|
|
|
memory_info->type = static_cast<u32>(vma->second.meminfo_state); |
|
|
|
} |
|
|
|
|
|
|
|
LOG_TRACE(Kernel_SVC, "called process=0x%08X addr=%llx", process_handle, addr); |
|
|
|
return RESULT_SUCCESS; |
|
|
|
} |
|
|
|
@ -179,7 +180,7 @@ static ResultCode QueryMemory(MemoryInfo* memory_info, PageInfo* page_info, VAdd |
|
|
|
return QueryProcessMemory(memory_info, page_info, Kernel::CurrentProcess, addr); |
|
|
|
} |
|
|
|
|
|
|
|
/// Starts the thread for the provided handle.
|
|
|
|
/// Starts the thread for the provided handle
|
|
|
|
static ResultCode StartThread(Handle thread_handle) { |
|
|
|
LOG_TRACE(Kernel_SVC, "called thread=0x%08X", thread_handle); |
|
|
|
|
|
|
|
|