Difference between revisions of "Kernel ABI"

From 3dbrew
Jump to navigation Jump to search
(Add ControlMemory)
Line 3: Line 3:
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Id
+
ID
 
!  Name
 
!  Name
 
!  Inputs
 
!  Inputs
 
!  Outputs
 
!  Outputs
 +
|-
 +
| 0x01
 +
| ControlMemory
 +
|
 +
<code>r0</code>: <code>[[Memory Management#enum_MemoryOperation|MemoryOperation]] operation</code><br>
 +
<code>r1</code>: <code>u32 addr0</code><br>
 +
<code>r2</code>: <code>u32 addr1</code><br>
 +
<code>r3</code>: <code>u32 size</code><br>
 +
<code>r4</code>: <code>[[Memory Management#enum_MemoryPermission|MemoryPermission]] permissions</code>
 +
|
 +
<code>r0</code>: <code>Result</code><br>
 +
<code>r1</code>: <code>u32 addr_out</code>
 
|-
 
|-
 
| 0x1B
 
| 0x1B

Revision as of 15:43, 4 January 2018

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

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