Kernel ABI: Difference between revisions
m [in] & [out] qualifiers on some pointers |
Add up to GetProcessorID, specify handle target types |
||
Line 41: | Line 41: | ||
| | | | ||
<code>r0</code>: <code>[out] u8* affinitymask</code><br> | <code>r0</code>: <code>[out] u8* affinitymask</code><br> | ||
<code>r1</code>: <code>Handle process</code><br> | <code>r1</code>: <code>Handle<[[KProcess]]> process</code><br> | ||
<code>r2</code>: <code>s32 processorcount</code> | <code>r2</code>: <code>s32 processorcount</code> | ||
| | | | ||
Line 49: | Line 49: | ||
| SetProcessAffinityMask | | SetProcessAffinityMask | ||
| | | | ||
<code>r0</code>: <code>Handle process</code><br> | <code>r0</code>: <code>Handle<[[KProcess]]> process</code><br> | ||
<code>r1</code>: <code>[in] const u8* affinitymask</code><br> | <code>r1</code>: <code>[in] const u8* affinitymask</code><br> | ||
<code>r2</code>: <code>s32 processorcount</code> | <code>r2</code>: <code>s32 processorcount</code> | ||
Line 58: | Line 58: | ||
| GetProcessIdealProcessor | | GetProcessIdealProcessor | ||
| | | | ||
<code>r1</code>?: <code>Handle process</code> | <code>r1</code>?: <code>Handle<[[KProcess]]> process</code> | ||
| | | | ||
<code>r0</code>: <code>Result</code><br> | <code>r0</code>: <code>Result</code><br> | ||
Line 67: | Line 67: | ||
| SetProcessIdealProcessor | | SetProcessIdealProcessor | ||
| | | | ||
<code>r0</code>: <code>Handle process</code><br> | <code>r0</code>: <code>Handle<[[KProcess]]> process</code><br> | ||
<code>r1</code>: <code>s32 processorid</code> | <code>r1</code>: <code>s32 processorid</code> | ||
| | | | ||
Line 82: | Line 82: | ||
| | | | ||
<code>r0</code>: <code>Result</code><br> | <code>r0</code>: <code>Result</code><br> | ||
<code>r1</code>: <code>Handle thread_handle</code> | <code>r1</code>: <code>Handle<[[KThread]]> thread_handle</code> | ||
|- | |- | ||
| 0x09 | | 0x09 | ||
Line 108: | Line 108: | ||
| SetThreadPriority | | SetThreadPriority | ||
| | | | ||
<code>r0</code>: <code>Handle thread_handle</code><br> | <code>r0</code>: <code>Handle<[[KThread]]> thread_handle</code><br> | ||
<code>r1</code>: <code>s32 thread_priority</code> | <code>r1</code>: <code>s32 thread_priority</code> | ||
| | | | ||
Line 117: | Line 117: | ||
| | | | ||
<code>r0</code>: <code>[out] u8* affinitymask</code><br> | <code>r0</code>: <code>[out] u8* affinitymask</code><br> | ||
<code>r1</code>: <code>Handle thread_handle</code><br> | <code>r1</code>: <code>Handle<[[KThread]]> thread_handle</code><br> | ||
<code>r2</code>: <code>s32 processorcount</code> | <code>r2</code>: <code>s32 processorcount</code> | ||
| | | | ||
Line 125: | Line 125: | ||
| SetThreadAffinityMask | | SetThreadAffinityMask | ||
| | | | ||
<code>r0</code>: <code>Handle thread_handle</code><br> | <code>r0</code>: <code>Handle<[[KThread]]> thread_handle</code><br> | ||
<code>r1</code>: <code>[in] const u8* affinitymask</code><br> | <code>r1</code>: <code>[in] const u8* affinitymask</code><br> | ||
<code>r2</code>: <code>s32 processorcount</code> | <code>r2</code>: <code>s32 processorcount</code> | ||
| | | | ||
<code>r0</code>: <code>Result</code> | <code>r0</code>: <code>Result</code> | ||
|- | |||
| 0x0F | |||
| GetThreadIdealProcessor | |||
| | |||
<code>r0</code>: Ignored?<br> | |||
<code>r1</code>: <code>Handle<[[KThread]]> thread_handle</code> | |||
| | |||
<code>r0</code>: <code>Result</code><br> | |||
<code>r1</code>: <code>s32 processorid</code> | |||
|- | |||
| 0x10 | |||
| SetThreadIdealProcessor | |||
| | |||
<code>r0</code>: <code>Handle<[[KThread]]> thread_handle</code><br> | |||
<code>r1</code>: <code>s32 processorid</code> | |||
| | |||
<code>r0</code>: <code>Result</code> | |||
|- | |||
| 0x11 | |||
| GetProcessorID | |||
| | |||
None | |||
| | |||
<code>r0</code>: <code>s32 processorid</code> | |||
|- | |- | ||
| 0x24 | | 0x24 | ||
| WaitSynchronization1 | | WaitSynchronization1 | ||
| | | | ||
<code>r0</code>: <code>Handle handle</code><br> | <code>r0</code>: <code>Handle<[[KSynchronizationObject]]> handle</code><br> | ||
<code>r2-r3</code>: <code>s64 timeout</code> | <code>r2-r3</code>: <code>s64 timeout</code> | ||
| | | |
Revision as of 15:36, 7 October 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 |
|
|
0x02 | QueryMemory |
|
|
0x03 | ExitProcess | None | None, doesn't return |
0x04 | GetProcessAffinityMask |
|
|
0x05 | SetProcessAffinityMask |
|
|
0x06 | GetProcessIdealProcessor |
|
|
0x07 | SetProcessIdealProcessor |
|
|
0x08 | CreateThread |
|
|
0x09 | ExitThread | None | None, doesn't return |
0x0A | SleepThread |
|
None |
0x0B | GetThreadPriority |
|
|
0x0C | SetThreadPriority |
|
|
0x0D | GetThreadAffinityMask |
|
|
0x0E | SetThreadAffinityMask |
|
|
0x0F | GetThreadIdealProcessor |
|
|
0x10 | SetThreadIdealProcessor |
|
|
0x11 | GetProcessorID |
None |
|
0x24 | WaitSynchronization1 |
|
|
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 |