SVC
| Id | Description |
|---|---|
| 0x1 | ControlMemory |
| 0x2 | QueryMemory |
| 0x3 | ExitProcess |
| 0x4 | GetProcessAffinityMask |
| 0x5 | SetProcessAffinityMask |
| 0x6 | GetProcessIdealProcessor |
| 0x7 | SetProcessIdealProcessor |
| 0x8 | CreateThread |
| 0x9 | ExitThread |
| 0xA | SleepThread |
| 0xB | GetThreadPriority |
| 0xC | SetThreadPriority |
| 0xD | GetThreadAffinityMask |
| 0xE | SetThreadAffinityMask |
| 0xF | GetThreadIdealProcessor |
| 0x10 | SetThreadIdealProcessor |
| 0x11 | GetCurrentProcessorNumber |
| 0x12 | Run |
| 0x13 | CreateMutex |
| 0x14 | ReleaseMutex |
| 0x15 | CreateSemaphore |
| 0x16 | ReleaseSemaphore |
| 0x17 | CreateEvent |
| 0x18 | SignalEvent |
| 0x19 | ClearEvent |
| 0x1A | CreateTimer |
| 0x1B | SetTimer |
| 0x1C | CancelTimer |
| 0x1D | ClearTimer |
| 0x1E | CreateMemoryBlock |
| 0x1F | MapMemoryBlock |
| 0x20 | UnmapMemoryBlock |
| 0x21 | CreateAddressArbiter |
| 0x22 | ArbitrateAddress |
| 0x23 | CloseHandle |
| 0x24 | WaitSynchronization1 |
| 0x25 | WaitSynchronization2 |
| 0x26 | SignalAndWait |
| 0x27 | DuplicateHandle |
| 0x28 | GetSystemTick |
| 0x29 | GetHandleInfo |
| 0x2A | GetSystemInfo |
| 0x2B | GetProcessInfo |
| 0x2C | GetThreadInfo |
| 0x2D | ConnectToPort |
| 0x2E | SendSyncRequest1 |
| 0x2F | SendSyncRequest2 |
| 0x30 | SendSyncRequest3 |
| 0x31 | SendSyncRequest4 |
| 0x32 | SendSyncRequest |
| 0x33 | OpenProcess(Handle*, unsigned int ProcessId) |
| 0x34 | OpenThread |
| 0x35 | GetProcessId(unsigned int *ProcessId, Handle) |
| 0x36 | GetProcessIdOfThread |
| 0x37 | GetThreadId |
| 0x38 | GetResourceLimit |
| 0x39 | GetResourceLimitLimitValues |
| 0x3A | GetResourceLimitCurrentValues |
| 0x3B | GetThreadContext |
| 0x3C | Break(BreakReason) |
| 0x3D | OutputDebugString(void const, int) (Does nothing on non-debug units) |
| 0x3E | ControlPerformanceCounter(unsigned long long, int, unsigned int, unsigned long long) |
| 0x47 | CreatePort |
| 0x48 | CreateSessionToPort |
| 0x49 | CreateSession |
| 0x4A | AcceptSession |
| 0x4B | ReplyAndReceive1 |
| 0x4C | ReplyAndReceive2 |
| 0x4D | ReplyAndReceive3 |
| 0x4E | ReplyAndReceive4 |
| 0x4F | ReplyAndReceive |
| 0x50 | BindInterrupt(Interrupt, Handle, int, bool) |
| 0x51 | UnbindInterrupt(Interrupt, Handle) |
| 0x52 | InvalidateProcessDataCache(Handle, void*, unsigned int) |
| 0x53 | StoreProcessDataCache(Handle process, void const* addr, unsigned int size) |
| 0x54 | FlushProcessDataCache(Handle, void const*, unsigned int) |
| 0x55 | StartInterProcessDma(Handle* out, Handle dstProcess, void* dst, Handle srcProcess, const void* src, size_t size, const DmaConfig& config ) |
| 0x56 | StopDma(Handle) |
| 0x57 | GetDmaState(DmaState*, Handle) |
| 0x58 | RestartDma(nn::Handle, void *, void const*, unsigned int, signed char) |
| 0x60 | DebugActiveProcess(Handle*, unsigned int) |
| 0x61 | BreakDebugProcess(Handle) |
| 0x62 | TerminateDebugProcess(Handle) |
| 0x63 | GetProcessDebugEvent(DebugEventInfo*, Handle) |
| 0x64 | ContinueDebugEvent(Handle, unsigned int) |
| 0x65 | GetProcessList(int*, unsigned int*, int) |
| 0x66 | GetThreadList(int*, unsigned int*, int, Handle) |
| 0x67 | GetDebugThreadContext(ThreadContext*, Handle, unsigned int, unsigned int) |
| 0x68 | SetDebugThreadContext(Handle, unsigned int, ThreadContext const&, unsigned int) |
| 0x69 | QueryDebugProcessMemory(MemoryInfo*, PageInfo*, Handle, unsigned int) |
| 0x6a | ReadProcessMemory(void*, Handle, unsigned int, unsigned int) |
| 0x6b | WriteProcessMemory(Handle, void const*, unsigned int, unsigned int) |
| 0x6c | SetHardwareBreakPoint(int, unsigned int, unsigned int) |
| 0x6d | GetDebugThreadParam(long long *, int *, nn::Handle, unsigned int, nn::dmnt::DebugThreadParam) |
| 0x70 | ? |
| 0x71 | ? |
| 0x72 | ? |
| 0x73 | ? |
| 0x75 | ? |
| 0x76 | TerminateProcess(Handle) |
| 0x7a | DisableExecuteNever(addr, size) (Stubbed for regular kernel) |
| 0x7d | ? |
Calling svcBreak on retail will only terminate the process which called this SVC.