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

Difference between revisions of "Cafe OS syscalls"

From WiiUBrew
Jump to navigation Jump to search
Line 10: Line 10:
 
| 0x0000 || ConsoleWrite || L
 
| 0x0000 || ConsoleWrite || L
 
|-
 
|-
| 0x0600 || UpdateCoretime ||  
+
| 0x0006 || LoadContext ||
 +
|-
 +
| 0x0009 || GetCurrentFPUContext ||
 +
|-
 +
| 0x000A || SetCurrentFPUContext ||
 
|-
 
|-
| 0x0F00 || LogLoadedRPLs ||  
+
| 0x000D || SetPerformanceMonitor ||
 
|-
 
|-
 
| 0x0011 || ReadRegister32Ex ||  
 
| 0x0011 || ReadRegister32Ex ||  
Line 21: Line 25:
 
|-
 
|-
 
| 0x0100 || AppPanic || L
 
| 0x0100 || AppPanic || L
 +
|-
 +
| 0x0300 || PhysicalToEffectiveCached ||
 +
|-
 +
| 0x0400 || PhysicalToEffectiveUncached ||
 
|-
 
|-
 
| 0x0500 || ValidateAddrRange || L
 
| 0x0500 || ValidateAddrRange || L
 +
|-
 +
| 0x0600 || UpdateCoretime ||
 
|-
 
|-
 
| 0x0800 || SetUserModeExHandler ||  
 
| 0x0800 || SetUserModeExHandler ||  
Line 33: Line 43:
 
|-
 
|-
 
| 0x0E00 || StopTimer ||  
 
| 0x0E00 || StopTimer ||  
 +
|-
 +
| 0x0F00 || LogLoadedRPLs ||
 
|-
 
|-
 
| 0x1200 || DisableInterrupt ||  
 
| 0x1200 || DisableInterrupt ||  
Line 79: Line 91:
 
|-
 
|-
 
| 0x4900 || SavesDone_ReadyToRelease ||  
 
| 0x4900 || SavesDone_ReadyToRelease ||  
 +
|-
 +
| 0x4B00 || SetDABR ||
 +
|-
 +
| 0x4C00 || SetIABR
 
|-
 
|-
 
| 0x5000 || RPLLoaderResumeContext || L
 
| 0x5000 || RPLLoaderResumeContext || L
Line 133: Line 149:
 
|-
 
|-
 
| 0x7F00 || GetSystemMode ||  
 
| 0x7F00 || GetSystemMode ||  
 +
|-
 +
| 0x8100 || ZeroProcessMemory ||
 
|-
 
|-
 
| 0x8200 || HandleIopPowerEvents ||  
 
| 0x8200 || HandleIopPowerEvents ||  
 
|}
 
|}

Revision as of 14:55, 3 July 2015

The kernel contains several different system call tables that controls the availability of syscalls to different process modes.

Access modes:

  • L: Loader
# Name Access
0x0000 ConsoleWrite L
0x0006 LoadContext
0x0009 GetCurrentFPUContext
0x000A SetCurrentFPUContext
0x000D SetPerformanceMonitor
0x0011 ReadRegister32Ex
0x0012 WriteRegister32Ex
0x0019 GetSecurityLevel
0x0100 AppPanic L
0x0300 PhysicalToEffectiveCached
0x0400 PhysicalToEffectiveUncached
0x0500 ValidateAddrRange L
0x0600 UpdateCoretime
0x0800 SetUserModeExHandler
0x0B00 AllocateTimer
0x0C00 FreeTimer
0x0D00 PrimeTimer
0x0E00 StopTimer
0x0F00 LogLoadedRPLs
0x1200 DisableInterrupt
0x1400 ClearAndEnableInterrupt
0x1700 FindClosestSymbol L
0x1A00 GetInfo
0x1D00 SendICI
0x1E00 IPCKDriver_{Loader|User}Open L
0x1F00 IPCKDriver_{Loader|User}Close L
0x2000 IPCKDriver_SubmitRequest L
0x2800 ProcCtrl
0x2900 GetForegroundBucket
0x2B00 PrepareTitle
0x2C00 ProcYield
0x2F00 GetCallArgs
0x3800 AllocVirtAddr
0x3900 FreeVirtAddr
0x3D00 MapMemory
0x3E00 UnmapMemory
0x3F00 LogBuffer L
0x4000 LogArgs L
0x4100 LogFunc L
0x4200 LogReportKernel L
0x4300 LogRetrieve L
0x4900 SavesDone_ReadyToRelease
0x4B00 SetDABR
0x4C00 SetIABR
0x5000 RPLLoaderResumeContext L
0x5200 WaitIopComplete L
0x5300 FlushCode L
0x5400 FlushData L
0x5500 UpdateHeartBeat L
0x5600 LogEntry L
0x5700 FastClearMemory L
0x5800 GetBusClockSpeed L
0x5900 GetSharedArea
0x5A00 SendPolicy
0x5B00 GetProcessIndex L
0x5C00 IPCKDriver_PollLoaderCompletion L
0x5D00 BlockLogSave
0x5E00 FinishInitAndPreload L
0x5F00 ContinueStartProcess L
0x6000 OpenMCP L
0x6600 ProfileEntry L
0x6700 RequestFastExit
0x6900 GetSwitchTarget
0x6E00 SwitchSecCodeGenMode
0x7000 GetTitleVersion
0x7200 ForceFullRelaunch
0x7400 get_mode_flags(?) L
0x7500 QueryVirtAddr
0x7700 GetSecCodeGenMode
0x7800 CodegenCopy
0x7F00 GetSystemMode
0x8100 ZeroProcessMemory
0x8200 HandleIopPowerEvents