|
|
|
@ -452,57 +452,57 @@ struct FunctionDef { |
|
|
|
|
|
|
|
static const FunctionDef SVC_Table[] = { |
|
|
|
{0x00, nullptr, "Unknown"}, |
|
|
|
{0x01, SvcWrap<SetHeapSize>, "svcSetHeapSize"}, |
|
|
|
{0x02, nullptr, "svcSetMemoryPermission"}, |
|
|
|
{0x03, nullptr, "svcSetMemoryAttribute"}, |
|
|
|
{0x04, SvcWrap<MapMemory>, "svcMapMemory"}, |
|
|
|
{0x05, SvcWrap<UnmapMemory>, "svcUnmapMemory"}, |
|
|
|
{0x06, SvcWrap<QueryMemory>, "svcQueryMemory"}, |
|
|
|
{0x07, SvcWrap<ExitProcess>, "svcExitProcess"}, |
|
|
|
{0x08, SvcWrap<CreateThread>, "svcCreateThread"}, |
|
|
|
{0x09, SvcWrap<StartThread>, "svcStartThread"}, |
|
|
|
{0x0A, SvcWrap<ExitThread>, "svcExitThread"}, |
|
|
|
{0x0B, SvcWrap<SleepThread>, "svcSleepThread"}, |
|
|
|
{0x0C, SvcWrap<GetThreadPriority>, "svcGetThreadPriority"}, |
|
|
|
{0x0D, SvcWrap<SetThreadPriority>, "svcSetThreadPriority"}, |
|
|
|
{0x0E, nullptr, "svcGetThreadCoreMask"}, |
|
|
|
{0x0F, nullptr, "svcSetThreadCoreMask"}, |
|
|
|
{0x10, SvcWrap<GetCurrentProcessorNumber>, "svcGetCurrentProcessorNumber"}, |
|
|
|
{0x11, nullptr, "svcSignalEvent"}, |
|
|
|
{0x12, nullptr, "svcClearEvent"}, |
|
|
|
{0x13, nullptr, "svcMapSharedMemory"}, |
|
|
|
{0x14, nullptr, "svcUnmapSharedMemory"}, |
|
|
|
{0x15, nullptr, "svcCreateTransferMemory"}, |
|
|
|
{0x16, SvcWrap<CloseHandle>, "svcCloseHandle"}, |
|
|
|
{0x17, nullptr, "svcResetSignal"}, |
|
|
|
{0x18, SvcWrap<WaitSynchronization>, "svcWaitSynchronization"}, |
|
|
|
{0x19, nullptr, "svcCancelSynchronization"}, |
|
|
|
{0x1A, SvcWrap<LockMutex>, "svcLockMutex"}, |
|
|
|
{0x1B, SvcWrap<UnlockMutex>, "svcUnlockMutex"}, |
|
|
|
{0x1C, nullptr, "svcWaitProcessWideKeyAtomic"}, |
|
|
|
{0x1D, SvcWrap<SignalProcessWideKey>, "svcSignalProcessWideKey"}, |
|
|
|
{0x1E, nullptr, "svcGetSystemTick"}, |
|
|
|
{0x1F, SvcWrap<ConnectToPort>, "svcConnectToPort"}, |
|
|
|
{0x20, nullptr, "svcSendSyncRequestLight"}, |
|
|
|
{0x21, SvcWrap<SendSyncRequest>, "svcSendSyncRequest"}, |
|
|
|
{0x22, nullptr, "svcSendSyncRequestWithUserBuffer"}, |
|
|
|
{0x23, nullptr, "svcSendAsyncRequestWithUserBuffer"}, |
|
|
|
{0x24, SvcWrap<GetProcessId>, "svcGetProcessId"}, |
|
|
|
{0x25, SvcWrap<GetThreadId>, "svcGetThreadId"}, |
|
|
|
{0x26, SvcWrap<Break>, "svcBreak"}, |
|
|
|
{0x27, SvcWrap<OutputDebugString>, "svcOutputDebugString"}, |
|
|
|
{0x28, nullptr, "svcReturnFromException"}, |
|
|
|
{0x29, SvcWrap<GetInfo>, "svcGetInfo"}, |
|
|
|
{0x2A, nullptr, "svcFlushEntireDataCache"}, |
|
|
|
{0x2B, nullptr, "svcFlushDataCache"}, |
|
|
|
{0x2C, nullptr, "svcMapPhysicalMemory"}, |
|
|
|
{0x2D, nullptr, "svcUnmapPhysicalMemory"}, |
|
|
|
{0x01, SvcWrap<SetHeapSize>, "SetHeapSize"}, |
|
|
|
{0x02, nullptr, "SetMemoryPermission"}, |
|
|
|
{0x03, nullptr, "SetMemoryAttribute"}, |
|
|
|
{0x04, SvcWrap<MapMemory>, "MapMemory"}, |
|
|
|
{0x05, SvcWrap<UnmapMemory>, "UnmapMemory"}, |
|
|
|
{0x06, SvcWrap<QueryMemory>, "QueryMemory"}, |
|
|
|
{0x07, SvcWrap<ExitProcess>, "ExitProcess"}, |
|
|
|
{0x08, SvcWrap<CreateThread>, "CreateThread"}, |
|
|
|
{0x09, SvcWrap<StartThread>, "StartThread"}, |
|
|
|
{0x0A, SvcWrap<ExitThread>, "ExitThread"}, |
|
|
|
{0x0B, SvcWrap<SleepThread>, "SleepThread"}, |
|
|
|
{0x0C, SvcWrap<GetThreadPriority>, "GetThreadPriority"}, |
|
|
|
{0x0D, SvcWrap<SetThreadPriority>, "SetThreadPriority"}, |
|
|
|
{0x0E, nullptr, "GetThreadCoreMask"}, |
|
|
|
{0x0F, nullptr, "SetThreadCoreMask"}, |
|
|
|
{0x10, SvcWrap<GetCurrentProcessorNumber>, "GetCurrentProcessorNumber"}, |
|
|
|
{0x11, nullptr, "SignalEvent"}, |
|
|
|
{0x12, nullptr, "ClearEvent"}, |
|
|
|
{0x13, nullptr, "MapSharedMemory"}, |
|
|
|
{0x14, nullptr, "UnmapSharedMemory"}, |
|
|
|
{0x15, nullptr, "CreateTransferMemory"}, |
|
|
|
{0x16, SvcWrap<CloseHandle>, "CloseHandle"}, |
|
|
|
{0x17, nullptr, "ResetSignal"}, |
|
|
|
{0x18, SvcWrap<WaitSynchronization>, "WaitSynchronization"}, |
|
|
|
{0x19, nullptr, "CancelSynchronization"}, |
|
|
|
{0x1A, SvcWrap<LockMutex>, "LockMutex"}, |
|
|
|
{0x1B, SvcWrap<UnlockMutex>, "UnlockMutex"}, |
|
|
|
{0x1C, nullptr, "WaitProcessWideKeyAtomic"}, |
|
|
|
{0x1D, SvcWrap<SignalProcessWideKey>, "SignalProcessWideKey"}, |
|
|
|
{0x1E, nullptr, "GetSystemTick"}, |
|
|
|
{0x1F, SvcWrap<ConnectToPort>, "ConnectToPort"}, |
|
|
|
{0x20, nullptr, "SendSyncRequestLight"}, |
|
|
|
{0x21, SvcWrap<SendSyncRequest>, "SendSyncRequest"}, |
|
|
|
{0x22, nullptr, "SendSyncRequestWithUserBuffer"}, |
|
|
|
{0x23, nullptr, "SendAsyncRequestWithUserBuffer"}, |
|
|
|
{0x24, SvcWrap<GetProcessId>, "GetProcessId"}, |
|
|
|
{0x25, SvcWrap<GetThreadId>, "GetThreadId"}, |
|
|
|
{0x26, SvcWrap<Break>, "Break"}, |
|
|
|
{0x27, SvcWrap<OutputDebugString>, "OutputDebugString"}, |
|
|
|
{0x28, nullptr, "ReturnFromException"}, |
|
|
|
{0x29, SvcWrap<GetInfo>, "GetInfo"}, |
|
|
|
{0x2A, nullptr, "FlushEntireDataCache"}, |
|
|
|
{0x2B, nullptr, "FlushDataCache"}, |
|
|
|
{0x2C, nullptr, "MapPhysicalMemory"}, |
|
|
|
{0x2D, nullptr, "UnmapPhysicalMemory"}, |
|
|
|
{0x2E, nullptr, "Unknown"}, |
|
|
|
{0x2F, nullptr, "svcGetLastThreadInfo"}, |
|
|
|
{0x30, nullptr, "svcGetResourceLimitLimitValue"}, |
|
|
|
{0x31, nullptr, "svcGetResourceLimitCurrentValue"}, |
|
|
|
{0x32, nullptr, "svcSetThreadActivity"}, |
|
|
|
{0x33, nullptr, "svcGetThreadContext"}, |
|
|
|
{0x2F, nullptr, "GetLastThreadInfo"}, |
|
|
|
{0x30, nullptr, "GetResourceLimitLimitValue"}, |
|
|
|
{0x31, nullptr, "GetResourceLimitCurrentValue"}, |
|
|
|
{0x32, nullptr, "SetThreadActivity"}, |
|
|
|
{0x33, nullptr, "GetThreadContext"}, |
|
|
|
{0x34, nullptr, "Unknown"}, |
|
|
|
{0x35, nullptr, "Unknown"}, |
|
|
|
{0x36, nullptr, "Unknown"}, |
|
|
|
@ -511,16 +511,16 @@ static const FunctionDef SVC_Table[] = { |
|
|
|
{0x39, nullptr, "Unknown"}, |
|
|
|
{0x3A, nullptr, "Unknown"}, |
|
|
|
{0x3B, nullptr, "Unknown"}, |
|
|
|
{0x3C, nullptr, "svcDumpInfo"}, |
|
|
|
{0x3C, nullptr, "DumpInfo"}, |
|
|
|
{0x3D, nullptr, "Unknown"}, |
|
|
|
{0x3E, nullptr, "Unknown"}, |
|
|
|
{0x3F, nullptr, "Unknown"}, |
|
|
|
{0x40, nullptr, "svcCreateSession"}, |
|
|
|
{0x41, nullptr, "svcAcceptSession"}, |
|
|
|
{0x42, nullptr, "svcReplyAndReceiveLight"}, |
|
|
|
{0x43, nullptr, "svcReplyAndReceive"}, |
|
|
|
{0x44, nullptr, "svcReplyAndReceiveWithUserBuffer"}, |
|
|
|
{0x45, nullptr, "svcCreateEvent"}, |
|
|
|
{0x40, nullptr, "CreateSession"}, |
|
|
|
{0x41, nullptr, "AcceptSession"}, |
|
|
|
{0x42, nullptr, "ReplyAndReceiveLight"}, |
|
|
|
{0x43, nullptr, "ReplyAndReceive"}, |
|
|
|
{0x44, nullptr, "ReplyAndReceiveWithUserBuffer"}, |
|
|
|
{0x45, nullptr, "CreateEvent"}, |
|
|
|
{0x46, nullptr, "Unknown"}, |
|
|
|
{0x47, nullptr, "Unknown"}, |
|
|
|
{0x48, nullptr, "Unknown"}, |
|
|
|
@ -528,57 +528,57 @@ static const FunctionDef SVC_Table[] = { |
|
|
|
{0x4A, nullptr, "Unknown"}, |
|
|
|
{0x4B, nullptr, "Unknown"}, |
|
|
|
{0x4C, nullptr, "Unknown"}, |
|
|
|
{0x4D, nullptr, "svcSleepSystem"}, |
|
|
|
{0x4E, nullptr, "svcReadWriteRegister"}, |
|
|
|
{0x4F, nullptr, "svcSetProcessActivity"}, |
|
|
|
{0x50, nullptr, "svcCreateSharedMemory"}, |
|
|
|
{0x51, nullptr, "svcMapTransferMemory"}, |
|
|
|
{0x52, nullptr, "svcUnmapTransferMemory"}, |
|
|
|
{0x53, nullptr, "svcCreateInterruptEvent"}, |
|
|
|
{0x54, nullptr, "svcQueryPhysicalAddress"}, |
|
|
|
{0x55, nullptr, "svcQueryIoMapping"}, |
|
|
|
{0x56, nullptr, "svcCreateDeviceAddressSpace"}, |
|
|
|
{0x57, nullptr, "svcAttachDeviceAddressSpace"}, |
|
|
|
{0x58, nullptr, "svcDetachDeviceAddressSpace"}, |
|
|
|
{0x59, nullptr, "svcMapDeviceAddressSpaceByForce"}, |
|
|
|
{0x5A, nullptr, "svcMapDeviceAddressSpaceAligned"}, |
|
|
|
{0x5B, nullptr, "svcMapDeviceAddressSpace"}, |
|
|
|
{0x5C, nullptr, "svcUnmapDeviceAddressSpace"}, |
|
|
|
{0x5D, nullptr, "svcInvalidateProcessDataCache"}, |
|
|
|
{0x5E, nullptr, "svcStoreProcessDataCache"}, |
|
|
|
{0x5F, nullptr, "svcFlushProcessDataCache"}, |
|
|
|
{0x60, nullptr, "svcDebugActiveProcess"}, |
|
|
|
{0x61, nullptr, "svcBreakDebugProcess"}, |
|
|
|
{0x62, nullptr, "svcTerminateDebugProcess"}, |
|
|
|
{0x63, nullptr, "svcGetDebugEvent"}, |
|
|
|
{0x64, nullptr, "svcContinueDebugEvent"}, |
|
|
|
{0x65, nullptr, "svcGetProcessList"}, |
|
|
|
{0x66, nullptr, "svcGetThreadList"}, |
|
|
|
{0x67, nullptr, "svcGetDebugThreadContext"}, |
|
|
|
{0x68, nullptr, "svcSetDebugThreadContext"}, |
|
|
|
{0x69, nullptr, "svcQueryDebugProcessMemory"}, |
|
|
|
{0x6A, nullptr, "svcReadDebugProcessMemory"}, |
|
|
|
{0x6B, nullptr, "svcWriteDebugProcessMemory"}, |
|
|
|
{0x6C, nullptr, "svcSetHardwareBreakPoint"}, |
|
|
|
{0x6D, nullptr, "svcGetDebugThreadParam"}, |
|
|
|
{0x4D, nullptr, "SleepSystem"}, |
|
|
|
{0x4E, nullptr, "ReadWriteRegister"}, |
|
|
|
{0x4F, nullptr, "SetProcessActivity"}, |
|
|
|
{0x50, nullptr, "CreateSharedMemory"}, |
|
|
|
{0x51, nullptr, "MapTransferMemory"}, |
|
|
|
{0x52, nullptr, "UnmapTransferMemory"}, |
|
|
|
{0x53, nullptr, "CreateInterruptEvent"}, |
|
|
|
{0x54, nullptr, "QueryPhysicalAddress"}, |
|
|
|
{0x55, nullptr, "QueryIoMapping"}, |
|
|
|
{0x56, nullptr, "CreateDeviceAddressSpace"}, |
|
|
|
{0x57, nullptr, "AttachDeviceAddressSpace"}, |
|
|
|
{0x58, nullptr, "DetachDeviceAddressSpace"}, |
|
|
|
{0x59, nullptr, "MapDeviceAddressSpaceByForce"}, |
|
|
|
{0x5A, nullptr, "MapDeviceAddressSpaceAligned"}, |
|
|
|
{0x5B, nullptr, "MapDeviceAddressSpace"}, |
|
|
|
{0x5C, nullptr, "UnmapDeviceAddressSpace"}, |
|
|
|
{0x5D, nullptr, "InvalidateProcessDataCache"}, |
|
|
|
{0x5E, nullptr, "StoreProcessDataCache"}, |
|
|
|
{0x5F, nullptr, "FlushProcessDataCache"}, |
|
|
|
{0x60, nullptr, "DebugActiveProcess"}, |
|
|
|
{0x61, nullptr, "BreakDebugProcess"}, |
|
|
|
{0x62, nullptr, "TerminateDebugProcess"}, |
|
|
|
{0x63, nullptr, "GetDebugEvent"}, |
|
|
|
{0x64, nullptr, "ContinueDebugEvent"}, |
|
|
|
{0x65, nullptr, "GetProcessList"}, |
|
|
|
{0x66, nullptr, "GetThreadList"}, |
|
|
|
{0x67, nullptr, "GetDebugThreadContext"}, |
|
|
|
{0x68, nullptr, "SetDebugThreadContext"}, |
|
|
|
{0x69, nullptr, "QueryDebugProcessMemory"}, |
|
|
|
{0x6A, nullptr, "ReadDebugProcessMemory"}, |
|
|
|
{0x6B, nullptr, "WriteDebugProcessMemory"}, |
|
|
|
{0x6C, nullptr, "SetHardwareBreakPoint"}, |
|
|
|
{0x6D, nullptr, "GetDebugThreadParam"}, |
|
|
|
{0x6E, nullptr, "Unknown"}, |
|
|
|
{0x6F, nullptr, "Unknown"}, |
|
|
|
{0x70, nullptr, "svcCreatePort"}, |
|
|
|
{0x71, nullptr, "svcManageNamedPort"}, |
|
|
|
{0x72, nullptr, "svcConnectToPort"}, |
|
|
|
{0x73, nullptr, "svcSetProcessMemoryPermission"}, |
|
|
|
{0x74, nullptr, "svcMapProcessMemory"}, |
|
|
|
{0x75, nullptr, "svcUnmapProcessMemory"}, |
|
|
|
{0x76, nullptr, "svcQueryProcessMemory"}, |
|
|
|
{0x77, nullptr, "svcMapProcessCodeMemory"}, |
|
|
|
{0x78, nullptr, "svcUnmapProcessCodeMemory"}, |
|
|
|
{0x79, nullptr, "svcCreateProcess"}, |
|
|
|
{0x7A, nullptr, "svcStartProcess"}, |
|
|
|
{0x7B, nullptr, "svcTerminateProcess"}, |
|
|
|
{0x7C, nullptr, "svcGetProcessInfo"}, |
|
|
|
{0x7D, nullptr, "svcCreateResourceLimit"}, |
|
|
|
{0x7E, nullptr, "svcSetResourceLimitLimitValue"}, |
|
|
|
{0x7F, nullptr, "svcCallSecureMonitor"}, |
|
|
|
{0x70, nullptr, "CreatePort"}, |
|
|
|
{0x71, nullptr, "ManageNamedPort"}, |
|
|
|
{0x72, nullptr, "ConnectToPort"}, |
|
|
|
{0x73, nullptr, "SetProcessMemoryPermission"}, |
|
|
|
{0x74, nullptr, "MapProcessMemory"}, |
|
|
|
{0x75, nullptr, "UnmapProcessMemory"}, |
|
|
|
{0x76, nullptr, "QueryProcessMemory"}, |
|
|
|
{0x77, nullptr, "MapProcessCodeMemory"}, |
|
|
|
{0x78, nullptr, "UnmapProcessCodeMemory"}, |
|
|
|
{0x79, nullptr, "CreateProcess"}, |
|
|
|
{0x7A, nullptr, "StartProcess"}, |
|
|
|
{0x7B, nullptr, "TerminateProcess"}, |
|
|
|
{0x7C, nullptr, "GetProcessInfo"}, |
|
|
|
{0x7D, nullptr, "CreateResourceLimit"}, |
|
|
|
{0x7E, nullptr, "SetResourceLimitLimitValue"}, |
|
|
|
{0x7F, nullptr, "CallSecureMonitor"}, |
|
|
|
}; |
|
|
|
|
|
|
|
static const FunctionDef* GetSVCInfo(u32 func_num) { |
|
|
|
|