|
|
Line 378: |
Line 378: |
|
| |
|
| === Thread specific data === | | === 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). | | |
| | Each thread owns a private 2048bytes memory region with specific data (?TLS?). The end of this region is pointed by the TPIDRURO register (thus, the start address of it is TPIDRURO - 0x800). |
|
| |
|
| {| class="wikitable" | | {| class="wikitable" |
Revision as of 02:39, 22 January 2020
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
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);
sceKernelUnlockLwMutex
Version |
NID
|
3.60 |
0x91FA6614
|
sceKernelUnlockLwMutex2
Version |
NID
|
3.60 |
0x120AFC8C
|
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 (?TLS?). The end of this region is pointed by the TPIDRURO register (thus, the start address 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
|
SceKernelForMono
sceKernelGetThreadContextForVM
Version |
NID
|
3.60 |
0xAD210F16
|