SceLibKernel: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
Line 8: Line 8:
! Version !! Name !! World !! Privilege !! NID
! Version !! Name !! World !! Privilege !! NID
|-
|-
| 1.69 || SceLibKernel || Non-secure || User || 0xC9FDFAA
| 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
|}
|}



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