SceLibKernel: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
Line 353: Line 353:
int sceKernelRegisterThreadEventHandler(char *name, SceUID uid, int num0, void *handler, int num1);
int sceKernelRegisterThreadEventHandler(char *name, SceUID uid, int num0, void *handler, int num1);
</source>
</source>
=== sceKernelUnlockLwMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x91FA6614
|}
=== sceKernelUnlockLwMutex2 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x120AFC8C
|}


=== sceKernelPrintBacktrace ===
=== sceKernelPrintBacktrace ===
Line 397: Line 381:
| 3.60 || 0x01E00CBF
| 3.60 || 0x01E00CBF
|}
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160UniCastDecrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastDecrypt]].


=== SceLibKernel_023EAA62 ===
=== SceLibKernel_023EAA62 ===
Line 415: Line 401:


Wrapper to [[SceKernelModulemgr#sceKernelGetLibraryInfoByNID|SceKernelModulemgr#_sceKernelGetLibraryInfoByNID]].
Wrapper to [[SceKernelModulemgr#sceKernelGetLibraryInfoByNID|SceKernelModulemgr#_sceKernelGetLibraryInfoByNID]].
=== sceSblGcAuthMgrAdhocBB224Auth3 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x104D802F
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth3|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth3]].
=== sceSblGcAuthMgrPkgVry ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x12C7CD2B
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrPkgVry|SceSblGcAuthMgr#_sceSblGcAuthMgrPkgVry]].
=== sceSblGcAuthMgrMsSaveBBMacInit ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x1693032E
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBMacInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBMacInit]].
=== sceSblGcAuthMgrAdhocBB160Auth2 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x1F4DF829
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth2|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth2]].
=== sceSblGcAuthMgrAdhocBB224Auth1 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x211BEDE8
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth1|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth1]].
=== sceSblGcAuthMgrMsSaveBBCipherInit ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x2E05B2DC
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBCipherInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherInit]].
=== SceLibKernel_35D20E49 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x35D20E49
|}
It does not seem to call any imported function.
=== SceLibKernel_37F4ED04 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x37F4ED04
|}
It does not seem to call any imported function.
=== SceLibKernel_91FA6614 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x91FA6614
|}
Temp name was sceKernelUnlockLwMutex.
It does not seem to call any imported function.
=== SceLibKernel_120AFC8C ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x120AFC8C
|}
Temp name was sceKernelUnlockLwMutex2.
It does not seem to call any imported function.
=== sceSblGcAuthMgrAdhocBB160Auth5 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x3B595E1D
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth5|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth5]].
=== sceKernelUnlockLwMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x499EA781
|}
Wrapper to [[SceKernelThreadMgr#sceKernelUnlockLwMutex|SceKernelThreadMgr#_sceKernelUnlockLwMutex]].
=== sceSblGcAuthMgrAdhocBB224Auth5 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x4AC7EFC9
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth5|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth5]].


== Heap ==
== Heap ==

Revision as of 09:59, 4 December 2021

SceLibKernel, not to be confused with Kernel is a user module that implements wrappers to some common syscalls (for example, SceIofilemgr), some usermode standard library functions (including C standard library), and other common features like heap management. This module is the functionality similar to libc.so.6 on Linux.

Module

This is a usermode module and exists only in usermode. The SELF can be found in os0:us/libkernel.suprx.

Version Name World Privilege
1.69-3.73 SceLibKernel Non-secure User

Libraries

Known NIDs

Version Name World Privilege NID
1.69-3.60 SceLibKernel Non-secure User 0xCAE9ACE6
1.69-3.60 SceLibRng Non-secure User 0xF9AC7CF8
1.69-3.60 SceLibGcc Non-secure User 0x567AF9A6
1.69-3.60 SceLibSsp Non-secure User 0x8FA98EF1
1.69-3.60 SceRtabi Non-secure User 0xA941943F
1.69-3.60 SceKernelForVM Non-secure User 0xA2B3EA8F
3.60 SceKernelForMono Non-secure User 0x5FEEA076

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);

sceKernelPrintBacktrace

Version NID
3.60 0x1C02A434

This is maybe a guessed name.

sceKernelPrintBacktraceForProcess

Version NID
3.60 0x20E2D4B7

This is a guessed name.

sceSblGcAuthMgrAdhocBB160UniCastDecrypt

Version NID
3.60 0x01E00CBF

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastDecrypt.

SceLibKernel_023EAA62

Version NID
3.60 0x023EAA62

sceKernelGetLibraryInfoByNID

Version NID
3.60 0x0A4DF821

Wrapper to SceKernelModulemgr#_sceKernelGetLibraryInfoByNID.

sceSblGcAuthMgrAdhocBB224Auth3

Version NID
3.60 0x104D802F

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth3.

sceSblGcAuthMgrPkgVry

Version NID
3.60 0x12C7CD2B

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrPkgVry.

sceSblGcAuthMgrMsSaveBBMacInit

Version NID
3.60 0x1693032E

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBMacInit.

sceSblGcAuthMgrAdhocBB160Auth2

Version NID
3.60 0x1F4DF829

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth2.

sceSblGcAuthMgrAdhocBB224Auth1

Version NID
3.60 0x211BEDE8

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth1.

sceSblGcAuthMgrMsSaveBBCipherInit

Version NID
3.60 0x2E05B2DC

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherInit.

SceLibKernel_35D20E49

Version NID
3.60 0x35D20E49

It does not seem to call any imported function.

SceLibKernel_37F4ED04

Version NID
3.60 0x37F4ED04

It does not seem to call any imported function.

SceLibKernel_91FA6614

Version NID
3.60 0x91FA6614

Temp name was sceKernelUnlockLwMutex.

It does not seem to call any imported function.

SceLibKernel_120AFC8C

Version NID
3.60 0x120AFC8C

Temp name was sceKernelUnlockLwMutex2.

It does not seem to call any imported function.

sceSblGcAuthMgrAdhocBB160Auth5

Version NID
3.60 0x3B595E1D

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth5.

sceKernelUnlockLwMutex

Version NID
3.60 0x499EA781

Wrapper to SceKernelThreadMgr#_sceKernelUnlockLwMutex.

sceSblGcAuthMgrAdhocBB224Auth5

Version NID
3.60 0x4AC7EFC9

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth5.

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

sceKernelWaitException

Version NID
3.60 0x1BECC64C

sceKernelSuspendThreadForVM

Version NID
3.60 0x38839DA2

sceKernelSetThreadContextForVM

Version NID
3.60 0x92A0964D

sceKernelResumeThreadForVM

Version NID
3.60 0x9A6D085B

sceKernelGetThreadContextForVM

Version NID
3.60 0xAD210F16

sceKernelWaitExceptionCB

Version NID
3.60 0xE513151F