1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
// Copyright 2014 Citra Emulator Project
// Licensed under GPLv2
// Refer to the license.txt file included.
#include "core/hle/function_wrappers.h"
#include "core/hle/hle_syscall.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef u32 Handle;
typedef s32 Result;
////////////////////////////////////////////////////////////////////////////////////////////////////
Result SVC_ConnectToPort(void* out, const char* port_name) {
NOTICE_LOG(OSHLE, "svcConnectToPort called, port_name: %s", port_name);
return 0;
}
const HLE::FunctionDef Syscall_Table[] = {
{0x00, NULL, "Unknown"},
{0x01, NULL, "svcControlMemory"},
{0x02, NULL, "svcQueryMemory"},
{0x03, NULL, "svcExitProcess"},
{0x04, NULL, "svcGetProcessAffinityMask"},
{0x05, NULL, "svcSetProcessAffinityMask"},
{0x06, NULL, "svcGetProcessIdealProcessor"},
{0x07, NULL, "svcSetProcessIdealProcessor"},
{0x08, NULL, "svcCreateThread"},
{0x09, NULL, "svcExitThread"},
{0x0A, NULL, "svcSleepThread"},
{0x0B, NULL, "svcGetThreadPriority"},
{0x0C, NULL, "svcSetThreadPriority"},
{0x0D, NULL, "svcGetThreadAffinityMask"},
{0x0E, NULL, "svcSetThreadAffinityMask"},
{0x0F, NULL, "svcGetThreadIdealProcessor"},
{0x10, NULL, "svcSetThreadIdealProcessor"},
{0x11, NULL, "svcGetCurrentProcessorNumber"},
{0x12, NULL, "svcRun"},
{0x13, NULL, "svcCreateMutex"},
{0x14, NULL, "svcReleaseMutex"},
{0x15, NULL, "svcCreateSemaphore"},
{0x16, NULL, "svcReleaseSemaphore"},
{0x17, NULL, "svcCreateEvent"},
{0x18, NULL, "svcSignalEvent"},
{0x19, NULL, "svcClearEvent"},
{0x1A, NULL, "svcCreateTimer"},
{0x1B, NULL, "svcSetTimer"},
{0x1C, NULL, "svcCancelTimer"},
{0x1D, NULL, "svcClearTimer"},
{0x1E, NULL, "svcCreateMemoryBlock"},
{0x1F, NULL, "svcMapMemoryBlock"},
{0x20, NULL, "svcUnmapMemoryBlock"},
{0x21, NULL, "svcCreateAddressArbiter"},
{0x22, NULL, "svcArbitrateAddress"},
{0x23, NULL, "svcCloseHandle"},
{0x24, NULL, "svcWaitSynchronization1"},
{0x25, NULL, "svcWaitSynchronizationN"},
{0x26, NULL, "svcSignalAndWait"},
{0x27, NULL, "svcDuplicateHandle"},
{0x28, NULL, "svcGetSystemTick"},
{0x29, NULL, "svcGetHandleInfo"},
{0x2A, NULL, "svcGetSystemInfo"},
{0x2B, NULL, "svcGetProcessInfo"},
{0x2C, NULL, "svcGetThreadInfo"},
{0x2D, WrapI_VC<SVC_ConnectToPort>, "svcConnectToPort"},
{0x2E NULL, "svcSendSyncRequest1"},
{0x2F NULL, "svcSendSyncRequest2"},
{0x30 NULL, "svcSendSyncRequest3"},
{0x31 NULL, "svcSendSyncRequest4"},
{0x32 NULL, "svcSendSyncRequest"},
{0x33 NULL, "svcOpenProcess"},
{0x34 NULL, "svcOpenThread"},
{0x35 NULL, "svcGetProcessId"},
{0x36 NULL, "svcGetProcessIdOfThread"},
{0x37 NULL, "svcGetThreadId"},
{0x38 NULL, "svcGetResourceLimit"},
{0x39 NULL, "svcGetResourceLimitLimitValues"},
{0x3A NULL, "svcGetResourceLimitCurrentValues"},
{0x3B NULL, "svcGetThreadContext"},
{0x3C NULL, "svcBreak"},
{0x3D NULL, "svcOutputDebugString"},
{0x3E NULL, "svcControlPerformanceCounter"},
{0x3F, NULL, "Unknown"},
{0x40, NULL, "Unknown"},
{0x41, NULL, "Unknown"},
{0x42, NULL, "Unknown"},
{0x43, NULL, "Unknown"},
{0x44, NULL, "Unknown"},
{0x45, NULL, "Unknown"},
{0x46, NULL, "Unknown"},
{0x47 NULL, "svcCreatePort"},
{0x48 NULL, "svcCreateSessionToPort"},
{0x49 NULL, "svcCreateSession"},
{0x4A NULL, "svcAcceptSession"},
{0x4B NULL, "svcReplyAndReceive1"},
{0x4C NULL, "svcReplyAndReceive2"},
{0x4D NULL, "svcReplyAndReceive3"},
{0x4E NULL, "svcReplyAndReceive4"},
{0x4F NULL, "svcReplyAndReceive"},
{0x50 NULL, "svcBindInterrupt"},
{0x51 NULL, "svcUnbindInterrupt"},
{0x52 NULL, "svcInvalidateProcessDataCache"},
{0x53 NULL, "svcStoreProcessDataCache"},
{0x54 NULL, "svcFlushProcessDataCache"},
{0x55 NULL, "svcStartInterProcessDma"},
{0x56 NULL, "svcStopDma"},
{0x57 NULL, "svcGetDmaState"},
{0x58 NULL, "svcRestartDma"},
{0x59, NULL, "Unknown"},
{0x5A, NULL, "Unknown"},
{0x5B, NULL, "Unknown"},
{0x5C, NULL, "Unknown"},
{0x5D, NULL, "Unknown"},
{0x5E, NULL, "Unknown"},
{0x5F, NULL, "Unknown"},
{0x60 NULL, "svcDebugActiveProcess"},
{0x61 NULL, "svcBreakDebugProcess"},
{0x62 NULL, "svcTerminateDebugProcess"},
{0x63 NULL, "svcGetProcessDebugEvent"},
{0x64 NULL, "svcContinueDebugEvent"},
{0x65 NULL, "svcGetProcessList"},
{0x66 NULL, "svcGetThreadList"},
{0x67 NULL, "svcGetDebugThreadContext"},
{0x68 NULL, "svcSetDebugThreadContext"},
{0x69 NULL, "svcQueryDebugProcessMemory"},
{0x6A NULL, "svcReadProcessMemory"},
{0x6B NULL, "svcWriteProcessMemory"},
{0x6C NULL, "svcSetHardwareBreakPoint"},
{0x6D NULL, "svcGetDebugThreadParam"},
{0x6E, NULL, "Unknown"},
{0x6F, NULL, "Unknown"},
{0x70 NULL, "svcControlProcessMemory"},
{0x71 NULL, "svcMapProcessMemory"},
{0x72 NULL, "svcUnmapProcessMemory"},
{0x73, NULL, "Unknown"},
{0x74, NULL, "Unknown"},
{0x75, NULL, "Unknown"},
{0x76 NULL, "svcTerminateProcess"},
{0x77, NULL, "Unknown"},
{0x78 NULL, "svcCreateResourceLimit"},
{0x79, NULL, "Unknown"},
{0x7A, NULL, "Unknown"},
{0x7B, NULL, "Unknown"},
{0x7C NULL, "svcKernelSetState"},
{0x7D NULL, "svcQueryProcessMemory"},
};
void Register_Syscall() {
HLE::RegisterModule("SyscallTable", ARRAY_SIZE(Syscall_Table), Syscall_Table);
}
|