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

Changes

Jump to navigation Jump to search
93 bytes added ,  07:30, 9 April 2016
TODO: Not actually sure which RAMPID system it uses, I assume Browser is always 4? Also, "OS" prefix is only for userspace symbols eg coreinit to mark what is a syscall
Line 8: Line 8:  
Normal syscalls are divisible by 0x100, so all of them will jump to FFF0021A0 itself, which is a jump to the table dispatcher.
 
Normal syscalls are divisible by 0x100, so all of them will jump to FFF0021A0 itself, which is a jump to the table dispatcher.
   −
The dispatcher uses the RAMPID and syscall it was sent to load an address from its table which it then jumps to (which, if zero, just crashes as it's invalid).
+
The dispatcher uses a RAMPID and the syscall table at FFEAAA40 (5.5.0) to get the secondary table each RAMPID is able to access.
   −
Below is all RAMPIDs' access to syscalls. The loader mostly has its own special variations of syscalls.
+
0 (Kernel), 2, and 3 all use the empty table, root.rpx has its own table with a few unique calls, RAMPID 4, 5, and 6 share "syscall_system", and apps/games (RAMPID 7) have their own. See [[Cafe OS#Processes|Cafe OS]] wiki page for more info.
   −
RAMPID 1, system (home menu, browser, and error handler), and apps/games usually all have access to the same syscalls.
+
Below is a list of what all of them, as well as the loader which has its own barebones table, have access to call.
    
{| class="wikitable sortable"
 
{| class="wikitable sortable"
Line 18: Line 18:  
! scope="col" | #
 
! scope="col" | #
 
! scope="col" | Name
 
! scope="col" | Name
! scope="col" style="width: 24px;" | ID 1
+
! scope="col" style="width: 24px;" | root
 
! scope="col" style="width: 24px;" | Sys
 
! scope="col" style="width: 24px;" | Sys
 
! scope="col" style="width: 24px;" | App
 
! scope="col" style="width: 24px;" | App
Line 91: Line 91:  
| 0x1B00 || SetInfo || Y || Y || Y || N
 
| 0x1B00 || SetInfo || Y || Y || Y || N
 
|-
 
|-
| 0x1C00 || OSThreadInit || Y || Y || Y || N
+
| 0x1C00 || ThreadInit || Y || Y || Y || N
 
|-
 
|-
 
| 0x1D00 || SendICI || Y || Y || Y || N
 
| 0x1D00 || SendICI || Y || Y || Y || N
Line 163: Line 163:  
| 0x4900 || SavesDone_ReadyToRelease || Y || Y || Y || N
 
| 0x4900 || SavesDone_ReadyToRelease || Y || Y || Y || N
 
|-
 
|-
| 0x4A00 || OSSetAlarm || Y || Y || Y || N
+
| 0x4A00 || SetAlarm || Y || Y || Y || N
 
|-
 
|-
 
| 0x4B00 || SetDABR || Y || Y || Y || N
 
| 0x4B00 || SetDABR || Y || Y || Y || N
Line 233: Line 233:  
| 0x6E00 || SwitchSecCodeGenMode || Y || Y || Y || N
 
| 0x6E00 || SwitchSecCodeGenMode || Y || Y || Y || N
 
|-
 
|-
| 0x6F00 || OSIopShell_RegisterCallback || Y || Y || Y || N
+
| 0x6F00 || IopShell_RegisterCallback || Y || Y || Y || N
 
|-
 
|-
 
| 0x7000 || GetTitleVersion || Y || Y || Y || N
 
| 0x7000 || GetTitleVersion || Y || Y || Y || N
Line 255: Line 255:  
| 0x7900 || LoadShared || Y || N || N || N
 
| 0x7900 || LoadShared || Y || N || N || N
 
|-
 
|-
| 0x7A00 || OSSetExceptionCallback || Y || Y || Y || N
+
| 0x7A00 || SetExceptionCallback || Y || Y || Y || N
 
|-
 
|-
 
| 0x7B00 || IopShell_InjectCommand || Y || Y || Y || N
 
| 0x7B00 || IopShell_InjectCommand || Y || Y || Y || N
Line 267: Line 267:  
| 0x7F00 || GetSystemMode || Y || Y || Y || N
 
| 0x7F00 || GetSystemMode || Y || Y || Y || N
 
|-
 
|-
| 0x8000 || OSSystemMode_RegisterCallback || Y || Y || Y || N
+
| 0x8000 || SystemMode_RegisterCallback || Y || Y || Y || N
 
|-
 
|-
 
| 0x8100 || ZeroProcessMemory || Y || N || N || N
 
| 0x8100 || ZeroProcessMemory || Y || N || N || N
52

edits

Navigation menu