Inputs are read from registers starting from r0 and outputs are written back to the same registers (also starting with r0).
| ID | Name | Inputs | Outputs |
|---|---|---|---|
| 0x01 | ControlMemory | r0: MemoryOperation operationr1: u32/void* addr0r2: u32/void* addr1r3: u32 sizer4: MemoryPermission permissions | r0: Resultr1: u32/void* addr_out |
| 0x02 | QueryMemory | r2?: u32/void* addr | r0: Resultr1: u32 base_process_virtual_addressr2: u32 sizer3: MemoryPermission permissionr4: MemoryState stater5: PageFlags page_flags |
| 0x03 | ExitProcess | None | None, doesn't return |
| 0x04 | GetProcessAffinityMask | r0: [out] u8* affinitymaskr1: Handle<KProcess> processr2: s32 processorcount | r0: Result |
| 0x05 | SetProcessAffinityMask | r0: Handle<KProcess> processr1: [in] const u8* affinitymaskr2: s32 processorcount | r0: Result |
| 0x06 | GetProcessIdealProcessor | r1?: Handle<KProcess> process | r0: Resultr1: s32 processoridr2: Clobbered? |
| 0x07 | SetProcessIdealProcessor | r0: Handle<KProcess> processr1: s32 processorid | r0: Result |
| 0x08 | CreateThread | r0: s32 thread_priorityr1: ThreadFunc entrypointr2: u32 argr3: u32/void* stack_topr4: s32 processor_id | r0: Resultr1: Handle<KThread> thread_handle |
| 0x09 | ExitThread | None | None, doesn't return |
| 0x0A | SleepThread | r0-r1: s64 nanoseconds | None |
| 0x0B | GetThreadPriority | r0: Ignored?r1: Handle thread_handle | r0: Resultr1: s32 thread_priorityr2: Clobbered? |
| 0x0C | SetThreadPriority | r0: Handle<KThread> thread_handler1: s32 thread_priority | r0: Result |
| 0x0D | GetThreadAffinityMask | r0: [out] u8* affinitymaskr1: Handle<KThread> thread_handler2: s32 processorcount | r0: Result |
| 0x0E | SetThreadAffinityMask | r0: Handle<KThread> thread_handler1: [in] const u8* affinitymaskr2: s32 processorcount | r0: Result |
| 0x0F | GetThreadIdealProcessor | r0: Ignored?r1: Handle<KThread> thread_handle | r0: Resultr1: s32 processorid |
| 0x10 | SetThreadIdealProcessor | r0: Handle<KThread> thread_handler1: s32 processorid | r0: Result |
| 0x11 | GetProcessorID | None | r0: s32 processorid |
| 0x24 | WaitSynchronization1 | r0: Handle<KSynchronizationObject> handler2-r3: s64 timeout | r0: Result |
| 0x1B | SetTimer | Timer handle, initial_low, interval_low, initial_high, interval_high | Result |
| 0x28 | GetSystemTick | None | r0: Low 32 bits of the tick countr1: High 32 bits of the tick count |
| 0x2D | ConnectToPort | ??r1: pointer to port name | r0: Resultr1: handle to KClientSession |
| 0x32 | SendSyncRequest | r0: handle to KClientSession | r0: Result |