SceLibKernel: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
 
(76 intermediate revisions by 3 users not shown)
Line 3: Line 3:
== Module ==
== Module ==


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


{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! Name !! World !! Privilege
! Version !! World !! Privilege
|-
|-
| 1.69-3.73 || SceLibKernel || Non-secure || User
| 1.000.071-3.740.011 || Non-secure || User
|}
|}


Line 19: Line 19:
! Version !! Name !! World !! Privilege !! NID
! Version !! Name !! World !! Privilege !! NID
|-
|-
| 1.69-3.60 || [[SceLibKernel#SceLibKernel|SceLibKernel]] || Non-secure || User || 0xCAE9ACE6
| 1.030.071-3.740.011 || [[SceLibKernel#SceLibKernel|SceLibKernel]] || Non-secure || User || 0xCAE9ACE6
|-
|-
| 1.69-3.60 || [[SceLibKernel#SceLibRng|SceLibRng]] || Non-secure || User || 0xF9AC7CF8
| 1.600.061-3.740.011 || [[SceLibKernel#SceLibRng|SceLibRng]] || Non-secure || User || 0xF9AC7CF8
|-
|-
| 1.69-3.60 || [[SceLibKernel#SceLibGcc|SceLibGcc]] || Non-secure || User || 0x567AF9A6
| 1.030.071-3.740.011 || [[SceLibKernel#SceLibGcc|SceLibGcc]] || Non-secure || User || 0x567AF9A6
|-
|-
| 1.69-3.60 || [[SceLibKernel#SceLibSsp|SceLibSsp]] || Non-secure || User || 0x8FA98EF1
| 1.500.151-3.740.011 || [[SceLibKernel#SceLibSsp|SceLibSsp]] || Non-secure || User || 0x8FA98EF1
|-
|-
| 1.69-3.60 || [[SceLibKernel#SceRtabi|SceRtabi]]|| Non-secure || User || 0xA941943F
| 1.030.071-3.740.011 || [[SceLibKernel#SceRtabi|SceRtabi]]|| Non-secure || User || 0xA941943F
|-
|-
| 1.69-3.60 || [[SceLibKernel#SceKernelForVM|SceKernelForVM]] || Non-secure || User || 0xA2B3EA8F
| 1.030.071-3.740.011 || [[SceLibKernel#SceKernelForVM|SceKernelForVM]] || Non-secure || User || 0xA2B3EA8F
|-
|-
| 3.60 || [[SceLibKernel#SceKernelForMono|SceKernelForMono]] || Non-secure || User || 0x5FEEA076
| 2.500.071-3.740.011 || [[SceLibKernel#SceKernelForMono|SceKernelForMono]] || Non-secure || User || 0x5FEEA076
|}
|}


== SceLibKernel ==
== SceLibKernel ==
1.030.071 SceLibKernel functions to wikify:
<pre>
sceKernelGetTLSAddr 0xb295eb61
sceKernelGetThreadId 0x0fb972f9
sceKernelGetCurrentThreadVfpException 0xa37a6057
sceKernelSendMsgPipe 0x0ca71ea2
sceKernelSendMsgPipeCB 0xa5ca74ac
sceKernelTrySendMsgPipe 0xdfc670e0
sceKernelReceiveMsgPipe 0x4e81dd5c
sceKernelReceiveMsgPipeCB 0x33af829b
sceKernelTryReceiveMsgPipe 0x5615b006
sceKernelWaitThreadEnd 0xddb395a9
sceKernelWaitThreadEndCB 0xc54941ed
sceKernelGetThreadExitStatus 0xd5dc26c4
sceKernelStartThread 0xf08de149
sceKernelDeleteThread 0x58ddac4f
sceKernelChangeThreadCpuAffinityMask 0x5150577b
sceKernelGetThreadCpuAffinityMask 0x8c57ac2a
sceKernelChangeThreadPriority 0xdf7e6eda
sceKernelGetThreadStackFreeSize 0xbcb63b66
sceKernelGetThreadInfo 0x8d9c5461
sceKernelGetThreadRunStatus 0xd6b01013
sceKernelGetSystemInfo 0xe0241faa
sceKernelGetThreadmgrUIDClass 0xf994fe65
sceKernelGetActiveCpuMask 0xb4de10c7
sceKernelChangeThreadVfpException 0x2c1321a3
sceKernelCreateCallback 0x3849359a
sceKernelGetCallbackInfo 0x88dd1bc8
sceKernelDeleteCallback 0x464559d3
sceKernelNotifyCallback 0xbd9c8f2b
sceKernelCancelCallback 0x3137a687
sceKernelGetCallbackCount 0x76a2ef81
sceKernelRegisterCallbackToEvent 0xd4f75281
sceKernelUnregisterCallbackFromEvent 0x8d3940df
sceKernelUnregisterCallbackFromEventAll 0x2bd1e682
sceKernelWaitEventCB 0xa0490795
sceKernelPollEvent 0x241f3634
sceKernelCancelEvent 0x603ab770
sceKernelWaitMultipleEvents 0x10586418
sceKernelWaitMultipleEventsCB 0x4263dbc9
sceKernelCreateEventFlag 0x8516d040
sceKernelDeleteEventFlag 0x11fe9b8b
sceKernelOpenEventFlag 0xe04ec73a
sceKernelCloseEventFlag 0x9c0b8285
sceKernelWaitEventFlag 0x83c0e2af
sceKernelWaitEventFlagCB 0xe737b1df
sceKernelPollEventFlag 0x1fbb0fe1
sceKernelCancelEventFlag 0x2a12d9b7
sceKernelGetEventFlagInfo 0x8ba4c0c1
sceKernelSetEventFlag 0x9ef9c0c5
sceKernelClearEventFlag 0xd018793f
sceKernelCreateSema 0x297aa2ae
sceKernelDeleteSema 0xc08f5bc5
sceKernelOpenSema 0xb028ab78
sceKernelCloseSema 0x817707ab
sceKernelWaitSema 0x0c7b834b
sceKernelWaitSemaCB 0x174692b4
sceKernelCancelSema 0x66d6bf05
sceKernelGetSemaInfo 0x595d3fa6
sceKernelPollSema 0x3012a9c6
sceKernelSignalSema 0x2053a496
sceKernelCreateCond 0x50572fda
sceKernelOpenCond 0xcb2a73a9
sceKernelCloseCond 0x4fb91a89
sceKernelWaitCond 0xc88d44ad
sceKernelWaitCondCB 0x4ce42ce2
sceKernelGetCondInfo 0x6864dce2
sceKernelSignalCondAll 0x2eb86929
sceKernelSignalCondTo 0x087629e6
sceKernelCreateMsgPipe 0x0a10c1c8
sceKernelDeleteMsgPipe 0x69f6575d
sceKernelOpenMsgPipe 0x230691da
sceKernelCloseMsgPipe 0x7e5c0c16
sceKernelSendMsgPipeVector 0x94d506f7
sceKernelSendMsgPipeVectorCB 0x9c6f7f79
sceKernelTrySendMsgPipeVector 0x60db346f
sceKernelReceiveMsgPipeVector 0x9f899087
sceKernelReceiveMsgPipeVectorCB 0xbe5b3e27
sceKernelTryReceiveMsgPipeVector 0x86ecc0ff
sceKernelCancelMsgPipe 0xef14ba37
sceKernelGetMsgPipeInfo 0x4046d16b
sceKernelCreateLwCond 0x48c7eae6
sceKernelDeleteLwCond 0x721f6cb3
sceKernelWaitLwCond 0xe1878282
sceKernelWaitLwCondCB 0x8fa54b07
sceKernelSignalLwCond 0x3ac63b9a
sceKernelSignalLwCondAll 0xe5241a0c
sceKernelSignalLwCondTo 0xfc1a48eb
sceKernelGetLwCondInfo 0xe4df36a0
sceKernelGetLwCondInfoById 0x971f1de8
sceKernelCreateTimer 0x2255b2a5
sceKernelDeleteTimer 0x746f3290
sceKernelOpenTimer 0x2f3d35a3
sceKernelCloseTimer 0x17283de6
sceKernelStartTimer 0x1478249b
sceKernelStopTimer 0x075b1329
sceKernelGetTimerBaseWide 0x3223ccd1
sceKernelGetTimerTimeWide 0x53c5d833
sceKernelSetTimerTimeWide 0xaf67678b
sceKernelCreateRWLock 0x8667951d
sceKernelDeleteRWLock 0x3d750204
sceKernelOpenRWLock 0xba4dac9a
sceKernelCloseRWLock 0xa7f94e64
sceKernelLockReadRWLock 0xfa670f0f
sceKernelLockReadRWLockCB 0x2d4a62b7
sceKernelTryLockReadRWLock 0x1b8586c0
sceKernelUnlockReadRWLock 0x675d10a8
sceKernelLockWriteRWLock 0x67a187bb
sceKernelLockWriteRWLockCB 0xa4777082
sceKernelTryLockWriteRWLock 0x597d4607
sceKernelUnlockWriteRWLock 0xd9369df2
sceKernelCancelRWLock 0x190ca94b
sceKernelGetRWLockInfo 0x079a573b
sceKernelGetSystemTime 0x8af15b5f
sceKernelPMonThreadGetCounter 0x99b2bf15
sceKernelPMonCpuGetCounter 0x7c21c961
sceKernelWaitSignal 0xadca94e5
sceKernelWaitSignalCB 0x24460bb3
sceKernelSendSignal 0x7be9c4c8
sceKernelCreateThread 0xc5c11ee7
sceSblACMgrIsGameProgram 0x963f4a99
sceKernelGetOpenPsId 0x261e2c34
</pre>
=== sceKernelWaitEvent ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x120F03AF
|}
<source lang="C">SceInt32 sceKernelWaitEvent(SceUID eventId, SceUInt32 waitPattern, SceUInt32 *pResultPattern, SceUInt64 *pUserData, SceUInt32 *pTimeout);</source>
=== sceKernelSetTimerTime ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xFFAD717F
|}
<source lang="C">int sceKernelSetTimerTime(SceUID timerId, SceUInt64 *time);</source>
=== sceKernelSetTimerEvent ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x621D293B
|}
<source lang="C">int sceKernelSetTimerEvent(SceUID timerId, int type, SceUInt64 *time, SceBool repeat);</source>
=== sceKernelGetTimerTime ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x381DC300
|}
<source lang="C">int sceKernelGetTimerTime(SceUID timerId, SceUInt64 *time);</source>
=== sceKernelGetTimerInfo ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x7E35E10A
|}
<source lang="C">int sceKernelGetTimerInfo(SceUID timerId, void *pInfo);</source>
=== sceKernelGetTimerEventRemainingTime ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x75B1EB3E
|}
<source lang="C">int sceKernelGetTimerEventRemainingTime(SceUID timerId, SceUInt64 *time);</source>
=== sceKernelGetTimerBase ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x1F59E04D
|}
<source lang="C">int sceKernelGetTimerBase(SceUID timerId, SceUInt64 *result);</source>
=== sceKernelCancelTimer ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x9CCF768C
|}
<source lang="C">int sceKernelCancelTimer(SceUID timerId, SceUInt32 *a2);</source>
=== sceKernelAtomicAddAndGet8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x8F7BD940
|}
<source lang="C">SceInt8 sceKernelAtomicAddAndGet8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicAddAndGet16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x495C52EC
|}
<source lang="C">SceInt16 sceKernelAtomicAddAndGet16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicAddAndGet32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x2E84A93B
|}
<source lang="C">SceInt32 sceKernelAtomicAddAndGet32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicAddAndGet64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xB6CE9B9A
|}
<source lang="C">SceInt64 sceKernelAtomicAddAndGet64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicAddUnless8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x7FD94393
|}
<source lang="C">SceBool sceKernelAtomicAddUnless8(SceInt8 *store, SceInt8 value, SceInt8 cmpv);</source>
=== sceKernelAtomicAddUnless16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x1CF4AA4B
|}
<source lang="C">SceBool sceKernelAtomicAddUnless16(SceInt16 *store, SceInt16 value, SceInt16 cmpv);</source>
=== sceKernelAtomicAddUnless32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x4B33FD3C
|}
<source lang="C">SceBool sceKernelAtomicAddUnless32(SceInt32 *store, SceInt32 value, SceInt32 cmpv);</source>
=== sceKernelAtomicAddUnless64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xFFCE7438
|}
<source lang="C">SceBool sceKernelAtomicAddUnless64(SceInt64 *store, SceInt64 value, SceInt64 cmpv);</source>
=== sceKernelAtomicAndAndGet8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x86B9170F
|}
<source lang="C">SceInt8 sceKernelAtomicAndAndGet8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicAndAndGet16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xF9890F7E
|}
<source lang="C">SceInt16 sceKernelAtomicAndAndGet16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicAndAndGet32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x6709D30C
|}
<source lang="C">SceInt32 sceKernelAtomicAndAndGet32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicAndAndGet64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xAED2B370
|}
<source lang="C">SceInt64 sceKernelAtomicAndAndGet64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicClearAndGet8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x17B40010
|}
<source lang="C">SceInt8 sceKernelAtomicClearAndGet8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicClearAndGet16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xCC36B775
|}
<source lang="C">SceInt16 sceKernelAtomicClearAndGet16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicClearAndGet32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x9DAA0DE8
|}
<source lang="C">SceInt32 sceKernelAtomicClearAndGet32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicClearAndGet64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x264209F3
|}
<source lang="C">SceInt64 sceKernelAtomicClearAndGet64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicClearMask8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xD7D49E36
|}
<source lang="C">void sceKernelAtomicClearMask8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicClearMask16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x5FE7DFF8
|}
<source lang="C">void sceKernelAtomicClearMask16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicClearMask32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xE3DF0CB3
|}
<source lang="C">void sceKernelAtomicClearMask32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicClearMask64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x953D118A
|}
<source lang="C">void sceKernelAtomicClearMask64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicCompareAndSet8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x327DB4C0
|}
<source lang="C">SceInt8 sceKernelAtomicCompareAndSet8(SceInt8 *store, SceInt8 value, SceInt8 new);</source>
=== sceKernelAtomicCompareAndSet16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xE8C01236
|}
<source lang="C">SceInt16 sceKernelAtomicCompareAndSet16(SceInt16 *store, SceInt16 value, SceInt16 new);</source>
=== sceKernelAtomicCompareAndSet32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x1124A1D4
|}
<source lang="C">SceInt32 sceKernelAtomicCompareAndSet32(SceInt32 *store, SceInt32 value, SceInt32 new);</source>
=== sceKernelAtomicCompareAndSet64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x1EBDFCCD
|}
<source lang="C">SceInt64 sceKernelAtomicCompareAndSet64(SceInt64 *store, SceInt64 value, SceInt64 new);</source>
=== sceKernelAtomicDecIfPositive8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x9DABE6C3
|}
<source lang="C">SceInt8 sceKernelAtomicDecIfPositive8(SceInt8 *store);</source>
=== sceKernelAtomicDecIfPositive16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x323718FB
|}
<source lang="C">SceInt16 sceKernelAtomicDecIfPositive16(SceInt16 *store);</source>
=== sceKernelAtomicDecIfPositive32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xCA3294F1
|}
<source lang="C">SceInt32 sceKernelAtomicDecIfPositive32(SceInt32 *store);</source>
=== sceKernelAtomicDecIfPositive64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x8BE2A007
|}
<source lang="C">SceInt64 sceKernelAtomicDecIfPositive64(SceInt64 *store);</source>
=== sceKernelAtomicGetAndAdd8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x27A2AAFA
|}
<source lang="C">SceInt8 sceKernelAtomicGetAndAdd8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicGetAndAdd16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x5674DB0C
|}
<source lang="C">SceInt16 sceKernelAtomicGetAndAdd16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicGetAndAdd32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x2611CB0B
|}
<source lang="C">SceInt32 sceKernelAtomicGetAndAdd32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicGetAndAdd64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x63DAF37D
|}
<source lang="C">SceInt64 sceKernelAtomicGetAndAdd64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicGetAndAnd8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x53DCA02B
|}
<source lang="C">SceInt8 sceKernelAtomicGetAndAnd8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicGetAndAnd16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x7A0CB056
|}
<source lang="C">SceInt16 sceKernelAtomicGetAndAnd16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicGetAndAnd32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x08266595
|}
<source lang="C">SceInt32 sceKernelAtomicGetAndAnd32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicGetAndAnd64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x4828BC43
|}
<source lang="C">SceInt64 sceKernelAtomicGetAndAnd64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicGetAndClear8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xA10873A4
|}
<source lang="C">SceInt8 sceKernelAtomicGetAndClear8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicGetAndClear16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x57CD7E7D
|}
<source lang="C">SceInt16 sceKernelAtomicGetAndClear16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicGetAndClear32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x0226A017
|}
<source lang="C">SceInt32 sceKernelAtomicGetAndClear32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicGetAndClear64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x436AA0B5
|}
<source lang="C">SceInt64 sceKernelAtomicGetAndClear64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicGetAndOr8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x107A68DF
|}
<source lang="C">SceInt8 sceKernelAtomicGetAndOr8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicGetAndOr16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x31E49E73
|}
<source lang="C">SceInt16 sceKernelAtomicGetAndOr16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicGetAndOr32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x984AD276
|}
<source lang="C">SceInt32 sceKernelAtomicGetAndOr32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicGetAndOr64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xC39186CD
|}
<source lang="C">SceInt64 sceKernelAtomicGetAndOr64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicGetAndSet8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x2672EA0B
|}
<source lang="C">SceInt8 sceKernelAtomicGetAndSet8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicGetAndSet16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xF7B9ADFC
|}
<source lang="C">SceInt16 sceKernelAtomicGetAndSet16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicGetAndSet32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x9B43E667
|}
<source lang="C">SceInt32 sceKernelAtomicGetAndSet32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicGetAndSet64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xD82B3A7A
|}
<source lang="C">SceInt64 sceKernelAtomicGetAndSet64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicGetAndSub8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xCDF5DF67
|}
<source lang="C">SceInt8 sceKernelAtomicGetAndSub8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicGetAndSub16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xAC51979C
|}
<source lang="C">SceInt16 sceKernelAtomicGetAndSub16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicGetAndSub32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x115C516F
|}
<source lang="C">SceInt32 sceKernelAtomicGetAndSub32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicGetAndSub64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x4AE9C8E6
|}
<source lang="C">SceInt64 sceKernelAtomicGetAndSub64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicGetAndXor8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x7350B2DF
|}
<source lang="C">SceInt8 sceKernelAtomicGetAndXor8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicGetAndXor16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x6E2D0B9E
|}
<source lang="C">SceInt16 sceKernelAtomicGetAndXor16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicGetAndXor32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x38739E2F
|}
<source lang="C">SceInt32 sceKernelAtomicGetAndXor32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicGetAndXor64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x6A19BBE9
|}
<source lang="C">SceInt64 sceKernelAtomicGetAndXor64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicOrAndGet8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x51693931
|}
<source lang="C">SceInt8 sceKernelAtomicOrAndGet8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicOrAndGet16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x8E248EBD
|}
<source lang="C">SceInt16 sceKernelAtomicOrAndGet16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicOrAndGet32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xC3B2F7F8
|}
<source lang="C">SceInt32 sceKernelAtomicOrAndGet32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicOrAndGet64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x809BBC7D
|}
<source lang="C">SceInt64 sceKernelAtomicOrAndGet64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicSet8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xE960FDA2
|}
<source lang="C">void sceKernelAtomicSet8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicSet16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x450BFECF
|}
<source lang="C">void sceKernelAtomicSet16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicSet32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xB69DA09B
|}
<source lang="C">void sceKernelAtomicSet32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicSet64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xC8A4339C
|}
<source lang="C">void sceKernelAtomicSet64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicSubAndGet8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x99E1796E
|}
<source lang="C">SceInt8 sceKernelAtomicSubAndGet8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicSubAndGet16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xC26BBBB1
|}
<source lang="C">SceInt16 sceKernelAtomicSubAndGet16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicSubAndGet32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x01C9CD92
|}
<source lang="C">SceInt32 sceKernelAtomicSubAndGet32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicSubAndGet64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x9BB4A94B
|}
<source lang="C">SceInt64 sceKernelAtomicSubAndGet64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelAtomicXorAndGet8 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x634AF062
|}
<source lang="C">SceInt8 sceKernelAtomicXorAndGet8(SceInt8 *store, SceInt8 value);</source>
=== sceKernelAtomicXorAndGet16 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x6F524195
|}
<source lang="C">SceInt16 sceKernelAtomicXorAndGet16(SceInt16 *store, SceInt16 value);</source>
=== sceKernelAtomicXorAndGet32 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0x46940704
|}
<source lang="C">SceInt32 sceKernelAtomicXorAndGet32(SceInt32 *store, SceInt32 value);</source>
=== sceKernelAtomicXorAndGet64 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.20 || 0xDDC6866E
|}
<source lang="C">SceInt64 sceKernelAtomicXorAndGet64(SceInt64 *store, SceInt64 value);</source>
=== sceKernelOpenMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-1.692.000 || 0x16B85235
|-
| 1.800.060-3.740.011 || not present
|}
=== sceKernelCloseMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-1.692.000 || 0x43DDC9CC
|-
| 1.800.060-3.740.011 || not present
|}
=== sceKernelTryLockMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-1.692.000 || 0xE5901FF9
|-
| 1.800.060-3.740.011 || not present
|}
=== sceKernelUnlockMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-1.692.000 || 0x34746309
|-
| 1.800.060-3.740.011 || not present
|}
=== sceKernelDeleteMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.930.010-1.692.000 || 0x12D11F65
|-
| 1.800.060-3.740.011 || not present
|}
<source lang="C">int sceKernelDeleteMutex(SceUID mutex_id);</source>
=== sceKernelCreateMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0xED53334A
|}
=== sceKernelLockMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x1D8D7945
|}
=== sceKernelLockMutexCB ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x2BDAA524
|}
=== sceKernelCancelMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x2144890D
|}
=== sceKernelGetMutexInfo ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x9A6C43CA
|}
=== sceKernelCreateLwMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0xDA6EC8EF
|}
=== sceKernelDeleteLwMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x244E76D2
|}
=== sceKernelGetLwMutexInfoById ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x4846613D
|}
=== sceKernelGetLwMutexInfo ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0xF7D8F1FC
|}
=== sceKernelUnlockLwMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x499EA781
|}
Wrapper to [[SceKernelThreadMgr#sceKernelUnlockLwMutex|SceKernelThreadMgr#_sceKernelUnlockLwMutex]].
<source lang="C">int sceKernelUnlockLwMutex(SceLwMutex *mutex, SceUInt32 count);</source>
=== sceKernelLockLwMutex_old ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0xA6A2C915
|}
This is a guessed name. Temp name was sceKernelTryLockLwMutex.
PSP-like "sceKernelTryLockLwMutex".
<source lang="C">int sceKernelLockLwMutex_old(SceLwMutex *mutex, SceUInt32 count);</source>
=== sceKernelLockLwMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0xA7819967
|}
It calls PSP-like [[#sceKernelLockLwMutex_old]], and on failure [[SceKernelThreadMgr#_sceKernelLockLwMutex]] with flag 0 (non-CB).
<source lang="C">int sceKernelLockLwMutex(SceLwMutex *mutex, SceUInt32 count, void *in_out);</source>
=== sceKernelLockLwMutex_2 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x46E7BE7B
|}
=== sceKernelTryLockLwMutex ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x9EF798C1
|}
It does not seem to call any imported function.
<source lang="C">int sceKernelTryLockLwMutex(void *mutex, SceUInt32 count);</source>
=== sceKernelLockLwMutexCB ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x6F9C4CC1
|}
It calls PSP-like [[#sceKernelLockLwMutex_old]], and on failure [[SceKernelThreadMgr#_sceKernelLockLwMutex]] with flag 1 (CB).
<source lang="C">int sceKernelLockLwMutexCB(SceLwMutex *mutex, SceUInt32 count, void *in_out);</source>
=== sceKernelTryLockLwMutex_600 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x3148C6B6
|}
This is a guessed name (need to compare with sceKernelTryLockLwMutex and with PSP sceKernelTryLockLwMutex_600).
=== SceLibKernel_91FA6614 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.930.010-3.01 || not present
|-
| 3.100.081-3.740.011 || 0x91FA6614
|}
Temp name was sceKernelUnlockLwMutex.
It does not seem to call any imported function.
=== SceLibKernel_120AFC8C ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x120AFC8C
|}
Temp name was sceKernelUnlockLwMutex2.
It does not seem to call any imported function.
=== sceKernelSignalCond ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.930.010-1.692.000 || 0x10A4976F
|-
| 1.800.060-3.740.011 || not present
|}
<source lang="C">SceBool sceKernelSignalCond(int a1);</source>
=== sceKernelDeleteCond ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.930.010-1.692.000 || 0xFD295414
|-
| 1.800.071-3.740.011 || not present
|}
<source lang="C">SceBool sceKernelDeleteCond(int *a1);</source>


=== sceIoChstatAsync ===
=== sceIoChstatAsync ===
Line 87: Line 1,265:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x04B30CB2
| 1.000.071-3.740.011 || 0x04B30CB2
|}
|}
This performs device-specific operations. The details of the operations are driver-dependent.
This is a wrapper for [[SceIofilemgr#sceIoDevctl|_sceIoDevctl]].
<source lang="C">
/*
Arguments:
devname    Specified device ("<devname><unit>:")
cmd    Command code
arg    Pointer to device-driver-dependent parameter block
arglen    Number of bytes in device-driver-dependent parameter block
bufp    Pointer to return data storage block
buflen    Size of return data storage block
Return Values:
Non-negative (N>=0) Success (driver-dependent)
<0 Error, e.g. SCE_ERROR_ERRNO_EMFILE, SCE_ERROR_ERRNO_ENODEV, SCE_ERROR_ERRNO_EUNSUP
*/
int sceIoDevctl(
    const char *devname,
    int cmd,
    const void *arg,
    SceSize arglen,
    void *bufp,
    SceSize buflen
);
</source>


=== sceIoDopen ===
=== sceIoDopen ===
Line 342: Line 1,549:
derived from <code>SceIofilemgr</code> <code>_sceIoCompleteMultiple</code>
derived from <code>SceIofilemgr</code> <code>_sceIoCompleteMultiple</code>


=== sceKernelPrintBacktrace ===
=== sceKernelPrintBacktraceForProcess ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60-3.65 || 0x1C02A434
| 1.000.071-3.740.011 || 0x20E2D4B7
|}
|}


This is maybe a guessed name.
This is a guessed name.
 
Wrapper for [[SceLibKernel#sceKernelPrintBacktraceForProcess|sceKernelPrintBacktraceForProcess]].


<source lang="C">
<source lang="C">
Line 360: Line 1,565:
  * @return SCE_OK on success, < 0 on error
  * @return SCE_OK on success, < 0 on error
  *
  *
* @param pid ?Process ID to operate under? - only SCE_KERNEL_PROCESS_ID_SELF or result of sceKernelGetProcessId is accepted
  * @param pCallFrame Pointer to an array of filled up call frames
  * @param pCallFrame Pointer to an array of filled up call frames
  * @param numFrames Number of frames in the buffer pointed to by pCallFrame
  * @param numFrames Number of frames in the buffer pointed to by pCallFrame
  */
  */
SceInt32 sceKernelPrintBacktrace(SceKernelCallFrame* pCallFrame, SceUInt32 numFrames);
SceInt32 sceKernelPrintBacktraceForProcess(SceUID pid, SceKernelCallFrame* pCallFrame, SceUInt32 numFrames);
</source>
</source>


=== sceKernelPrintBacktraceForProcess ===
=== sceKernelBacktrace ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60-3.65 || 0x20E2D4B7
| 1.000.071-3.740.011 || 0x894037E8
|}
|}


This is a guessed name.
Wrapper to [[SceKernelModulemgr#sceKernelBacktrace|SceKernelModulemgr#_sceKernelBacktrace]].
 
<source lang="C">
SceInt32 sceKernelBacktrace(SceUID threadId, SceKernelCallFrame *pCallFrameBuffer, SceSize numBytesBuffer, SceUInt32 *pNumReturn, SceInt32 mode);
</source>
 
=== sceKernelBacktraceSelf ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.000.071-3.740.011 || 0xD16C03B0
|}


<source lang="C">
<source lang="C">
/**
/**
  * Prints call frames to STDOUT - does NOT perform a backtrace
  * Performs a walk back in the call stack and returns obtained stack frames.
  *
  *
  * @return SCE_OK on success, < 0 on error
  * @return Call stack depth or SCE_OK on success, < 0 on error
  *
  *
  * @param pid ?Process ID to operate under? - only SCE_KERNEL_PROCESS_ID_SELF or result of sceKernelGetProcessId is accepted
  * @param pCallFrameBuffer Pointer to an array of call frames that will recieve information
* @param pCallFrame Pointer to an array of filled up call frames
  * @param numBytesBuffer Number of bytes in the buffer pointed to by pCallFrameBuffer
  * @param numFrames Number of frames in the buffer pointed to by pCallFrame
* @param pNumReturn Pointer to a variable that will obtain the actual number of call frames filled up
* @param mode Specify SCE_KERNEL_BACKTRACE_MODE_USER - you can also specify the SCE_KERNEL_BACKTRACE_MODE_DONT_EXCEED option with a logical OR
* @note Specifying SCE_KERNEL_BACKTRACE_MODE_DONT_EXCEED stops processing when the call frame buffer is filled up - SCE_OK is returned instead of call stack depth
  */
  */
SceInt32 sceKernelPrintBacktraceForProcess(SceUID pid, SceKernelCallFrame* pCallFrame, SceUInt32 numFrames);
SceInt32 sceKernelBacktraceSelf(SceKernelCallFrame *pCallFrameBuffer, SceSize numBytesBuffer, SceUInt32 *pNumReturn, SceInt32 mode);
</source>
</source>


=== sceSblGcAuthMgrAdhocBB160UniCastDecrypt ===
=== sceKernelPuts ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.902-3.740.011 || 0x023EAA62
|}
 
Dummy function in System Software version 3.60.
 
<source lang="C">int sceKernelPuts(const char* str);</source>
 
=== sceKernelGetLibraryVariableAddress ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x01E00CBF
| 0.931.010-1.692.000 || not present
|-
| 1.800.060-3.740.011 || 0x0A4DF821
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160UniCastDecrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastDecrypt]].
Temp name was sceKernelGetModuleVariableByNID.
 
Gets variable address by NID.
 
Calls [[SceKernelModulemgr#sceKernelGetLibraryInfoByNID|SceKernelModulemgr#_sceKernelGetLibraryInfoByNID]].
 
Usage:
<source lang="C">
extern char _NID_libName[]; /* dummy array '_NID_libName' is ABS symbol in libName_stub.a */
extern char _NID_varName[]; /* dummy array '_NID_varName' is ABS symbol in libName_stub.a */
 
#define NAME2NID(name)  (unsigned int)(_NID_ ## name)
 
#define libName_GetVariableAddress(modid, varname, ptr) \
  sceKernelGetLibraryVariableAddress((modid),\
                NAME2NID(libName),\
                NAME2NID(varname),\
                (void **)(ptr))
</source>
 
<source lang="C">int sceKernelGetLibraryVariableAddress(SceUID modid, SceNID libnid, SceNID var_nid, void **pVarAddr);</source>


=== SceLibKernel_023EAA62 ===
=== sceKernelLinkFunctionTable ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x023EAA62
| 0.931.010-1.692.000 || not present
|-
| 1.800.060-3.740.011 || 0xBEF71602
|}
|}


=== sceKernelGetLibraryInfoByNID ===
Temp name was sceKernelGetModuleFunctionsByNID.
 
Sets functions table for a module.
 
Calls [[SceKernelModulemgr#sceKernelGetLibraryInfoByNID|SceKernelModulemgr#_sceKernelGetLibraryInfoByNID]].
 
Usage:
<source lang="C">
typedef int (*funcName_t)(int a1);
 
extern char _NID_libName[]; /* dummy array '_NID_libName' is ABS symbol in libName_stub.a */
extern char _NID_funcName[]; /* dummy array '_NID_funcName' is ABS symbol in libName_stub.a */
 
#define NAME2NID(name)  (unsigned int)(_NID_ ## name)
 
typedef struct libName_Functions_table {
    funcName_t funcName;
} libName_Functions_table;
 
SceNID libName_nid_table[] = {
    NAME2NID(funcName),
};
 
#define _ARRAY_SIZE(array) (sizeof(array)/sizeof(array[0]))
 
#define libName_LinkFunctionTable(modid, table) \
  sceKernelLinkFunctionTable((modid),\
                NAME2NID(libName),\
                _ARRAY_SIZE(libName_nid_table), libName_nid_table,\
                (void **)(table))
</source>
 
<source lang="C">int sceKernelLinkFunctionTable(SceUID modid, SceNID libnid, SceUInt32 nNID, const SceNID *pNids, void **pEntries);</source>
 
=== sceKernelUnlinkFunctionTable ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x0A4DF821
| 0.931.010-1.692.000 || not present
|-
| 1.800.060-3.740.011 || 0x70867F93
|}
|}


Wrapper to [[SceKernelModulemgr#sceKernelGetLibraryInfoByNID|SceKernelModulemgr#_sceKernelGetLibraryInfoByNID]].
Temp name was sceClibBzeroWords.
 
This function only does <code>sceClibMemset(pNids, 0, nNID << 2);</code>.
 
Usage:
<source lang="C">
extern char _NID_libName[]; /* dummy array '_NID_libName' is ABS symbol in libName_stub.a */
 
#define NAME2NID(name)  (unsigned int)(_NID_ ## name)
 
#define libName_UnlinkFunctionTable_test(modid, table) \
  sceKernelUnlinkFunctionTable((modid),\
                NAME2NID(libName),\
                _ARRAY_SIZE(libName_nid_table),\
                (void **)(table))
</source>
 
<source lang="C">int sceKernelUnlinkFunctionTable(SceUID modid, SceNID libnid, SceUInt32 nNID, const SceNID *pNids);</source>


=== sceSblGcAuthMgrAdhocBB224Auth3 ===
=== sceSblGcAuthMgrAdhocBB224Auth3 ===
Line 446: Line 1,755:


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBMacInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBMacInit]].
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBMacInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBMacInit]].
=== sceSblGcAuthMgrAdhocBB160UniCastDecrypt ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x01E00CBF
|}
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160UniCastDecrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastDecrypt]].


=== sceSblGcAuthMgrAdhocBB160Auth2 ===
=== sceSblGcAuthMgrAdhocBB160Auth2 ===
Line 477: Line 1,796:
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBCipherInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherInit]].
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBCipherInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherInit]].


=== SceLibKernel_35D20E49 ===
=== SceLibKernel_37F4ED04 ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x35D20E49
| 1.030.071-3.740.011 || 0x37F4ED04
|}
|}


It does not seem to call any imported function.
It does not seem to call any imported function.


=== SceLibKernel_37F4ED04 ===
=== sceSblGcAuthMgrAdhocBB160Auth5 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x3B595E1D
|}
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth5|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth5]].
 
=== sceSblGcAuthMgrAdhocBB224Auth5 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x4AC7EFC9
|}
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth5|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth5]].
 
=== sceSblGcAuthMgrMsSaveBBCipherUpdate ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x56A59D4F
|}
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBCipherUpdate|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherUpdate]].
 
=== sceSblGcAuthMgrPsmactCreateC1 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x622A81E6
|}
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrPsmactCreateC1|SceSblGcAuthMgr#_sceSblGcAuthMgrPsmactCreateC1]].
 
=== sceSblGcAuthMgrAdhocBB160Auth4 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x6314CAA3
|}
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth4|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth4]].
 
=== sceSblGcAuthMgrAdhocBB224Auth4 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x65126005
|}
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth4|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth4]].
 
=== sceKernelRegisterThreadEventHandler ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x6D8C0F13
|}
 
Wrapper to [[SceKernelThreadMgr#sceKernelRegisterThreadEventHandler|SceKernelThreadMgr#_sceKernelRegisterThreadEventHandler]].
 
<source lang="C">int sceKernelRegisterThreadEventHandler(char *name, SceUID thread_id, SceUInt32 mask, SceKernelThreadEventHandler *handler, void *common);</source>
 
=== sceSblGcAuthMgrMsSaveBBMacFinal ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x774AE3CB
|}
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBMacFinal|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBMacFinal]].
 
=== sceSblGcAuthMgrAdhocBB160GetKeys ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x84C75DC3
|}
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160GetKeys|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160GetKeys]].
 
=== sceSblGcAuthMgrAdhocBB160BroadCastEncrypt ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x88E72157
|}
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160BroadCastEncrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160BroadCastEncrypt]].
 
=== sceSblGcAuthMgrSclkGetData1 ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x37F4ED04
| 3.60 || 0x93A6570E
|}
|}


It does not seem to call any imported function.
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrSclkGetData1|SceSblGcAuthMgr#_sceSblGcAuthMgrSclkGetData1]].


=== SceLibKernel_91FA6614 ===
=== sceSblGcAuthMgrPcactGetChallenge ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x91FA6614
| 0.931.010-1.000.041 || not present
|-
| 1.80-3.60 || 0x9557D15C
|}
|}


Temp name was sceKernelUnlockLwMutex.
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrPcactGetChallenge|SceSblGcAuthMgr#_sceSblGcAuthMgrPcactGetChallenge]]. Calls it with epasswordSize = 0x20 and challengeSize = 0x80.
 
<source lang="C">
// epassword size must be 0x20 bytes
// challenge size must be 0x80 bytes
int sceSblGcAuthMgrPcactGetChallenge(SceUInt32 id, const char *epassword, char *challenge);
</source>
 
=== sceSblGcAuthMgrAdhocBB160Init ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x9B28E1AF
|}


It does not seem to call any imported function.
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Init|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Init]].


=== SceLibKernel_120AFC8C ===
=== sceKernelGetMainModuleSdkVersion ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x120AFC8C
| 0.931.010-1.06 || not present
|-
| 1.500.151-3.740.011 || 0x9F793F84
|}
|}


Temp name was sceKernelUnlockLwMutex2.
Gets the module SDK version from the process' [[PRX#NONAME_exports|SceProcessParam]]. Used for PSN Auth in [[SceShell]].
 
<source lang="C">int sceKernelGetMainModuleSdkVersion(void);</source>


It does not seem to call any imported function.
=== sceKernelLoadModule ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0xBBE82155
|}


=== sceSblGcAuthMgrAdhocBB160Auth5 ===
=== sceKernelLoadStartModule ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x3B595E1D
| 1.030.071-3.740.011 || 0x2DCC4AFA
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth5|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth5]].
=== sceKernelStartModule ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x702425D5
|}


=== sceKernelUnlockLwMutex ===
=== sceKernelStopModule ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x499EA781
| 1.030.071-3.740.011 || 0x3B2CBA09
|}
|}


Wrapper to [[SceKernelThreadMgr#sceKernelUnlockLwMutex|SceKernelThreadMgr#_sceKernelUnlockLwMutex]].
=== sceKernelUnloadModule ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x1987920E
|}


=== sceSblGcAuthMgrAdhocBB224Auth5 ===
=== sceKernelStopUnloadModule ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x4AC7EFC9
| 1.030.071-3.740.011 || 0x2415F8A4
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth5|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth5]].
=== sceKernelCallModuleExit ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x15E2A45D
|}


=== sceSblGcAuthMgrMsSaveBBCipherUpdate ===
=== sceKernelGetModuleInfoByAddr ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x56A59D4F
| 1.030.071-3.740.011 || 0xD11A5103
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBCipherUpdate|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherUpdate]].
=== sceKernelOpenModule ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x4F2D8B15
|}


=== sceSblGcAuthMgrPsmactCreateC1 ===
=== sceKernelCloseModule ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x622A81E6
| 1.030.071-3.740.011 || 0x657FA50E
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrPsmactCreateC1|SceSblGcAuthMgr#_sceSblGcAuthMgrPsmactCreateC1]].
=== sceKernelExitProcess ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.030.071-3.740.011 || 0x7595D9AA
|}


=== sceSblGcAuthMgrAdhocBB160Auth4 ===
=== sceSblGcAuthMgrAdhocBB160UniCastEncrypt ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x6314CAA3
| 3.60 || 0xA9002567
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth4|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth4]].
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160UniCastEncrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastEncrypt]].


=== sceSblGcAuthMgrAdhocBB224Auth4 ===
=== sceSblGcAuthMgrAdhocBB224GetKeys ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x65126005
| 3.60 || 0xAC57B6A4
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth4|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth4]].
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224GetKeys|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224GetKeys]].


=== SceLibKernel_6C7365C4 ===
=== sceSblGcAuthMgrAdhocBB160Auth3 ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x6C7365C4
| 3.60 || 0xC362ECD6
|}
|}


It does not seem to call any imported function.
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth3|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth3]].
 
=== sceSblGcAuthMgrAdhocBB224Init ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xC8082804
|}


Related to [[#sceKernelBacktraceSelf]].
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Init|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Init]].


=== sceKernelRegisterThreadEventHandler ===
=== SceLibKernel_DC277B4D ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x6D8C0F13
| 3.60 || 0xDC277B4D
|}
|}


Wrapper to [[SceKernelThreadMgr#sceKernelRegisterThreadEventHandler|SceKernelThreadMgr#_sceKernelRegisterThreadEventHandler]].
Returns a 64bit value and uses 0xdeadbeef constant somehow.


<source lang="C">int sceKernelRegisterThreadEventHandler(char *name, SceUID thread_id, SceUInt32 mask, SceKernelThreadEventHandler *handler, void *common);</source>
<source lang="C">ulonglong SceLibKernel_DC277B4D(int a1, SceUInt32 low);</source>


=== sceKernelTryLockLwMutex_old ===
=== sceSblGcAuthMgrAdhocBB224Auth2 ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xA6A2C915
| 3.60 || 0xDEAD6277
|}
|}


This is a guessed name. Temp name was sceKernelTryLockLwMutex.
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth2|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth2]].


PSP-like "sceKernelTryLockLwMutex".
=== sceSblGcAuthMgrSclkSetData2 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xE088B0D0
|}


<source lang="C">int sceKernelTryLockLwMutex_old(SceLwMutex *mutex, SceUInt32 count);</source>
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrSclkSetData2|SceSblGcAuthMgr#_sceSblGcAuthMgrSclkSetData2]].


=== sceKernelTryLockLwMutex_1 ===
=== sceSblGcAuthMgrAdhocBB160BroadCastDecrypt ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x6F9C4CC1
| 3.60 || 0xE2984A54
|}
|}


This is a guessed name.  
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160BroadCastDecrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160BroadCastDecrypt]].


It calls PSP-like [[#sceKernelTryLockLwMutex_old]], and on failure [[SceKernelThreadMgr#_sceKernelLockLwMutex]] with flag 1.
=== sceSblGcAuthMgrPsmactVerifyR1 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xEB6DA895
|}


<source lang="C">int sceKernelTryLockLwMutex_1(SceLwMutex *mutex, SceUInt32 count, void *in_out);</source>
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrPsmactVerifyR1|SceSblGcAuthMgr#_sceSblGcAuthMgrPsmactVerifyR1]].


=== sceKernelTryLockLwMutex_0 ===
=== sceSblGcAuthMgrAdhocBB160Auth1 ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xA7819967
| 3.60 || 0xEFD76235
|}
|}


This is a guessed name.  
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth1|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth1]].


It calls PSP-like [[#sceKernelTryLockLwMutex_old]], and on failure [[SceKernelThreadMgr#_sceKernelLockLwMutex]] with flag 0.
=== sceSblGcAuthMgrGetMediaIdType01 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xF7027E6A
|}


<source lang="C">int sceKernelTryLockLwMutex_0(SceLwMutex *mutex, SceUInt32 count, void *in_out);</source>
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrGetMediaIdType01|SceSblGcAuthMgr#_sceSblGcAuthMgrGetMediaIdType01]].


=== sceClibMemset32 ===
=== SceKernelStackChkFail ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x70867F93
| 2.000.081-3.740.011 || 0xEC287338
|}
|}


This is a guessed name. A good name could be sceClibMemset32 because all it does is "sceClibMemset(pBase, 0, count << 2);".
=== __stack_chk_fail ===
{| class="wikitable"
|-
! Version !! NID
|-
| 2.000.081-3.740.011 || 0x37691BF8
|}


<source lang="C">int sceClibMemset32(int a1, int a2, void *pBase, SceSize count);</source>
Also exported in [[#SceLibSsp]].


=== sceSblGcAuthMgrMsSaveBBMacFinal ===
<source lang="C">int __stack_chk_fail(void);</source>
 
=== sceKernelSuspendThreadForVM ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.931.010-1.61 || not present
|-
| 1.660.011-2.120.011 || 0xDA76C40B
|-
| 2.500.071-3.740.011 || not present. Moved to SceKernelForMono.
|}
 
Wrapper to [[SceKernelThreadMgr#_sceKernelSuspendThreadForVM]].
 
=== sceKernelGetThreadContextForVM ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x774AE3CB
| 0.931.010-1.61 || not present
|-
| 1.660.011-3.740.011 || 0x22C9595E
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBMacFinal|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBMacFinal]].
Wrapper to [[SceKernelThreadMgr#_sceKernelGetThreadContextForVM]].


=== sceSblGcAuthMgrAdhocBB160GetKeys ===
=== sceKernelSetThreadContextForVM ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x84C75DC3
| 0.931.010-1.61 || not present
|-
| 1.660.011-3.740.011 || 0x27E6DEDE
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160GetKeys|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160GetKeys]].
Wrapper to [[SceKernelThreadMgr#_sceKernelSetThreadContextForVM]].


=== sceSblGcAuthMgrAdhocBB160BroadCastEncrypt ===
=== SceLibKernel_35D20E49 ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x88E72157
| 0.931.010-1.61 || not present
|-
| 1.660.011-3.740.011 || 0x35D20E49
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160BroadCastEncrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160BroadCastEncrypt]].
Reads 4 bytes from thread memory.
 
It does not seem to call any imported function.
 
<source lang="C">SceUInt32 SceLibKernel_35D20E49(SceUInt32 thid, SceUInt32 idx);</source>


=== sceSblGcAuthMgrSclkGetData1 ===
=== sceKernelWaitException ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x93A6570E
| 0.931.010-1.61 || not present
|-
| 1.660.011-3.740.011 || 0x11E263A5
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrSclkGetData1|SceSblGcAuthMgr#_sceSblGcAuthMgrSclkGetData1]].
Wrapper to [[SceKernelThreadMgr#_sceKernelWaitException]].


=== sceSblGcAuthMgrPcactGetChallenge ===
=== sceKernelWaitExceptionCB ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x9557D15C
| 0.931.010-1.61 || not present
|-
| 1.660.011-3.740.011 || 0xAB4B5485
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrPcactGetChallenge|SceSblGcAuthMgr#_sceSblGcAuthMgrPcactGetChallenge]].
Wrapper to [[SceKernelThreadMgr#_sceKernelWaitExceptionCB]].
 
=== sceClibPrintf ===
{| class="wikitable"
|-
! Version !! NID
|-
| 1.000.071-3.740.011 || 0xFA26BC62
|}


=== sceSblGcAuthMgrAdhocBB160Init ===
=== sceClibDprintf ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x9B28E1AF
| 0.931.010-1.660.011 || not present
|-
| 1.800.060-3.740.011 || 0x4340EF77
|}
|}


Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Init|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Init]].
<source lang="C">int sceClibDprintf(SceUID fd, const char *fmt, ...);</source>


=== SceLibKernel_9EF798C1 ===
=== sceKernelPrintBacktrace ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x9EF798C1
| 0.931.010-2.060.011 || not present
|-
| 2.100.081-3.740.011 || 0x1C02A434
|}
|}


It does not seem to call any imported function. Maybe related to low mutexes.
Wrapper to [[SceLibKernel#sceKernelPrintBacktraceForProcess|sceKernelPrintBacktraceForProcess]] with <code>pid=0</code>.


<source lang="C">int SceLibKernel_9EF798C1(void *maybe_mutex, SceUInt32 maybe_count);</source>
<source lang="C">
/**
* Prints call frames to STDOUT - does NOT perform a backtrace
*
* @return SCE_OK on success, < 0 on error
*
* @param pCallFrame Pointer to an array of filled up call frames
* @param numFrames Number of frames in the buffer pointed to by pCallFrame
*/
SceInt32 sceKernelPrintBacktrace(SceKernelCallFrame* pCallFrame, SceUInt32 numFrames);
</source>


=== SceLibKernel_9F793F84 ===
=== SceLibKernel_6C7365C4 ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x9F793F84
| 1.000.071-3.740.011 || 0x6C7365C4
|}
|}


Gets a version from the process' [[SceProcessmgr#types|SceKernelProcessParam]]. Used for PSN Auth in [[SceShell]].
This function seems to check allowed address range for backtrace.


<source lang="C">int SceLibKernel_9F793F84(void);</source>
Related to [[#sceKernelBacktraceSelf]].
 
<source lang="C">
// addr: 0-0xEFFFFFFF
// pRes: pointer to a 64-bit buffer
int SceLibKernel_6C7365C4(SceUInt32 addr, SceUInt64 *pRes);
</source>


=== SceKernelStackChkGuard ===
=== SceKernelStackChkGuard ===
Line 758: Line 2,325:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x4458BCF3
| 2.000.081-3.740.011 || 0x4458BCF3
|}
|}


Line 768: Line 2,335:
! Version !! NID
! Version !! NID
|-
|-
| 3.60-3.65 || 0x93B8AA67
| 2.000.081-3.740.011 || 0x93B8AA67
|}
|}


This is a variable (4 bytes).
This is a variable (4 bytes).
Also exported in [[#SceLibSsp]].


== SceLibGcc ==
== SceLibGcc ==
Line 798: Line 2,367:
== SceLibSsp ==
== SceLibSsp ==


=== sceKernelStackChkFail ===
=== __stack_chk_fail ===
{| class="wikitable"
{| class="wikitable"
|-
|-
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x39AD080B
| 1.500.151-3.740.011 || 0x39AD080B
|}
|}


<source lang="C">int sceKernelStackChkFail(void);</source>
Also exported in [[#SceLibKernel]].
 
<source lang="C">int __stack_chk_fail(void);</source>


=== __stack_chk_guard ===
=== __stack_chk_guard ===
Line 813: Line 2,384:
! Version !! NID
! Version !! NID
|-
|-
| 3.60-3.65 || 0x1EA375E6
| 1.500.151-3.740.011 || 0x1EA375E6
|}
|}


This is a variable (4 bytes). Same variable as [SceLibKernel#stack_chk_guard|SceLibKernel library's stack_chk_guard]].
This is a variable (4 bytes).
 
Also exported in [[#SceLibKernel]].


== SceRtabi ==
== SceRtabi ==


          SceRtabi_0D4F0635: 0x0D4F0635
=== __aeabi_lcmp ===
          SceRtabi_141BC4CE: 0x141BC4CE
 
          SceRtabi_21FF67B9: 0x21FF67B9
{| class="wikitable"
          SceRtabi_317B3774: 0x317B3774
|-
          SceRtabi_38D62D60: 0x38D62D60
! Version !! NID
          SceRtabi_5024AB91: 0x5024AB91
|-
          SceRtabi_609CA961: 0x609CA961
| 3.60 || 0x0D4F0635
          SceRtabi_67104054: 0x67104054
|}
          SceRtabi_6BB838EF: 0x6BB838EF
 
          SceRtabi_6CBB0E84: 0x6CBB0E84
=== __aeabi_lmul ===
          SceRtabi_A5DB3A86: 0xA5DB3A86
 
          SceRtabi_AA1F1B50: 0xAA1F1B50
{| class="wikitable"
          SceRtabi_C33391D1: 0xC33391D1
|-
          SceRtabi_CBDA815C: 0xCBDA815C
! Version !! NID
          SceRtabi_CDF7708E: 0xCDF7708E
|-
          SceRtabi_FB311F87: 0xFB311F87
| 3.60 || 0x141BC4CE
|}
 
=== __aeabi_lasr ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x21FF67B9
|}
 
=== __aeabi_ulcmp ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x317B3774
|}
 
=== __aeabi_idiv ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x38D62D60
|}
 
=== __aeabi_d2lz ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x5024AB91
|}
 
=== __aeabi_f2ulz ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x609CA961
|}
 
=== __aeabi_idivmod ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x67104054
|}
 
=== __aeabi_d2ulz ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x6BB838EF
|}
 
=== __aeabi_ldivmod ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0x6CBB0E84
|}
 
=== __aeabi_llsl ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xA5DB3A86
|}
 
=== __aeabi_f2lz ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xAA1F1B50
|}
 
=== __aeabi_uidivmod ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xC33391D1
|}
 
=== __aeabi_llsr ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xCBDA815C
|}
 
=== __aeabi_uldivmod ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xCDF7708E
|}
 
=== __aeabi_uidiv ===
 
{| class="wikitable"
|-
! Version !! NID
|-
| 3.60 || 0xFB311F87
|}


== SceKernelForVM ==
== SceKernelForVM ==
=== SceKernelForVM_655B1F19 ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.931.010-0.990 || not present
|-
| 1.000.071-1.610.061 || 0x655B1F19
|-
| 1.66-3.740.011 || not present
|}


=== sceKernelGetThreadContextForVM ===
=== sceKernelGetThreadContextForVM ===
Line 844: Line 2,556:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x010BB885
| 1.000.071-3.740.011 || 0x010BB885
|}
|}


Line 852: Line 2,564:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x70F3F49D
| 1.000.071-3.740.011 || 0x70F3F49D
|}
|}


Line 860: Line 2,572:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xF5F8F795
| 1.000.071-3.740.011 || 0xF5F8F795
|}
|}


Line 870: Line 2,582:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xB2700165
| 0.931.010-1.52 || not present
|-
| 1.600.061-3.740.011 || 0xB2700165
|}
|}


Wrapper to [[SceSblSsMgr#sceKernelGetRandomNumber|SceSblSsMgr#_sceKernelGetRandomNumber]].
Wrapper to [[SceSblSsMgr#sceKernelGetRandomNumber|_sceKernelGetRandomNumber]].


<source lang="C">int sceKernelGetRandomNumber(int *out, int a2);</source>
<source lang="C">int sceKernelGetRandomNumber(void *dst, SceSize length);</source>


== SceKernelForMono ==
== SceKernelForMono ==
Line 884: Line 2,598:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x1BECC64C
| 0.931.010-2.120.011 || not present
|-
| 2.500.071-3.740.011 || 0x1BECC64C
|}
|}


Line 892: Line 2,608:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x38839DA2
| 0.931.010-2.120.011 || not present
|-
| 2.500.071-3.740.011 || 0x38839DA2
|}
|}


Line 900: Line 2,618:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x92A0964D
| 0.931.010-2.120.011 || not present
|-
| 2.500.071-3.740.011 || 0x92A0964D
|}
|}


Line 908: Line 2,628:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0x9A6D085B
| 0.931.010-2.120.011 || not present
|-
| 2.500.071-3.740.011 || 0x9A6D085B
|}
|}


Line 916: Line 2,638:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xAD210F16
| 0.931.010-2.120.011 || not present
|-
| 2.500.071-3.740.011 || 0xAD210F16
|}
|}


Line 924: Line 2,648:
! Version !! NID
! Version !! NID
|-
|-
| 3.60 || 0xE513151F
| 0.931.010-2.120.011 || not present
|-
| 2.500.071-3.740.011 || 0xE513151F
|}
|}


== 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.


Line 955: Line 2,682:
|}
|}


 
[[Category:ARM]]
[[Category:Modules]][[Category:Usermode]]
[[Category:Usermode]]
[[Category:Modules]]
[[Category:Library]]

Latest revision as of 20:43, 2 April 2024

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. The SELF can be found in os0:us/libkernel.suprx.

Version World Privilege
1.000.071-3.740.011 Non-secure User

Libraries

Known NIDs

Version Name World Privilege NID
1.030.071-3.740.011 SceLibKernel Non-secure User 0xCAE9ACE6
1.600.061-3.740.011 SceLibRng Non-secure User 0xF9AC7CF8
1.030.071-3.740.011 SceLibGcc Non-secure User 0x567AF9A6
1.500.151-3.740.011 SceLibSsp Non-secure User 0x8FA98EF1
1.030.071-3.740.011 SceRtabi Non-secure User 0xA941943F
1.030.071-3.740.011 SceKernelForVM Non-secure User 0xA2B3EA8F
2.500.071-3.740.011 SceKernelForMono Non-secure User 0x5FEEA076

SceLibKernel

1.030.071 SceLibKernel functions to wikify:

sceKernelGetTLSAddr 	0xb295eb61
sceKernelGetThreadId 	0x0fb972f9
sceKernelGetCurrentThreadVfpException 	0xa37a6057
sceKernelSendMsgPipe 	0x0ca71ea2
sceKernelSendMsgPipeCB 	0xa5ca74ac
sceKernelTrySendMsgPipe 	0xdfc670e0
sceKernelReceiveMsgPipe 	0x4e81dd5c
sceKernelReceiveMsgPipeCB 	0x33af829b
sceKernelTryReceiveMsgPipe 	0x5615b006
sceKernelWaitThreadEnd 	0xddb395a9
sceKernelWaitThreadEndCB 	0xc54941ed
sceKernelGetThreadExitStatus 	0xd5dc26c4
sceKernelStartThread 	0xf08de149
sceKernelDeleteThread 	0x58ddac4f
sceKernelChangeThreadCpuAffinityMask 	0x5150577b
sceKernelGetThreadCpuAffinityMask 	0x8c57ac2a
sceKernelChangeThreadPriority 	0xdf7e6eda
sceKernelGetThreadStackFreeSize 	0xbcb63b66
sceKernelGetThreadInfo 	0x8d9c5461
sceKernelGetThreadRunStatus 	0xd6b01013
sceKernelGetSystemInfo 	0xe0241faa
sceKernelGetThreadmgrUIDClass 	0xf994fe65
sceKernelGetActiveCpuMask 	0xb4de10c7
sceKernelChangeThreadVfpException 	0x2c1321a3
sceKernelCreateCallback 	0x3849359a
sceKernelGetCallbackInfo 	0x88dd1bc8
sceKernelDeleteCallback 	0x464559d3
sceKernelNotifyCallback 	0xbd9c8f2b
sceKernelCancelCallback 	0x3137a687
sceKernelGetCallbackCount 	0x76a2ef81
sceKernelRegisterCallbackToEvent 	0xd4f75281
sceKernelUnregisterCallbackFromEvent 	0x8d3940df
sceKernelUnregisterCallbackFromEventAll 	0x2bd1e682
sceKernelWaitEventCB 	0xa0490795
sceKernelPollEvent 	0x241f3634
sceKernelCancelEvent 	0x603ab770
sceKernelWaitMultipleEvents 	0x10586418
sceKernelWaitMultipleEventsCB 	0x4263dbc9
sceKernelCreateEventFlag 	0x8516d040
sceKernelDeleteEventFlag 	0x11fe9b8b
sceKernelOpenEventFlag 	0xe04ec73a
sceKernelCloseEventFlag 	0x9c0b8285
sceKernelWaitEventFlag 	0x83c0e2af
sceKernelWaitEventFlagCB 	0xe737b1df
sceKernelPollEventFlag 	0x1fbb0fe1
sceKernelCancelEventFlag 	0x2a12d9b7
sceKernelGetEventFlagInfo 	0x8ba4c0c1
sceKernelSetEventFlag 	0x9ef9c0c5
sceKernelClearEventFlag 	0xd018793f
sceKernelCreateSema 	0x297aa2ae
sceKernelDeleteSema 	0xc08f5bc5
sceKernelOpenSema 	0xb028ab78
sceKernelCloseSema 	0x817707ab
sceKernelWaitSema 	0x0c7b834b
sceKernelWaitSemaCB 	0x174692b4
sceKernelCancelSema 	0x66d6bf05
sceKernelGetSemaInfo 	0x595d3fa6
sceKernelPollSema 	0x3012a9c6
sceKernelSignalSema 	0x2053a496
sceKernelCreateCond 	0x50572fda
sceKernelOpenCond 	0xcb2a73a9
sceKernelCloseCond 	0x4fb91a89
sceKernelWaitCond 	0xc88d44ad
sceKernelWaitCondCB 	0x4ce42ce2
sceKernelGetCondInfo 	0x6864dce2
sceKernelSignalCondAll 	0x2eb86929
sceKernelSignalCondTo 	0x087629e6
sceKernelCreateMsgPipe 	0x0a10c1c8
sceKernelDeleteMsgPipe 	0x69f6575d
sceKernelOpenMsgPipe 	0x230691da
sceKernelCloseMsgPipe 	0x7e5c0c16
sceKernelSendMsgPipeVector 	0x94d506f7
sceKernelSendMsgPipeVectorCB 	0x9c6f7f79
sceKernelTrySendMsgPipeVector 	0x60db346f
sceKernelReceiveMsgPipeVector 	0x9f899087
sceKernelReceiveMsgPipeVectorCB 	0xbe5b3e27
sceKernelTryReceiveMsgPipeVector 	0x86ecc0ff
sceKernelCancelMsgPipe 	0xef14ba37
sceKernelGetMsgPipeInfo 	0x4046d16b
sceKernelCreateLwCond 	0x48c7eae6
sceKernelDeleteLwCond 	0x721f6cb3
sceKernelWaitLwCond 	0xe1878282
sceKernelWaitLwCondCB 	0x8fa54b07
sceKernelSignalLwCond 	0x3ac63b9a
sceKernelSignalLwCondAll 	0xe5241a0c
sceKernelSignalLwCondTo 	0xfc1a48eb
sceKernelGetLwCondInfo 	0xe4df36a0
sceKernelGetLwCondInfoById 	0x971f1de8
sceKernelCreateTimer 	0x2255b2a5
sceKernelDeleteTimer 	0x746f3290
sceKernelOpenTimer 	0x2f3d35a3
sceKernelCloseTimer 	0x17283de6
sceKernelStartTimer 	0x1478249b
sceKernelStopTimer 	0x075b1329
sceKernelGetTimerBaseWide 	0x3223ccd1
sceKernelGetTimerTimeWide 	0x53c5d833
sceKernelSetTimerTimeWide 	0xaf67678b
sceKernelCreateRWLock 	0x8667951d
sceKernelDeleteRWLock 	0x3d750204
sceKernelOpenRWLock 	0xba4dac9a
sceKernelCloseRWLock 	0xa7f94e64
sceKernelLockReadRWLock 	0xfa670f0f
sceKernelLockReadRWLockCB 	0x2d4a62b7
sceKernelTryLockReadRWLock 	0x1b8586c0
sceKernelUnlockReadRWLock 	0x675d10a8
sceKernelLockWriteRWLock 	0x67a187bb
sceKernelLockWriteRWLockCB 	0xa4777082
sceKernelTryLockWriteRWLock 	0x597d4607
sceKernelUnlockWriteRWLock 	0xd9369df2
sceKernelCancelRWLock 	0x190ca94b
sceKernelGetRWLockInfo 	0x079a573b
sceKernelGetSystemTime 	0x8af15b5f
sceKernelPMonThreadGetCounter 	0x99b2bf15
sceKernelPMonCpuGetCounter 	0x7c21c961
sceKernelWaitSignal 	0xadca94e5
sceKernelWaitSignalCB 	0x24460bb3
sceKernelSendSignal 	0x7be9c4c8
sceKernelCreateThread 	0xc5c11ee7
sceSblACMgrIsGameProgram 	0x963f4a99
sceKernelGetOpenPsId 	0x261e2c34

sceKernelWaitEvent

Version NID
3.60 0x120F03AF
SceInt32 sceKernelWaitEvent(SceUID eventId, SceUInt32 waitPattern, SceUInt32 *pResultPattern, SceUInt64 *pUserData, SceUInt32 *pTimeout);

sceKernelSetTimerTime

Version NID
3.60 0xFFAD717F
int sceKernelSetTimerTime(SceUID timerId, SceUInt64 *time);

sceKernelSetTimerEvent

Version NID
3.60 0x621D293B
int sceKernelSetTimerEvent(SceUID timerId, int type, SceUInt64 *time, SceBool repeat);

sceKernelGetTimerTime

Version NID
3.60 0x381DC300
int sceKernelGetTimerTime(SceUID timerId, SceUInt64 *time);

sceKernelGetTimerInfo

Version NID
3.60 0x7E35E10A
int sceKernelGetTimerInfo(SceUID timerId, void *pInfo);

sceKernelGetTimerEventRemainingTime

Version NID
3.60 0x75B1EB3E
int sceKernelGetTimerEventRemainingTime(SceUID timerId, SceUInt64 *time);

sceKernelGetTimerBase

Version NID
3.60 0x1F59E04D
int sceKernelGetTimerBase(SceUID timerId, SceUInt64 *result);

sceKernelCancelTimer

Version NID
3.60 0x9CCF768C
int sceKernelCancelTimer(SceUID timerId, SceUInt32 *a2);

sceKernelAtomicAddAndGet8

Version NID
3.20 0x8F7BD940
SceInt8 sceKernelAtomicAddAndGet8(SceInt8 *store, SceInt8 value);

sceKernelAtomicAddAndGet16

Version NID
3.20 0x495C52EC
SceInt16 sceKernelAtomicAddAndGet16(SceInt16 *store, SceInt16 value);

sceKernelAtomicAddAndGet32

Version NID
3.20 0x2E84A93B
SceInt32 sceKernelAtomicAddAndGet32(SceInt32 *store, SceInt32 value);

sceKernelAtomicAddAndGet64

Version NID
3.20 0xB6CE9B9A
SceInt64 sceKernelAtomicAddAndGet64(SceInt64 *store, SceInt64 value);

sceKernelAtomicAddUnless8

Version NID
3.20 0x7FD94393
SceBool sceKernelAtomicAddUnless8(SceInt8 *store, SceInt8 value, SceInt8 cmpv);

sceKernelAtomicAddUnless16

Version NID
3.20 0x1CF4AA4B
SceBool sceKernelAtomicAddUnless16(SceInt16 *store, SceInt16 value, SceInt16 cmpv);

sceKernelAtomicAddUnless32

Version NID
3.20 0x4B33FD3C
SceBool sceKernelAtomicAddUnless32(SceInt32 *store, SceInt32 value, SceInt32 cmpv);

sceKernelAtomicAddUnless64

Version NID
3.20 0xFFCE7438
SceBool sceKernelAtomicAddUnless64(SceInt64 *store, SceInt64 value, SceInt64 cmpv);

sceKernelAtomicAndAndGet8

Version NID
3.20 0x86B9170F
SceInt8 sceKernelAtomicAndAndGet8(SceInt8 *store, SceInt8 value);

sceKernelAtomicAndAndGet16

Version NID
3.20 0xF9890F7E
SceInt16 sceKernelAtomicAndAndGet16(SceInt16 *store, SceInt16 value);

sceKernelAtomicAndAndGet32

Version NID
3.20 0x6709D30C
SceInt32 sceKernelAtomicAndAndGet32(SceInt32 *store, SceInt32 value);

sceKernelAtomicAndAndGet64

Version NID
3.20 0xAED2B370
SceInt64 sceKernelAtomicAndAndGet64(SceInt64 *store, SceInt64 value);

sceKernelAtomicClearAndGet8

Version NID
3.20 0x17B40010
SceInt8 sceKernelAtomicClearAndGet8(SceInt8 *store, SceInt8 value);

sceKernelAtomicClearAndGet16

Version NID
3.20 0xCC36B775
SceInt16 sceKernelAtomicClearAndGet16(SceInt16 *store, SceInt16 value);

sceKernelAtomicClearAndGet32

Version NID
3.20 0x9DAA0DE8
SceInt32 sceKernelAtomicClearAndGet32(SceInt32 *store, SceInt32 value);

sceKernelAtomicClearAndGet64

Version NID
3.20 0x264209F3
SceInt64 sceKernelAtomicClearAndGet64(SceInt64 *store, SceInt64 value);

sceKernelAtomicClearMask8

Version NID
3.20 0xD7D49E36
void sceKernelAtomicClearMask8(SceInt8 *store, SceInt8 value);

sceKernelAtomicClearMask16

Version NID
3.20 0x5FE7DFF8
void sceKernelAtomicClearMask16(SceInt16 *store, SceInt16 value);

sceKernelAtomicClearMask32

Version NID
3.20 0xE3DF0CB3
void sceKernelAtomicClearMask32(SceInt32 *store, SceInt32 value);

sceKernelAtomicClearMask64

Version NID
3.20 0x953D118A
void sceKernelAtomicClearMask64(SceInt64 *store, SceInt64 value);

sceKernelAtomicCompareAndSet8

Version NID
3.20 0x327DB4C0
SceInt8 sceKernelAtomicCompareAndSet8(SceInt8 *store, SceInt8 value, SceInt8 new);

sceKernelAtomicCompareAndSet16

Version NID
3.20 0xE8C01236
SceInt16 sceKernelAtomicCompareAndSet16(SceInt16 *store, SceInt16 value, SceInt16 new);

sceKernelAtomicCompareAndSet32

Version NID
3.20 0x1124A1D4
SceInt32 sceKernelAtomicCompareAndSet32(SceInt32 *store, SceInt32 value, SceInt32 new);

sceKernelAtomicCompareAndSet64

Version NID
3.20 0x1EBDFCCD
SceInt64 sceKernelAtomicCompareAndSet64(SceInt64 *store, SceInt64 value, SceInt64 new);

sceKernelAtomicDecIfPositive8

Version NID
3.20 0x9DABE6C3
SceInt8 sceKernelAtomicDecIfPositive8(SceInt8 *store);

sceKernelAtomicDecIfPositive16

Version NID
3.20 0x323718FB
SceInt16 sceKernelAtomicDecIfPositive16(SceInt16 *store);

sceKernelAtomicDecIfPositive32

Version NID
3.20 0xCA3294F1
SceInt32 sceKernelAtomicDecIfPositive32(SceInt32 *store);

sceKernelAtomicDecIfPositive64

Version NID
3.20 0x8BE2A007
SceInt64 sceKernelAtomicDecIfPositive64(SceInt64 *store);

sceKernelAtomicGetAndAdd8

Version NID
3.20 0x27A2AAFA
SceInt8 sceKernelAtomicGetAndAdd8(SceInt8 *store, SceInt8 value);

sceKernelAtomicGetAndAdd16

Version NID
3.20 0x5674DB0C
SceInt16 sceKernelAtomicGetAndAdd16(SceInt16 *store, SceInt16 value);

sceKernelAtomicGetAndAdd32

Version NID
3.20 0x2611CB0B
SceInt32 sceKernelAtomicGetAndAdd32(SceInt32 *store, SceInt32 value);

sceKernelAtomicGetAndAdd64

Version NID
3.20 0x63DAF37D
SceInt64 sceKernelAtomicGetAndAdd64(SceInt64 *store, SceInt64 value);

sceKernelAtomicGetAndAnd8

Version NID
3.20 0x53DCA02B
SceInt8 sceKernelAtomicGetAndAnd8(SceInt8 *store, SceInt8 value);

sceKernelAtomicGetAndAnd16

Version NID
3.20 0x7A0CB056
SceInt16 sceKernelAtomicGetAndAnd16(SceInt16 *store, SceInt16 value);

sceKernelAtomicGetAndAnd32

Version NID
3.20 0x08266595
SceInt32 sceKernelAtomicGetAndAnd32(SceInt32 *store, SceInt32 value);

sceKernelAtomicGetAndAnd64

Version NID
3.20 0x4828BC43
SceInt64 sceKernelAtomicGetAndAnd64(SceInt64 *store, SceInt64 value);

sceKernelAtomicGetAndClear8

Version NID
3.20 0xA10873A4
SceInt8 sceKernelAtomicGetAndClear8(SceInt8 *store, SceInt8 value);

sceKernelAtomicGetAndClear16

Version NID
3.20 0x57CD7E7D
SceInt16 sceKernelAtomicGetAndClear16(SceInt16 *store, SceInt16 value);

sceKernelAtomicGetAndClear32

Version NID
3.20 0x0226A017
SceInt32 sceKernelAtomicGetAndClear32(SceInt32 *store, SceInt32 value);

sceKernelAtomicGetAndClear64

Version NID
3.20 0x436AA0B5
SceInt64 sceKernelAtomicGetAndClear64(SceInt64 *store, SceInt64 value);

sceKernelAtomicGetAndOr8

Version NID
3.20 0x107A68DF
SceInt8 sceKernelAtomicGetAndOr8(SceInt8 *store, SceInt8 value);

sceKernelAtomicGetAndOr16

Version NID
3.20 0x31E49E73
SceInt16 sceKernelAtomicGetAndOr16(SceInt16 *store, SceInt16 value);

sceKernelAtomicGetAndOr32

Version NID
3.20 0x984AD276
SceInt32 sceKernelAtomicGetAndOr32(SceInt32 *store, SceInt32 value);

sceKernelAtomicGetAndOr64

Version NID
3.20 0xC39186CD
SceInt64 sceKernelAtomicGetAndOr64(SceInt64 *store, SceInt64 value);

sceKernelAtomicGetAndSet8

Version NID
3.20 0x2672EA0B
SceInt8 sceKernelAtomicGetAndSet8(SceInt8 *store, SceInt8 value);

sceKernelAtomicGetAndSet16

Version NID
3.20 0xF7B9ADFC
SceInt16 sceKernelAtomicGetAndSet16(SceInt16 *store, SceInt16 value);

sceKernelAtomicGetAndSet32

Version NID
3.20 0x9B43E667
SceInt32 sceKernelAtomicGetAndSet32(SceInt32 *store, SceInt32 value);

sceKernelAtomicGetAndSet64

Version NID
3.20 0xD82B3A7A
SceInt64 sceKernelAtomicGetAndSet64(SceInt64 *store, SceInt64 value);

sceKernelAtomicGetAndSub8

Version NID
3.20 0xCDF5DF67
SceInt8 sceKernelAtomicGetAndSub8(SceInt8 *store, SceInt8 value);

sceKernelAtomicGetAndSub16

Version NID
3.20 0xAC51979C
SceInt16 sceKernelAtomicGetAndSub16(SceInt16 *store, SceInt16 value);

sceKernelAtomicGetAndSub32

Version NID
3.20 0x115C516F
SceInt32 sceKernelAtomicGetAndSub32(SceInt32 *store, SceInt32 value);

sceKernelAtomicGetAndSub64

Version NID
3.20 0x4AE9C8E6
SceInt64 sceKernelAtomicGetAndSub64(SceInt64 *store, SceInt64 value);

sceKernelAtomicGetAndXor8

Version NID
3.20 0x7350B2DF
SceInt8 sceKernelAtomicGetAndXor8(SceInt8 *store, SceInt8 value);

sceKernelAtomicGetAndXor16

Version NID
3.20 0x6E2D0B9E
SceInt16 sceKernelAtomicGetAndXor16(SceInt16 *store, SceInt16 value);

sceKernelAtomicGetAndXor32

Version NID
3.20 0x38739E2F
SceInt32 sceKernelAtomicGetAndXor32(SceInt32 *store, SceInt32 value);

sceKernelAtomicGetAndXor64

Version NID
3.20 0x6A19BBE9
SceInt64 sceKernelAtomicGetAndXor64(SceInt64 *store, SceInt64 value);

sceKernelAtomicOrAndGet8

Version NID
3.20 0x51693931
SceInt8 sceKernelAtomicOrAndGet8(SceInt8 *store, SceInt8 value);

sceKernelAtomicOrAndGet16

Version NID
3.20 0x8E248EBD
SceInt16 sceKernelAtomicOrAndGet16(SceInt16 *store, SceInt16 value);

sceKernelAtomicOrAndGet32

Version NID
3.20 0xC3B2F7F8
SceInt32 sceKernelAtomicOrAndGet32(SceInt32 *store, SceInt32 value);

sceKernelAtomicOrAndGet64

Version NID
3.20 0x809BBC7D
SceInt64 sceKernelAtomicOrAndGet64(SceInt64 *store, SceInt64 value);

sceKernelAtomicSet8

Version NID
3.20 0xE960FDA2
void sceKernelAtomicSet8(SceInt8 *store, SceInt8 value);

sceKernelAtomicSet16

Version NID
3.20 0x450BFECF
void sceKernelAtomicSet16(SceInt16 *store, SceInt16 value);

sceKernelAtomicSet32

Version NID
3.20 0xB69DA09B
void sceKernelAtomicSet32(SceInt32 *store, SceInt32 value);

sceKernelAtomicSet64

Version NID
3.20 0xC8A4339C
void sceKernelAtomicSet64(SceInt64 *store, SceInt64 value);

sceKernelAtomicSubAndGet8

Version NID
3.20 0x99E1796E
SceInt8 sceKernelAtomicSubAndGet8(SceInt8 *store, SceInt8 value);

sceKernelAtomicSubAndGet16

Version NID
3.20 0xC26BBBB1
SceInt16 sceKernelAtomicSubAndGet16(SceInt16 *store, SceInt16 value);

sceKernelAtomicSubAndGet32

Version NID
3.20 0x01C9CD92
SceInt32 sceKernelAtomicSubAndGet32(SceInt32 *store, SceInt32 value);

sceKernelAtomicSubAndGet64

Version NID
3.20 0x9BB4A94B
SceInt64 sceKernelAtomicSubAndGet64(SceInt64 *store, SceInt64 value);

sceKernelAtomicXorAndGet8

Version NID
3.20 0x634AF062
SceInt8 sceKernelAtomicXorAndGet8(SceInt8 *store, SceInt8 value);

sceKernelAtomicXorAndGet16

Version NID
3.20 0x6F524195
SceInt16 sceKernelAtomicXorAndGet16(SceInt16 *store, SceInt16 value);

sceKernelAtomicXorAndGet32

Version NID
3.20 0x46940704
SceInt32 sceKernelAtomicXorAndGet32(SceInt32 *store, SceInt32 value);

sceKernelAtomicXorAndGet64

Version NID
3.20 0xDDC6866E
SceInt64 sceKernelAtomicXorAndGet64(SceInt64 *store, SceInt64 value);

sceKernelOpenMutex

Version NID
1.030.071-1.692.000 0x16B85235
1.800.060-3.740.011 not present

sceKernelCloseMutex

Version NID
1.030.071-1.692.000 0x43DDC9CC
1.800.060-3.740.011 not present

sceKernelTryLockMutex

Version NID
1.030.071-1.692.000 0xE5901FF9
1.800.060-3.740.011 not present

sceKernelUnlockMutex

Version NID
1.030.071-1.692.000 0x34746309
1.800.060-3.740.011 not present

sceKernelDeleteMutex

Version NID
0.930.010-1.692.000 0x12D11F65
1.800.060-3.740.011 not present
int sceKernelDeleteMutex(SceUID mutex_id);

sceKernelCreateMutex

Version NID
1.030.071-3.740.011 0xED53334A

sceKernelLockMutex

Version NID
1.030.071-3.740.011 0x1D8D7945

sceKernelLockMutexCB

Version NID
1.030.071-3.740.011 0x2BDAA524

sceKernelCancelMutex

Version NID
1.030.071-3.740.011 0x2144890D

sceKernelGetMutexInfo

Version NID
1.030.071-3.740.011 0x9A6C43CA

sceKernelCreateLwMutex

Version NID
1.030.071-3.740.011 0xDA6EC8EF

sceKernelDeleteLwMutex

Version NID
1.030.071-3.740.011 0x244E76D2

sceKernelGetLwMutexInfoById

Version NID
1.030.071-3.740.011 0x4846613D

sceKernelGetLwMutexInfo

Version NID
1.030.071-3.740.011 0xF7D8F1FC

sceKernelUnlockLwMutex

Version NID
1.030.071-3.740.011 0x499EA781

Wrapper to SceKernelThreadMgr#_sceKernelUnlockLwMutex.

int sceKernelUnlockLwMutex(SceLwMutex *mutex, SceUInt32 count);

sceKernelLockLwMutex_old

Version NID
1.030.071-3.740.011 0xA6A2C915

This is a guessed name. Temp name was sceKernelTryLockLwMutex.

PSP-like "sceKernelTryLockLwMutex".

int sceKernelLockLwMutex_old(SceLwMutex *mutex, SceUInt32 count);

sceKernelLockLwMutex

Version NID
1.030.071-3.740.011 0xA7819967

It calls PSP-like #sceKernelLockLwMutex_old, and on failure SceKernelThreadMgr#_sceKernelLockLwMutex with flag 0 (non-CB).

int sceKernelLockLwMutex(SceLwMutex *mutex, SceUInt32 count, void *in_out);

sceKernelLockLwMutex_2

Version NID
1.030.071-3.740.011 0x46E7BE7B

sceKernelTryLockLwMutex

Version NID
1.030.071-3.740.011 0x9EF798C1

It does not seem to call any imported function.

int sceKernelTryLockLwMutex(void *mutex, SceUInt32 count);

sceKernelLockLwMutexCB

Version NID
1.030.071-3.740.011 0x6F9C4CC1

It calls PSP-like #sceKernelLockLwMutex_old, and on failure SceKernelThreadMgr#_sceKernelLockLwMutex with flag 1 (CB).

int sceKernelLockLwMutexCB(SceLwMutex *mutex, SceUInt32 count, void *in_out);

sceKernelTryLockLwMutex_600

Version NID
1.030.071-3.740.011 0x3148C6B6

This is a guessed name (need to compare with sceKernelTryLockLwMutex and with PSP sceKernelTryLockLwMutex_600).

SceLibKernel_91FA6614

Version NID
0.930.010-3.01 not present
3.100.081-3.740.011 0x91FA6614

Temp name was sceKernelUnlockLwMutex.

It does not seem to call any imported function.

SceLibKernel_120AFC8C

Version NID
1.030.071-3.740.011 0x120AFC8C

Temp name was sceKernelUnlockLwMutex2.

It does not seem to call any imported function.

sceKernelSignalCond

Version NID
0.930.010-1.692.000 0x10A4976F
1.800.060-3.740.011 not present
SceBool sceKernelSignalCond(int a1);

sceKernelDeleteCond

Version NID
0.930.010-1.692.000 0xFD295414
1.800.071-3.740.011 not present
SceBool sceKernelDeleteCond(int *a1);

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
1.000.071-3.740.011 0x04B30CB2

This performs device-specific operations. The details of the operations are driver-dependent.

This is a wrapper for _sceIoDevctl.

/*
Arguments:
devname     Specified device ("<devname><unit>:")
cmd     Command code
arg     Pointer to device-driver-dependent parameter block
arglen     Number of bytes in device-driver-dependent parameter block
bufp     Pointer to return data storage block
buflen     Size of return data storage block

Return Values:
Non-negative (N>=0) Success (driver-dependent) 
<0 Error, e.g. SCE_ERROR_ERRNO_EMFILE, SCE_ERROR_ERRNO_ENODEV, SCE_ERROR_ERRNO_EUNSUP
*/

int sceIoDevctl(
    const char *devname,
    int cmd,
    const void *arg,
    SceSize arglen,
    void *bufp,
    SceSize buflen
);

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

sceKernelPrintBacktraceForProcess

Version NID
1.000.071-3.740.011 0x20E2D4B7

This is a guessed name.

/**
 * Prints call frames to STDOUT - does NOT perform a backtrace
 *
 * @return SCE_OK on success, < 0 on error
 *
 * @param pid ?Process ID to operate under? - only SCE_KERNEL_PROCESS_ID_SELF or result of sceKernelGetProcessId is accepted
 * @param pCallFrame Pointer to an array of filled up call frames
 * @param numFrames Number of frames in the buffer pointed to by pCallFrame
 */
SceInt32 sceKernelPrintBacktraceForProcess(SceUID pid, SceKernelCallFrame* pCallFrame, SceUInt32 numFrames);

sceKernelBacktrace

Version NID
1.000.071-3.740.011 0x894037E8

Wrapper to SceKernelModulemgr#_sceKernelBacktrace.

SceInt32 sceKernelBacktrace(SceUID threadId, SceKernelCallFrame *pCallFrameBuffer, SceSize numBytesBuffer, SceUInt32 *pNumReturn, SceInt32 mode);

sceKernelBacktraceSelf

Version NID
1.000.071-3.740.011 0xD16C03B0
/**
 * Performs a walk back in the call stack and returns obtained stack frames.
 *
 * @return Call stack depth or SCE_OK on success, < 0 on error
 *
 * @param pCallFrameBuffer Pointer to an array of call frames that will recieve information
 * @param numBytesBuffer Number of bytes in the buffer pointed to by pCallFrameBuffer
 * @param pNumReturn Pointer to a variable that will obtain the actual number of call frames filled up
 * @param mode Specify SCE_KERNEL_BACKTRACE_MODE_USER - you can also specify the SCE_KERNEL_BACKTRACE_MODE_DONT_EXCEED option with a logical OR
 * @note Specifying SCE_KERNEL_BACKTRACE_MODE_DONT_EXCEED stops processing when the call frame buffer is filled up - SCE_OK is returned instead of call stack depth
 */
SceInt32 sceKernelBacktraceSelf(SceKernelCallFrame *pCallFrameBuffer, SceSize numBytesBuffer, SceUInt32 *pNumReturn, SceInt32 mode);

sceKernelPuts

Version NID
0.902-3.740.011 0x023EAA62

Dummy function in System Software version 3.60.

int sceKernelPuts(const char* str);

sceKernelGetLibraryVariableAddress

Version NID
0.931.010-1.692.000 not present
1.800.060-3.740.011 0x0A4DF821

Temp name was sceKernelGetModuleVariableByNID.

Gets variable address by NID.

Calls SceKernelModulemgr#_sceKernelGetLibraryInfoByNID.

Usage:

extern char _NID_libName[]; /* dummy array '_NID_libName' is ABS symbol in libName_stub.a */
extern char _NID_varName[]; /* dummy array '_NID_varName' is ABS symbol in libName_stub.a */

#define NAME2NID(name)   (unsigned int)(_NID_ ## name)

#define libName_GetVariableAddress(modid, varname, ptr) \
   sceKernelGetLibraryVariableAddress((modid),\
                NAME2NID(libName),\
                NAME2NID(varname),\
                (void **)(ptr))
int sceKernelGetLibraryVariableAddress(SceUID modid, SceNID libnid, SceNID var_nid, void **pVarAddr);

sceKernelLinkFunctionTable

Version NID
0.931.010-1.692.000 not present
1.800.060-3.740.011 0xBEF71602

Temp name was sceKernelGetModuleFunctionsByNID.

Sets functions table for a module.

Calls SceKernelModulemgr#_sceKernelGetLibraryInfoByNID.

Usage:

typedef int (*funcName_t)(int a1);

extern char _NID_libName[]; /* dummy array '_NID_libName' is ABS symbol in libName_stub.a */
extern char _NID_funcName[]; /* dummy array '_NID_funcName' is ABS symbol in libName_stub.a */

#define NAME2NID(name)   (unsigned int)(_NID_ ## name)

typedef struct libName_Functions_table {
    funcName_t funcName;
} libName_Functions_table;

SceNID libName_nid_table[] = {
    NAME2NID(funcName),
};

#define _ARRAY_SIZE(array) (sizeof(array)/sizeof(array[0]))

#define libName_LinkFunctionTable(modid, table) \
   sceKernelLinkFunctionTable((modid),\
                NAME2NID(libName),\
                _ARRAY_SIZE(libName_nid_table), libName_nid_table,\
                (void **)(table))
int sceKernelLinkFunctionTable(SceUID modid, SceNID libnid, SceUInt32 nNID, const SceNID *pNids, void **pEntries);

sceKernelUnlinkFunctionTable

Version NID
0.931.010-1.692.000 not present
1.800.060-3.740.011 0x70867F93

Temp name was sceClibBzeroWords.

This function only does sceClibMemset(pNids, 0, nNID << 2);.

Usage:

extern char _NID_libName[]; /* dummy array '_NID_libName' is ABS symbol in libName_stub.a */

#define NAME2NID(name)   (unsigned int)(_NID_ ## name)

#define libName_UnlinkFunctionTable_test(modid, table) \
   sceKernelUnlinkFunctionTable((modid),\
                NAME2NID(libName),\
                _ARRAY_SIZE(libName_nid_table),\
                (void **)(table))
int sceKernelUnlinkFunctionTable(SceUID modid, SceNID libnid, SceUInt32 nNID, const SceNID *pNids);

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.

sceSblGcAuthMgrAdhocBB160UniCastDecrypt

Version NID
1.030.071-3.740.011 0x01E00CBF

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastDecrypt.

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_37F4ED04

Version NID
1.030.071-3.740.011 0x37F4ED04

It does not seem to call any imported function.

sceSblGcAuthMgrAdhocBB160Auth5

Version NID
3.60 0x3B595E1D

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth5.

sceSblGcAuthMgrAdhocBB224Auth5

Version NID
3.60 0x4AC7EFC9

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth5.

sceSblGcAuthMgrMsSaveBBCipherUpdate

Version NID
3.60 0x56A59D4F

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherUpdate.

sceSblGcAuthMgrPsmactCreateC1

Version NID
3.60 0x622A81E6

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrPsmactCreateC1.

sceSblGcAuthMgrAdhocBB160Auth4

Version NID
3.60 0x6314CAA3

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth4.

sceSblGcAuthMgrAdhocBB224Auth4

Version NID
3.60 0x65126005

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth4.

sceKernelRegisterThreadEventHandler

Version NID
3.60 0x6D8C0F13

Wrapper to SceKernelThreadMgr#_sceKernelRegisterThreadEventHandler.

int sceKernelRegisterThreadEventHandler(char *name, SceUID thread_id, SceUInt32 mask, SceKernelThreadEventHandler *handler, void *common);

sceSblGcAuthMgrMsSaveBBMacFinal

Version NID
3.60 0x774AE3CB

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBMacFinal.

sceSblGcAuthMgrAdhocBB160GetKeys

Version NID
3.60 0x84C75DC3

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160GetKeys.

sceSblGcAuthMgrAdhocBB160BroadCastEncrypt

Version NID
3.60 0x88E72157

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160BroadCastEncrypt.

sceSblGcAuthMgrSclkGetData1

Version NID
3.60 0x93A6570E

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrSclkGetData1.

sceSblGcAuthMgrPcactGetChallenge

Version NID
0.931.010-1.000.041 not present
1.80-3.60 0x9557D15C

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrPcactGetChallenge. Calls it with epasswordSize = 0x20 and challengeSize = 0x80.

// epassword size must be 0x20 bytes
// challenge size must be 0x80 bytes
int sceSblGcAuthMgrPcactGetChallenge(SceUInt32 id, const char *epassword, char *challenge);

sceSblGcAuthMgrAdhocBB160Init

Version NID
3.60 0x9B28E1AF

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Init.

sceKernelGetMainModuleSdkVersion

Version NID
0.931.010-1.06 not present
1.500.151-3.740.011 0x9F793F84

Gets the module SDK version from the process' SceProcessParam. Used for PSN Auth in SceShell.

int sceKernelGetMainModuleSdkVersion(void);

sceKernelLoadModule

Version NID
1.030.071-3.740.011 0xBBE82155

sceKernelLoadStartModule

Version NID
1.030.071-3.740.011 0x2DCC4AFA

sceKernelStartModule

Version NID
1.030.071-3.740.011 0x702425D5

sceKernelStopModule

Version NID
1.030.071-3.740.011 0x3B2CBA09

sceKernelUnloadModule

Version NID
1.030.071-3.740.011 0x1987920E

sceKernelStopUnloadModule

Version NID
1.030.071-3.740.011 0x2415F8A4

sceKernelCallModuleExit

Version NID
1.030.071-3.740.011 0x15E2A45D

sceKernelGetModuleInfoByAddr

Version NID
1.030.071-3.740.011 0xD11A5103

sceKernelOpenModule

Version NID
1.030.071-3.740.011 0x4F2D8B15

sceKernelCloseModule

Version NID
1.030.071-3.740.011 0x657FA50E

sceKernelExitProcess

Version NID
1.030.071-3.740.011 0x7595D9AA

sceSblGcAuthMgrAdhocBB160UniCastEncrypt

Version NID
3.60 0xA9002567

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastEncrypt.

sceSblGcAuthMgrAdhocBB224GetKeys

Version NID
3.60 0xAC57B6A4

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224GetKeys.

sceSblGcAuthMgrAdhocBB160Auth3

Version NID
3.60 0xC362ECD6

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth3.

sceSblGcAuthMgrAdhocBB224Init

Version NID
3.60 0xC8082804

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Init.

SceLibKernel_DC277B4D

Version NID
3.60 0xDC277B4D

Returns a 64bit value and uses 0xdeadbeef constant somehow.

ulonglong SceLibKernel_DC277B4D(int a1, SceUInt32 low);

sceSblGcAuthMgrAdhocBB224Auth2

Version NID
3.60 0xDEAD6277

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth2.

sceSblGcAuthMgrSclkSetData2

Version NID
3.60 0xE088B0D0

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrSclkSetData2.

sceSblGcAuthMgrAdhocBB160BroadCastDecrypt

Version NID
3.60 0xE2984A54

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160BroadCastDecrypt.

sceSblGcAuthMgrPsmactVerifyR1

Version NID
3.60 0xEB6DA895

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrPsmactVerifyR1.

sceSblGcAuthMgrAdhocBB160Auth1

Version NID
3.60 0xEFD76235

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth1.

sceSblGcAuthMgrGetMediaIdType01

Version NID
3.60 0xF7027E6A

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrGetMediaIdType01.

SceKernelStackChkFail

Version NID
2.000.081-3.740.011 0xEC287338

__stack_chk_fail

Version NID
2.000.081-3.740.011 0x37691BF8

Also exported in #SceLibSsp.

int __stack_chk_fail(void);

sceKernelSuspendThreadForVM

Version NID
0.931.010-1.61 not present
1.660.011-2.120.011 0xDA76C40B
2.500.071-3.740.011 not present. Moved to SceKernelForMono.

Wrapper to SceKernelThreadMgr#_sceKernelSuspendThreadForVM.

sceKernelGetThreadContextForVM

Version NID
0.931.010-1.61 not present
1.660.011-3.740.011 0x22C9595E

Wrapper to SceKernelThreadMgr#_sceKernelGetThreadContextForVM.

sceKernelSetThreadContextForVM

Version NID
0.931.010-1.61 not present
1.660.011-3.740.011 0x27E6DEDE

Wrapper to SceKernelThreadMgr#_sceKernelSetThreadContextForVM.

SceLibKernel_35D20E49

Version NID
0.931.010-1.61 not present
1.660.011-3.740.011 0x35D20E49

Reads 4 bytes from thread memory.

It does not seem to call any imported function.

SceUInt32 SceLibKernel_35D20E49(SceUInt32 thid, SceUInt32 idx);

sceKernelWaitException

Version NID
0.931.010-1.61 not present
1.660.011-3.740.011 0x11E263A5

Wrapper to SceKernelThreadMgr#_sceKernelWaitException.

sceKernelWaitExceptionCB

Version NID
0.931.010-1.61 not present
1.660.011-3.740.011 0xAB4B5485

Wrapper to SceKernelThreadMgr#_sceKernelWaitExceptionCB.

sceClibPrintf

Version NID
1.000.071-3.740.011 0xFA26BC62

sceClibDprintf

Version NID
0.931.010-1.660.011 not present
1.800.060-3.740.011 0x4340EF77
int sceClibDprintf(SceUID fd, const char *fmt, ...);

sceKernelPrintBacktrace

Version NID
0.931.010-2.060.011 not present
2.100.081-3.740.011 0x1C02A434

Wrapper to sceKernelPrintBacktraceForProcess with pid=0.

/**
 * Prints call frames to STDOUT - does NOT perform a backtrace
 *
 * @return SCE_OK on success, < 0 on error
 *
 * @param pCallFrame Pointer to an array of filled up call frames
 * @param numFrames Number of frames in the buffer pointed to by pCallFrame
 */
SceInt32 sceKernelPrintBacktrace(SceKernelCallFrame* pCallFrame, SceUInt32 numFrames);

SceLibKernel_6C7365C4

Version NID
1.000.071-3.740.011 0x6C7365C4

This function seems to check allowed address range for backtrace.

Related to #sceKernelBacktraceSelf.

// addr: 0-0xEFFFFFFF
// pRes: pointer to a 64-bit buffer
int SceLibKernel_6C7365C4(SceUInt32 addr, SceUInt64 *pRes);

SceKernelStackChkGuard

Version NID
2.000.081-3.740.011 0x4458BCF3

This is a variable (4 bytes).

__stack_chk_guard

Version NID
2.000.081-3.740.011 0x93B8AA67

This is a variable (4 bytes).

Also exported in #SceLibSsp.

SceLibGcc

         SceLibGcc_0DFF2B2C: 0x0DFF2B2C
         SceLibGcc_12472ADD: 0x12472ADD
         SceLibGcc_29C2EB11: 0x29C2EB11
         SceLibGcc_4BB45B70: 0x4BB45B70
         SceLibGcc_6214B80C: 0x6214B80C
         SceLibGcc_74274866: 0x74274866
         SceLibGcc_7772C028: 0x7772C028
         SceLibGcc_7DFC519A: 0x7DFC519A
         SceLibGcc_83A4F46F: 0x83A4F46F
         SceLibGcc_8A5F29D8: 0x8A5F29D8
         SceLibGcc_8D4953C7: 0x8D4953C7
         SceLibGcc_A22B2436: 0xA22B2436
         SceLibGcc_AC15DBA5: 0xAC15DBA5
         SceLibGcc_B1CD7AC2: 0xB1CD7AC2
         SceLibGcc_BAC00FF7: 0xBAC00FF7
         SceLibGcc_CD43FEDC: 0xCD43FEDC
         SceLibGcc_DA5097CE: 0xDA5097CE
         SceLibGcc_DAB28374: 0xDAB28374
         SceLibGcc_DBE840D6: 0xDBE840D6
         SceLibGcc_F16E32FC: 0xF16E32FC

SceLibSsp

__stack_chk_fail

Version NID
1.500.151-3.740.011 0x39AD080B

Also exported in #SceLibKernel.

int __stack_chk_fail(void);

__stack_chk_guard

Version NID
1.500.151-3.740.011 0x1EA375E6

This is a variable (4 bytes).

Also exported in #SceLibKernel.

SceRtabi

__aeabi_lcmp

Version NID
3.60 0x0D4F0635

__aeabi_lmul

Version NID
3.60 0x141BC4CE

__aeabi_lasr

Version NID
3.60 0x21FF67B9

__aeabi_ulcmp

Version NID
3.60 0x317B3774

__aeabi_idiv

Version NID
3.60 0x38D62D60

__aeabi_d2lz

Version NID
3.60 0x5024AB91

__aeabi_f2ulz

Version NID
3.60 0x609CA961

__aeabi_idivmod

Version NID
3.60 0x67104054

__aeabi_d2ulz

Version NID
3.60 0x6BB838EF

__aeabi_ldivmod

Version NID
3.60 0x6CBB0E84

__aeabi_llsl

Version NID
3.60 0xA5DB3A86

__aeabi_f2lz

Version NID
3.60 0xAA1F1B50

__aeabi_uidivmod

Version NID
3.60 0xC33391D1

__aeabi_llsr

Version NID
3.60 0xCBDA815C

__aeabi_uldivmod

Version NID
3.60 0xCDF7708E

__aeabi_uidiv

Version NID
3.60 0xFB311F87

SceKernelForVM

SceKernelForVM_655B1F19

Version NID
0.931.010-0.990 not present
1.000.071-1.610.061 0x655B1F19
1.66-3.740.011 not present

sceKernelGetThreadContextForVM

Version NID
1.000.071-3.740.011 0x010BB885

sceKernelResumeThreadForVM

Version NID
1.000.071-3.740.011 0x70F3F49D

sceKernelSuspendThreadForVM

Version NID
1.000.071-3.740.011 0xF5F8F795

SceLibRng

sceKernelGetRandomNumber

Version NID
0.931.010-1.52 not present
1.600.061-3.740.011 0xB2700165

Wrapper to _sceKernelGetRandomNumber.

int sceKernelGetRandomNumber(void *dst, SceSize length);

SceKernelForMono

sceKernelWaitException

Version NID
0.931.010-2.120.011 not present
2.500.071-3.740.011 0x1BECC64C

sceKernelSuspendThreadForVM

Version NID
0.931.010-2.120.011 not present
2.500.071-3.740.011 0x38839DA2

sceKernelSetThreadContextForVM

Version NID
0.931.010-2.120.011 not present
2.500.071-3.740.011 0x92A0964D

sceKernelResumeThreadForVM

Version NID
0.931.010-2.120.011 not present
2.500.071-3.740.011 0x9A6D085B

sceKernelGetThreadContextForVM

Version NID
0.931.010-2.120.011 not present
2.500.071-3.740.011 0xAD210F16

sceKernelWaitExceptionCB

Version NID
0.931.010-2.120.011 not present
2.500.071-3.740.011 0xE513151F

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