Cafe OS syscalls

Revision as of 15:40, 3 July 2015 by Naehrwert (talk | contribs)

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
0x4E00 GetCodegenVirtAddrRange
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
0x7600 GetCodegenCore
0x7700 GetSecCodeGenMode
0x7800 CodegenCopy
0x7F00 GetSystemMode
0x8100 ZeroProcessMemory
0x8200 HandleIopPowerEvents