Difference between revisions of "SceLibKernel"
CelesteBlue (talk | contribs) (→Module) |
|||
(11 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
! Version !! Name !! World !! Privilege !! NID | ! Version !! Name !! World !! Privilege !! NID | ||
|- | |- | ||
− | | 1.69 || SceLibKernel || Non-secure || User || | + | | 1.69 || SceLibKernel || Non-secure || User || 0x0C9FDFAA |
+ | |- | ||
+ | | 3.15 || SceLibKernel || Non-secure || User || 0xFAA8A463 | ||
+ | |- | ||
+ | | 3.18 || SceLibKernel || Non-secure || User || 0x4280FEB2 | ||
+ | |- | ||
+ | | 3.51 || SceLibKernel || Non-secure || User || 0x4342F830 | ||
|} | |} | ||
Line 60: | Line 66: | ||
== SceLibKernel == | == SceLibKernel == | ||
+ | |||
+ | === sceIoChstatAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x9739A5E2 | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoChstatAsync</code> | ||
+ | |||
+ | === sceIoChstat === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x29482F7F | ||
+ | |} | ||
+ | |||
+ | === sceIoChstatByFd === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x6E903AB2 | ||
+ | |} | ||
+ | |||
+ | === sceIoClose === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xF5C6F098 | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>sceIoClose</code> | ||
+ | |||
+ | === sceIoDevctlAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x950F78EB | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoDevctlAsync</code> | ||
+ | |||
+ | === sceIoDevctl === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x04B30CB2 | ||
+ | |} | ||
+ | |||
+ | === sceIoDopen === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xA9283DD0 | ||
+ | |} | ||
+ | |||
+ | === sceIoDread === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x9C8B6624 | ||
+ | |} | ||
+ | |||
+ | === sceIoGetstatByFd === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x57F8CD25 | ||
+ | |} | ||
+ | |||
+ | === sceIoGetstatAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x82B20B41 | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoGetstatAsync</code> | ||
+ | |||
+ | === sceIoGetstat === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xBCA5B623 | ||
+ | |} | ||
+ | |||
+ | === sceIoIoctlAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x099C54B9 | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoIoctlAsync</code> | ||
+ | |||
+ | === sceIoIoctl === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x54ABACFA | ||
+ | |} | ||
+ | |||
+ | === sceIoLseekAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xCAC5D672 | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoLseekAsync</code> | ||
+ | |||
+ | === sceIoLseek === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x99BA173E | ||
+ | |} | ||
+ | |||
+ | === sceIoMkdirAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x8E5FCBB1 | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoMkdirAsync</code> | ||
+ | |||
+ | === sceIoMkdir === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x9670D39F | ||
+ | |} | ||
+ | |||
+ | === sceIoOpenAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x6A7EA9FD | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoOpenAsync</code> | ||
+ | |||
+ | === sceIoOpen === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x6C60AC61 | ||
+ | |} | ||
+ | |||
+ | === sceIoPreadAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xA010141E | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoPreadAsync</code> | ||
+ | |||
+ | === sceIoPread === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x52315AD7 | ||
+ | |} | ||
+ | |||
+ | === sceIoPwriteAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xED25BEEF | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoPwriteAsync</code> | ||
+ | |||
+ | === sceIoPwrite === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x8FFFF5A8 | ||
+ | |} | ||
+ | |||
+ | === sceIoRead === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x713523E1 | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>sceIoRead</code> | ||
+ | |||
+ | === sceIoRemoveAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x446A60AC | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoRemoveAsync</code> | ||
+ | |||
+ | === sceIoRemove === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xE20ED0F3 | ||
+ | |} | ||
+ | |||
+ | === sceIoRenameAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xEE9857CD | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoRenameAsync</code> | ||
+ | |||
+ | === sceIoRename === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xF737E369 | ||
+ | |} | ||
+ | |||
+ | === sceIoRmdirAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x9694D00F | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoRmdirAsync</code> | ||
+ | |||
+ | === sceIoRmdir === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xE9F91EC8 | ||
+ | |} | ||
+ | |||
+ | === sceIoSyncAsync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xF7C7FBFE | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoSyncAsync</code> | ||
+ | |||
+ | === sceIoSync === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x98ACED6D | ||
+ | |} | ||
+ | |||
+ | === sceIoWrite === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x11FED231 | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>sceIoWrite</code> | ||
+ | |||
+ | === sceIoCompleteMultiple === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xA792C404 | ||
+ | |} | ||
+ | |||
+ | derived from <code>SceIofilemgr</code> <code>_sceIoCompleteMultiple</code> | ||
+ | |||
+ | === sceKernelRegisterThreadEventHandler === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x6D8C0F13 | ||
+ | |} | ||
+ | |||
+ | <source lang="C"> | ||
+ | int sceKernelRegisterThreadEventHandler(char *name, SceUID uid, int num0, void *handler, int num1); | ||
+ | </source> | ||
+ | |||
=== Heap === | === Heap === | ||
The latest version of [http://g.oswego.edu/dl/html/malloc.html dlmalloc] is included in SceLibKernel. Most of the assert checks and security are included. | The latest version of [http://g.oswego.edu/dl/html/malloc.html dlmalloc] is included in SceLibKernel. Most of the assert checks and security are included. | ||
+ | |||
+ | === Thread specific data === | ||
+ | Each thread owns a private 2048bytes memory region with specific data. The end of this region is pointed by the TPIDRURO register (thus, the start of it is TPIDRURO - 0x800). | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Offset !! Size !! Description | ||
+ | |- | ||
+ | | 0x000 || 4 || ?? | ||
+ | |- | ||
+ | | 0x004 || 4 || Thread ID | ||
+ | |- | ||
+ | | 0x008 || 4 || Stack start address | ||
+ | |- | ||
+ | | 0x00C || 4 || Stack end address | ||
+ | |- | ||
+ | | 0x010 || 4 || Current VFP exception | ||
+ | |- | ||
+ | | 0x014 || 4 || LwMutex related | ||
+ | |- | ||
+ | | 0x020 || 4 || Current priority | ||
+ | |- | ||
+ | | 0x024 || 4 || CPU affinity mask | ||
+ | |} | ||
+ | |||
[[Category:Modules]] | [[Category:Modules]] | ||
[[Category:Userland]] | [[Category:Userland]] |
Revision as of 21:19, 12 December 2018
SceLibKernel, not to be confused with Kernel is a user module that implements wrappers to some common syscalls (for example, SceIofilemgr), some user standard library functions (including C standard library), and other common features like heap management. This module is the functionally similar to libc.so.6 on Linux.
Module
This is a user module and exists only in userland. The SELF can be found in os0:us/libkernel.suprx
.
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceLibKernel | Non-secure | User | 0x0C9FDFAA |
3.15 | SceLibKernel | Non-secure | User | 0xFAA8A463 |
3.18 | SceLibKernel | Non-secure | User | 0x4280FEB2 |
3.51 | SceLibKernel | Non-secure | User | 0x4342F830 |
Libraries
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceLibKernel | Non-secure | User | 0xCAE9ACE6 |
1.69 | SceLibRng | Non-secure | User | 0xF9AC7CF8 |
1.69 | SceLibGcc | Non-secure | User | 0x567AF9A6 |
1.69 | SceLibSsp | Non-secure | User | 0x8FA98EF1 |
1.69 | SceRtabi | Non-secure | User | 0xA941943F |
1.69 | SceKernelForVM | Non-secure | User | 0xA2B3EA8F |
SceLibKernel
sceIoChstatAsync
Version | NID |
---|---|
3.60 | 0x9739A5E2 |
derived from SceIofilemgr
_sceIoChstatAsync
sceIoChstat
Version | NID |
---|---|
3.60 | 0x29482F7F |
sceIoChstatByFd
Version | NID |
---|---|
3.60 | 0x6E903AB2 |
sceIoClose
Version | NID |
---|---|
3.60 | 0xF5C6F098 |
derived from SceIofilemgr
sceIoClose
sceIoDevctlAsync
Version | NID |
---|---|
3.60 | 0x950F78EB |
derived from SceIofilemgr
_sceIoDevctlAsync
sceIoDevctl
Version | NID |
---|---|
3.60 | 0x04B30CB2 |
sceIoDopen
Version | NID |
---|---|
3.60 | 0xA9283DD0 |
sceIoDread
Version | NID |
---|---|
3.60 | 0x9C8B6624 |
sceIoGetstatByFd
Version | NID |
---|---|
3.60 | 0x57F8CD25 |
sceIoGetstatAsync
Version | NID |
---|---|
3.60 | 0x82B20B41 |
derived from SceIofilemgr
_sceIoGetstatAsync
sceIoGetstat
Version | NID |
---|---|
3.60 | 0xBCA5B623 |
sceIoIoctlAsync
Version | NID |
---|---|
3.60 | 0x099C54B9 |
derived from SceIofilemgr
_sceIoIoctlAsync
sceIoIoctl
Version | NID |
---|---|
3.60 | 0x54ABACFA |
sceIoLseekAsync
Version | NID |
---|---|
3.60 | 0xCAC5D672 |
derived from SceIofilemgr
_sceIoLseekAsync
sceIoLseek
Version | NID |
---|---|
3.60 | 0x99BA173E |
sceIoMkdirAsync
Version | NID |
---|---|
3.60 | 0x8E5FCBB1 |
derived from SceIofilemgr
_sceIoMkdirAsync
sceIoMkdir
Version | NID |
---|---|
3.60 | 0x9670D39F |
sceIoOpenAsync
Version | NID |
---|---|
3.60 | 0x6A7EA9FD |
derived from SceIofilemgr
_sceIoOpenAsync
sceIoOpen
Version | NID |
---|---|
3.60 | 0x6C60AC61 |
sceIoPreadAsync
Version | NID |
---|---|
3.60 | 0xA010141E |
derived from SceIofilemgr
_sceIoPreadAsync
sceIoPread
Version | NID |
---|---|
3.60 | 0x52315AD7 |
sceIoPwriteAsync
Version | NID |
---|---|
3.60 | 0xED25BEEF |
derived from SceIofilemgr
_sceIoPwriteAsync
sceIoPwrite
Version | NID |
---|---|
3.60 | 0x8FFFF5A8 |
sceIoRead
Version | NID |
---|---|
3.60 | 0x713523E1 |
derived from SceIofilemgr
sceIoRead
sceIoRemoveAsync
Version | NID |
---|---|
3.60 | 0x446A60AC |
derived from SceIofilemgr
_sceIoRemoveAsync
sceIoRemove
Version | NID |
---|---|
3.60 | 0xE20ED0F3 |
sceIoRenameAsync
Version | NID |
---|---|
3.60 | 0xEE9857CD |
derived from SceIofilemgr
_sceIoRenameAsync
sceIoRename
Version | NID |
---|---|
3.60 | 0xF737E369 |
sceIoRmdirAsync
Version | NID |
---|---|
3.60 | 0x9694D00F |
derived from SceIofilemgr
_sceIoRmdirAsync
sceIoRmdir
Version | NID |
---|---|
3.60 | 0xE9F91EC8 |
sceIoSyncAsync
Version | NID |
---|---|
3.60 | 0xF7C7FBFE |
derived from SceIofilemgr
_sceIoSyncAsync
sceIoSync
Version | NID |
---|---|
3.60 | 0x98ACED6D |
sceIoWrite
Version | NID |
---|---|
3.60 | 0x11FED231 |
derived from SceIofilemgr
sceIoWrite
sceIoCompleteMultiple
Version | NID |
---|---|
3.60 | 0xA792C404 |
derived from SceIofilemgr
_sceIoCompleteMultiple
sceKernelRegisterThreadEventHandler
Version | NID |
---|---|
3.60 | 0x6D8C0F13 |
int sceKernelRegisterThreadEventHandler(char *name, SceUID uid, int num0, void *handler, int num1);
Heap
The latest version of dlmalloc is included in SceLibKernel. Most of the assert checks and security are included.
Thread specific data
Each thread owns a private 2048bytes memory region with specific data. The end of this region is pointed by the TPIDRURO register (thus, the start of it is TPIDRURO - 0x800).
Offset | Size | Description |
---|---|---|
0x000 | 4 | ?? |
0x004 | 4 | Thread ID |
0x008 | 4 | Stack start address |
0x00C | 4 | Stack end address |
0x010 | 4 | Current VFP exception |
0x014 | 4 | LwMutex related |
0x020 | 4 | Current priority |
0x024 | 4 | CPU affinity mask |