Difference between revisions of "Cafe OS syscalls"
Jump to navigation
Jump to search
Aerosoul94 (talk | contribs) |
|||
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 || | + | | 0x1E00 || IPCKDriver_<nowiki>{Loader|User}</nowiki>Open || L |
|- | |- | ||
− | | 0x1F00 || | + | | 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 || |
|- | |- | ||
− | | | + | | 0x7400 || get_mode_flags(?) || L |
|- | |- | ||
− | | | + | | 0x7500 || QueryVirtAddr || |
|- | |- | ||
− | | | + | | 0x7700 || GetSecCodeGenMode || |
|- | |- | ||
− | | 0x7F00 || GetSystemMode | + | | 0x7800 || CodegenCopy || |
+ | |- | ||
+ | | 0x7F00 || GetSystemMode || | ||
|} | |} |
Revision as of 12:35, 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 |
0x0011 | ReadRegister32Ex | |
0x0012 | WriteRegister32Ex | |
0x0019 | GetSecurityLevel | |
0x0100 | AppPanic | L |
0x0500 | ValidateAddrRange | L |
0x0800 | SetUserModeExHandler | |
0x0B00 | AllocateTimer | |
0x0C00 | FreeTimer | |
0x0D00 | PrimeTimer | |
0x0E00 | StopTimer | |
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 |
0x2900 | GetForegroundBucket | |
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 | |
0x5000 | RPLLoaderResumeContext | L |
0x5200 | WaitIopComplete | L |
0x5300 | FlushCode | L |
0x5400 | FlushData | L |
0x5500 | UpdateHeartBeat | L |
0x5600 | LogEntry | L |
0x5700 | FastClearMemory | L |
0x5800 | GetBusClockSpeed | L |
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 |