Changes

373 bytes added ,  18:45, 6 January 2016
no edit summary
Line 73: Line 73:     
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.).<br>
 
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.).<br>
The IOSU has 0x94 available syscalls with 5.3.2 (the number of installed syscalls can vary between system versions).<br><br>
+
The IOSU has 0x94 available syscalls with 5.3.2 (the number of installed syscalls can vary between system versions).
 +
 
 +
With 5.5.0 sp(user-mode/system-mode) is now bounds-checked right after the switch to system-mode. When out-of-bounds it will execute code similar to "invalid_syscall" described above. Hence, userland sp has to be within the current thread userland stackbottom/stacktop at the time a syscall is used, otherwise the [[IOSU#Exception_Handling|fault]] code will be executed.<br><br>
 +
 
 
NOTE: Official syscall names begin with "IOS_", the rest are merely educated guesses.
 
NOTE: Official syscall names begin with "IOS_", the rest are merely educated guesses.
  
340

edits