In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "IOSU syscalls"

From WiiUBrew
Jump to navigation Jump to search
m (Hykem moved page Syscalls to IOSU Syscalls)
(Redirected page to IOS)
Tag: New redirect
 
(35 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{stub}}
+
#REDIRECT [[IOS]]
There are 2 types of syscalls:
 
 
 
1. Syscalls using undefined ARM instruction.
 
 
 
2. Syscalls using ARM syscall instruction.
 
 
 
== Syscalls (via undefined instructions) ==
 
 
 
Syscalls are invoked by way of the invalid instruction handler; syscalls take the form 0xE7F000F0 | (syscall_num << 8). (E.g. E7F000F0 is syscall 0, E7F036F0 is syscall 0x36, etc.). IOS has 0x82 available syscalls.
 
 
 
(please feel free to contribute your own findings!)
 
 
 
{|border=1
 
|-
 
! ID # !! Internal name !! Description !! Return value
 
|-
 
|  C || int IOS_CreateMessageQueue(u32 *ptr, u32 n_msgs)  || Create a queue at ptr, for n_msgs messages || The queue ID
 
|-
 
| 10 || int IOS_ReceiveMessage(int queueid, u32 *message, u32 flags) || Fetch a message from the front of a queue || 0 on success
 
|-
 
| 24 || void* IOS_Alloc(int heapid, u32 size) || Allocate size bytes from the specified heap || pointer to memory
 
|-
 
| 28 || BOOL IOS_RegisterResourceManager(const char* device, int queueid) || Registers device to the device tree, so it can be opened (from Starlet and PPC) || 0 on success
 
|-
 
| 2D || int IOS_Open(const char* device, int mode) || Similar to IOS_Open on PPC, except now internal to the IOS system || Returns an fd or error (negative)
 
|}
 

Latest revision as of 03:07, 11 February 2024

Redirect to: