Kernel ABI

From 3dbrew
Revision as of 22:10, 4 January 2018 by ElementW (talk | contribs) (QueryMemory permission return is an MemoryPermission enum)
Jump to navigation Jump to search

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 operation
r1: u32 addr0
r2: u32 addr1
r3: u32 size
r4: MemoryPermission permissions

r0: Result
r1: u32 addr_out

0x02 QueryMemory

r2?: u32 addr

r0: Result
r1: u32 base_process_virtual_address
r2: u32 size
r3: MemoryPermission permission
r4: MemoryState state
r5: PageFlags page_flags

0x03 ExitProcess None None
0x04 GetProcessAffinityMask

r0: [out] u8* affinitymask
r1: Handle process
r2: s32 processorcount

r0: Result

0x04 SetProcessAffinityMask

r0: Handle process
r1: [in] u8* affinitymask
r2: s32 processorcount

r0: Result

0x05 GetProcessIdealProcessor

r1?: Handle process

r0: Result
r1: s32 processorid

0x1B SetTimer Timer handle, initial_low, interval_low, initial_high, interval_high Result
0x2D ConnectToPort ??, pointer to port name Result, handle to KClientSession
0x32 SendSyncRequest handle to KClientSession Result