Line 1:
Line 1:
+
The kernel contains several different system call tables that controls the availability of syscalls to different process modes.
+
+
Access modes:
+
* L: Loader
+
{| class="wikitable"
{| class="wikitable"
|-
|-
−
! # !! Name
+
! # !! Name !! Access
|-
|-
−
| 0x0000 || ConsoleWrite
+
| 0x0000 || ConsoleWrite || L
|-
|-
−
| 0x0011 || ReadRegister32Ex
+
| 0x0011 || ReadRegister32Ex ||
|-
|-
−
| 0x0012 || WriteRegister32Ex
+
| 0x0012 || WriteRegister32Ex ||
|-
|-
−
| 0x0019 || GetSecurityLevel
+
| 0x0019 || GetSecurityLevel ||
|-
|-
−
| 0x0100 || AppPanic
+
| 0x0100 || AppPanic || L
|-
|-
−
| 0x0500 || ValidateAddrRange
+
| 0x0500 || ValidateAddrRange || L
|-
|-
−
| 0x0800 || SetUserModeExHandler
+
| 0x0800 || SetUserModeExHandler ||
|-
|-
−
| 0x0B00 || AllocateTimer
+
| 0x0B00 || AllocateTimer ||
|-
|-
−
| 0x0C00 || FreeTimer
+
| 0x0C00 || FreeTimer ||
|-
|-
−
| 0x0D00 || PrimeTimer
+
| 0x0D00 || PrimeTimer ||
|-
|-
−
| 0x0E00 || StopTimer
+
| 0x0E00 || StopTimer ||
|-
|-
−
| 0x1200 || DisableInterrupt
+
| 0x1200 || DisableInterrupt ||
|-
|-
−
| 0x1400 || ClearAndEnableInterrupt
+
| 0x1400 || ClearAndEnableInterrupt ||
|-
|-
−
| 0x1700 || FindClosestSymbol
+
| 0x1700 || FindClosestSymbol || L
|-
|-
−
| 0x1A00 || <!--Kernel-->GetInfo
+
| 0x1A00 || <!--Kernel-->GetInfo ||
|-
|-
−
| 0x1D00 || <!--Kernel-->SendICI
+
| 0x1D00 || <!--Kernel-->SendICI ||
|-
|-
−
| 0x1E00 || IPCKDriver_LoaderOpen
+
| 0x1E00 || IPCKDriver_<nowiki>{Loader|User}</nowiki>Open || L
|-
|-
−
| 0x1F00 || IPCKDriver_LoaderClose
+
| 0x1F00 || IPCKDriver_<nowiki>{Loader|User}</nowiki>Close || L
|-
|-
−
| 0x2000 || IPCKDriver_SubmitRequest
+
| 0x2000 || IPCKDriver_SubmitRequest || L
|-
|-
−
| 0x2900 || GetForegroundBucket
+
| 0x2900 || GetForegroundBucket ||
|-
|-
−
| 0x2F00 || GetCallArgs
+
| 0x2F00 || GetCallArgs ||
|-
|-
−
| 0x3800 || AllocVirtAddr
+
| 0x3800 || AllocVirtAddr ||
|-
|-
−
| 0x3900 || FreeVirtAddr
+
| 0x3900 || FreeVirtAddr ||
|-
|-
−
| 0x3D00 || MapMemory
+
| 0x3D00 || MapMemory ||
|-
|-
−
| 0x3E00 || UnmapMemory
+
| 0x3E00 || UnmapMemory ||
|-
|-
−
| 0x3F00 || LogBuffer
+
| 0x3F00 || LogBuffer || L
|-
|-
−
| 0x4000 || LogArgs
+
| 0x4000 || LogArgs || L
|-
|-
−
| 0x4100 || LogFunc
+
| 0x4100 || LogFunc || L
|-
|-
−
| 0x4200 || LogReportKernel
+
| 0x4200 || LogReportKernel || L
|-
|-
−
| 0x4300 || LogRetrieve
+
| 0x4300 || LogRetrieve || L
|-
|-
−
| 0x4900 || SavesDone_ReadyToRelease
+
| 0x4900 || SavesDone_ReadyToRelease ||
|-
|-
−
| 0x5000 || RPLLoaderResumeContext
+
| 0x5000 || RPLLoaderResumeContext || L
|-
|-
−
| 0x5200 || WaitIopComplete
+
| 0x5200 || WaitIopComplete || L
|-
|-
−
| 0x5300 || FlushCode
+
| 0x5300 || FlushCode || L
|-
|-
−
| 0x5400 || FlushData
+
| 0x5400 || FlushData || L
|-
|-
−
| 0x5500 || UpdateHeartBeat
+
| 0x5500 || UpdateHeartBeat || L
|-
|-
−
| 0x5600 || LogEntry
+
| 0x5600 || LogEntry || L
|-
|-
−
| 0x5700 || FastClearMemory
+
| 0x5700 || FastClearMemory || L
|-
|-
−
| 0x5800 || GetBusClockSpeed
+
| 0x5800 || GetBusClockSpeed || L
|-
|-
−
| 0x5B00 || GetProcessIndex
+
| 0x5B00 || GetProcessIndex || L
|-
|-
−
| 0x5C00 || IPCKDriver_PollLoaderCompletion
+
| 0x5C00 || IPCKDriver_PollLoaderCompletion || L
|-
|-
−
| 0x5D00 || BlockLogSave
+
| 0x5D00 || BlockLogSave ||
|-
|-
−
| 0x5E00 || FinishInitAndPreload
+
| 0x5E00 || FinishInitAndPreload || L
|-
|-
−
| 0x5F00 || ContinueStartProcess
+
| 0x5F00 || ContinueStartProcess || L
|-
|-
−
| 0x6000 || OpenMCP
+
| 0x6000 || OpenMCP || L
|-
|-
−
| 0x6600 || ProfileEntry
+
| 0x6600 || ProfileEntry || L
|-
|-
−
| 0x6700 || RequestFastExit
+
| 0x6700 || RequestFastExit ||
|-
|-
−
| 0x6900 || GetSwitchTarget
+
| 0x6900 || GetSwitchTarget ||
|-
|-
−
| 0x6E00 || SwitchSecCodeGenMode
+
| 0x6E00 || SwitchSecCodeGenMode ||
|-
|-
−
| 0x7000 || GetTitleVersion
+
| 0x7000 || GetTitleVersion ||
|-
|-
−
| 0x7200 || ForceFullRelaunch
+
| 0x7200 || ForceFullRelaunch ||
|-
|-
−
| 0x7500 || QueryVirtAddr
+
| 0x7400 || get_mode_flags(?) || L
|-
|-
−
| 0x7700 || GetSecCodeGenMode
+
| 0x7500 || QueryVirtAddr ||
|-
|-
−
| 0x7800 || CodegenCopy
+
| 0x7700 || GetSecCodeGenMode ||
|-
|-
−
| 0x7F00 || GetSystemMode
+
| 0x7800 || CodegenCopy ||
+
|-
+
| 0x7F00 || GetSystemMode ||
|}
|}