Difference between revisions of "SceLibKernel"
CelesteBlue (talk | contribs) |
|||
(74 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | SceLibKernel, not to be confused with [[Kernel]] is a user module that implements wrappers to some common syscalls (for example, [[SceIofilemgr|SceIofilemgr]]), some | + | SceLibKernel, not to be confused with [[Kernel]] is a user module that implements wrappers to some common syscalls (for example, [[SceIofilemgr|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 == | == Module == | ||
− | This is a | + | |
+ | This is a usermode module and exists only in usermode. The SELF can be found in <code>os0:us/libkernel.suprx</code>. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! World !! Privilege | ||
+ | |- | ||
+ | | 1.00-3.73 || Non-secure || User | ||
+ | |} | ||
+ | |||
+ | == Libraries == | ||
+ | |||
=== Known NIDs === | === Known NIDs === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 8: | Line 19: | ||
! Version !! Name !! World !! Privilege !! NID | ! Version !! Name !! World !! Privilege !! NID | ||
|- | |- | ||
− | | 1.69 || SceLibKernel || Non-secure || User || | + | | 1.69-3.60 || [[SceLibKernel#SceLibKernel|SceLibKernel]] || Non-secure || User || 0xCAE9ACE6 |
+ | |- | ||
+ | | 1.69-3.60 || [[SceLibKernel#SceLibRng|SceLibRng]] || Non-secure || User || 0xF9AC7CF8 | ||
+ | |- | ||
+ | | 1.69-3.60 || [[SceLibKernel#SceLibGcc|SceLibGcc]] || Non-secure || User || 0x567AF9A6 | ||
+ | |- | ||
+ | | 1.69-3.60 || [[SceLibKernel#SceLibSsp|SceLibSsp]] || Non-secure || User || 0x8FA98EF1 | ||
+ | |- | ||
+ | | 1.69-3.60 || [[SceLibKernel#SceRtabi|SceRtabi]]|| Non-secure || User || 0xA941943F | ||
+ | |- | ||
+ | | 1.69-3.60 || [[SceLibKernel#SceKernelForVM|SceKernelForVM]] || Non-secure || User || 0xA2B3EA8F | ||
+ | |- | ||
+ | | 3.60 || [[SceLibKernel#SceKernelForMono|SceKernelForMono]] || Non-secure || User || 0x5FEEA076 | ||
+ | |} | ||
+ | |||
+ | == SceLibKernel == | ||
+ | |||
+ | === 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. | + | | 3.20 || 0x7350B2DF |
+ | |} | ||
+ | |||
+ | <source lang="C">SceInt8 sceKernelAtomicGetAndXor8(SceInt8 *store, SceInt8 value);</source> | ||
+ | |||
+ | === sceKernelAtomicGetAndXor16 === | ||
+ | {| class="wikitable" | ||
|- | |- | ||
− | | 3. | + | ! 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" | {| class="wikitable" | ||
|- | |- | ||
− | ! Version | + | ! 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> | ||
+ | |||
+ | === SceLibKernel_12D11F65 === | ||
+ | {| class="wikitable" | ||
|- | |- | ||
− | + | ! Version !! NID | |
|- | |- | ||
− | | | + | | 0.930 || 0x12D11F65 |
|- | |- | ||
− | | 3.60 || | + | | 3.60 || not present |
|} | |} | ||
− | == | + | <source lang="C">int SceLibKernel_12D11F65(SceUID mutex_id);</source> |
+ | |||
+ | === SceLibKernel_10A4976F === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.930 || 0x10A4976F | ||
+ | |- | ||
+ | | 3.60 || not present | ||
+ | |} | ||
+ | |||
+ | Official name is near of "CondVar::Signal". | ||
+ | |||
+ | <source lang="C">SceBool SceLibKernel_10A4976F(int a1);</source> | ||
+ | |||
+ | === SceLibKernel_FD295414 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.930 || 0xFD295414 | ||
+ | |- | ||
+ | | 3.60 || not present | ||
+ | |} | ||
+ | |||
+ | Official name is near of "CondVar::Delete". | ||
+ | |||
+ | <source lang="C">SceBool SceLibKernel_FD295414(int *a1);</source> | ||
=== sceIoChstatAsync === | === sceIoChstatAsync === | ||
Line 91: | Line 927: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 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 345: | Line 1,210: | ||
derived from <code>SceIofilemgr</code> <code>_sceIoCompleteMultiple</code> | derived from <code>SceIofilemgr</code> <code>_sceIoCompleteMultiple</code> | ||
+ | |||
+ | === sceKernelPrintBacktraceForProcess === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.000.071-3.740.011 || 0x20E2D4B7 | ||
+ | |} | ||
+ | |||
+ | This is a guessed name. | ||
+ | |||
+ | <source lang="C"> | ||
+ | /** | ||
+ | * 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); | ||
+ | </source> | ||
+ | |||
+ | === sceKernelBacktrace === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.000.071-3.740.011 || 0x894037E8 | ||
+ | |} | ||
+ | |||
+ | 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"> | ||
+ | /** | ||
+ | * 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); | ||
+ | </source> | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB160UniCastDecrypt === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x01E00CBF | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160UniCastDecrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastDecrypt]]. | ||
+ | |||
+ | === sceKernelPuts === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.902-3.60 || 0x023EAA62 | ||
+ | |} | ||
+ | |||
+ | Dummy function in FW 3.60. | ||
+ | |||
+ | <source lang="C">int sceKernelPuts(const char* str);</source> | ||
+ | |||
+ | === sceKernelGetLibraryVariableAddress === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-1.692 || not present | ||
+ | |- | ||
+ | | 1.800.071-3.740.011 || 0x0A4DF821 | ||
+ | |} | ||
+ | |||
+ | 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> | ||
+ | |||
+ | === sceKernelLinkFunctionTable === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-1.692 || not present | ||
+ | |- | ||
+ | | 1.800.071-3.740.011 || 0xBEF71602 | ||
+ | |} | ||
+ | |||
+ | 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" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-1.692 || not present | ||
+ | |- | ||
+ | | 1.800.071-3.740.011 || 0x70867F93 | ||
+ | |} | ||
+ | |||
+ | 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 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x104D802F | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth3|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth3]]. | ||
+ | |||
+ | === sceSblGcAuthMgrPkgVry === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x12C7CD2B | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrPkgVry|SceSblGcAuthMgr#_sceSblGcAuthMgrPkgVry]]. | ||
+ | |||
+ | === sceSblGcAuthMgrMsSaveBBMacInit === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x1693032E | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBMacInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBMacInit]]. | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB160Auth2 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x1F4DF829 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth2|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth2]]. | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB224Auth1 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x211BEDE8 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth1|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth1]]. | ||
+ | |||
+ | === sceSblGcAuthMgrMsSaveBBCipherInit === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x2E05B2DC | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBCipherInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherInit]]. | ||
+ | |||
+ | === SceLibKernel_37F4ED04 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x37F4ED04 | ||
+ | |} | ||
+ | |||
+ | It does not seem to call any imported function. | ||
+ | |||
+ | === SceLibKernel_91FA6614 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.00 || not present | ||
+ | |- | ||
+ | | 3.60 || 0x91FA6614 | ||
+ | |} | ||
+ | |||
+ | Temp name was sceKernelUnlockLwMutex. | ||
+ | |||
+ | It does not seem to call any imported function. | ||
+ | |||
+ | === SceLibKernel_120AFC8C === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x120AFC8C | ||
+ | |} | ||
+ | |||
+ | Temp name was sceKernelUnlockLwMutex2. | ||
+ | |||
+ | It does not seem to call any imported function. | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB160Auth5 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x3B595E1D | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth5|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth5]]. | ||
+ | |||
+ | === sceKernelUnlockLwMutex === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x499EA781 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceKernelThreadMgr#sceKernelUnlockLwMutex|SceKernelThreadMgr#_sceKernelUnlockLwMutex]]. | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB224Auth5 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x4AC7EFC9 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth5|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth5]]. | ||
+ | |||
+ | === 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]]. | ||
+ | |||
+ | === SceLibKernel_6C7365C4 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.000.071-3.740.011 || 0x6C7365C4 | ||
+ | |} | ||
+ | |||
+ | This function seems to check allowed address range for backtrace. | ||
+ | |||
+ | Related to [[#sceKernelBacktraceSelf]]. | ||
+ | |||
+ | <source lang="C"> | ||
+ | // addr: 0-0xEFFFFFFF | ||
+ | // pRes: pointer to a 64-bit buffer | ||
+ | int SceLibKernel_6C7365C4(SceUInt32 addr, SceUInt64 *pRes); | ||
+ | </source> | ||
=== sceKernelRegisterThreadEventHandler === | === sceKernelRegisterThreadEventHandler === | ||
Line 353: | Line 1,589: | ||
| 3.60 || 0x6D8C0F13 | | 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> | ||
+ | |||
+ | === sceKernelLockLwMutex === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x46E7BE7B | ||
+ | |} | ||
+ | |||
+ | === sceKernelLockLwMutexCB === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x3148C6B6 | ||
+ | |} | ||
+ | |||
+ | === sceKernelTryLockLwMutex_old === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xA6A2C915 | ||
+ | |} | ||
+ | |||
+ | This is a guessed name. Temp name was sceKernelTryLockLwMutex. | ||
+ | |||
+ | PSP-like "sceKernelTryLockLwMutex". | ||
+ | |||
+ | <source lang="C">int sceKernelTryLockLwMutex_old(SceLwMutex *mutex, SceUInt32 count);</source> | ||
+ | |||
+ | === sceKernelTryLockLwMutexCB === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x6F9C4CC1 | ||
+ | |} | ||
+ | |||
+ | This is a guessed name. | ||
+ | |||
+ | It calls PSP-like [[#sceKernelTryLockLwMutex_old]], and on failure [[SceKernelThreadMgr#_sceKernelLockLwMutex]] with flag 1 (CB). | ||
+ | |||
+ | <source lang="C">int sceKernelTryLockLwMutexCB(SceLwMutex *mutex, SceUInt32 count, void *in_out);</source> | ||
+ | |||
+ | === sceKernelTryLockLwMutex === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xA7819967 | ||
+ | |} | ||
+ | |||
+ | This is a guessed name. | ||
+ | |||
+ | It calls PSP-like [[#sceKernelTryLockLwMutex_old]], and on failure [[SceKernelThreadMgr#_sceKernelLockLwMutex]] with flag 0 (non-CB). | ||
+ | |||
+ | <source lang="C">int sceKernelTryLockLwMutex_0(SceLwMutex *mutex, SceUInt32 count, void *in_out);</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" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x93A6570E | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrSclkGetData1|SceSblGcAuthMgr#_sceSblGcAuthMgrSclkGetData1]]. | ||
+ | |||
+ | === sceSblGcAuthMgrPcactGetChallenge === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931.010-1.000.041 || not present | ||
+ | |- | ||
+ | | 1.80-3.60 || 0x9557D15C | ||
+ | |} | ||
+ | |||
+ | 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 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Init|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Init]]. | ||
+ | |||
+ | === SceLibKernel_9EF798C1 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x9EF798C1 | ||
+ | |} | ||
+ | |||
+ | It does not seem to call any imported function. Maybe related to low mutexes. | ||
+ | |||
+ | <source lang="C">int SceLibKernel_9EF798C1(void *maybe_mutex, SceUInt32 maybe_count);</source> | ||
+ | |||
+ | === sceKernelGetMainModuleSdkVersion === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.500.151-3.740.011 || 0x9F793F84 | ||
+ | |} | ||
+ | |||
+ | 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> | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB160UniCastEncrypt === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xA9002567 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160UniCastEncrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastEncrypt]]. | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB224GetKeys === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xAC57B6A4 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224GetKeys|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224GetKeys]]. | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB160Auth3 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xC362ECD6 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth3|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth3]]. | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB224Init === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xC8082804 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Init|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Init]]. | ||
+ | |||
+ | === SceLibKernel_DC277B4D === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xDC277B4D | ||
+ | |} | ||
+ | |||
+ | Returns a 64bit value and uses 0xdeadbeef constant somehow. | ||
+ | |||
+ | <source lang="C">ulonglong SceLibKernel_DC277B4D(int a1, SceUInt32 low);</source> | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB224Auth2 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xDEAD6277 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224Auth2|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth2]]. | ||
+ | |||
+ | === sceSblGcAuthMgrSclkSetData2 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xE088B0D0 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrSclkSetData2|SceSblGcAuthMgr#_sceSblGcAuthMgrSclkSetData2]]. | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB160BroadCastDecrypt === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xE2984A54 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160BroadCastDecrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160BroadCastDecrypt]]. | ||
+ | |||
+ | === sceSblGcAuthMgrPsmactVerifyR1 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xEB6DA895 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrPsmactVerifyR1|SceSblGcAuthMgr#_sceSblGcAuthMgrPsmactVerifyR1]]. | ||
+ | |||
+ | === sceSblGcAuthMgrAdhocBB160Auth1 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xEFD76235 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160Auth1|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth1]]. | ||
+ | |||
+ | === sceSblGcAuthMgrGetMediaIdType01 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0xF7027E6A | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrGetMediaIdType01|SceSblGcAuthMgr#_sceSblGcAuthMgrGetMediaIdType01]]. | ||
+ | |||
+ | === SceKernelStackChkFail === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 2.000.081-3.740.011 || 0xEC287338 | ||
+ | |} | ||
+ | |||
+ | === __stack_chk_fail === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 2.000.081-3.740.011 || 0x37691BF8 | ||
+ | |} | ||
+ | |||
+ | Also exported in [[#SceLibSsp]]. | ||
+ | |||
+ | <source lang="C">int __stack_chk_fail(void);</source> | ||
+ | |||
+ | === sceKernelSuspendThreadForVM === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-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" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-1.61 || not present | ||
+ | |- | ||
+ | | 1.660.011-3.740.011 || 0x22C9595E | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceKernelThreadMgr#_sceKernelGetThreadContextForVM]]. | ||
+ | |||
+ | === sceKernelSetThreadContextForVM === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-1.61 || not present | ||
+ | |- | ||
+ | | 1.660.011-3.740.011 || 0x27E6DEDE | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceKernelThreadMgr#_sceKernelSetThreadContextForVM]]. | ||
+ | |||
+ | === SceLibKernel_35D20E49 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-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. | ||
+ | |||
+ | <source lang="C">SceUInt32 SceLibKernel_35D20E49(SceUInt32 thid, SceUInt32 idx);</source> | ||
+ | |||
+ | === sceKernelWaitException === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-1.61 || not present | ||
+ | |- | ||
+ | | 1.660.011-3.740.011 || ? | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceKernelThreadMgr#_sceKernelWaitException]]. | ||
+ | |||
+ | === sceKernelWaitExceptionCB === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-1.61 || not present | ||
+ | |- | ||
+ | | 1.660.011-3.740.011 || 0xAB4B5485 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceKernelThreadMgr#_sceKernelWaitExceptionCB]]. | ||
+ | |||
+ | === sceClibPrintf === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.000.071-3.740.011 || 0xFA26BC62 | ||
+ | |} | ||
+ | |||
+ | === sceClibDprintf === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.600.011 || 0x4340EF77 | ||
+ | |} | ||
+ | |||
+ | <source lang="C">int sceClibDprintf(SceUID fd, const char *fmt, ...);</source> | ||
+ | |||
+ | === sceKernelPrintBacktrace === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-2.06 || not present | ||
+ | |- | ||
+ | | 2.100.081-3.740.011 || 0x1C02A434 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceLibKernel#sceKernelPrintBacktraceForProcess|sceKernelPrintBacktraceForProcess]] with <code>pid=0</code>. | ||
<source lang="C"> | <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> | </source> | ||
− | === | + | === SceKernelStackChkGuard === |
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 2.000.081-3.740.011 || 0x4458BCF3 | ||
+ | |} | ||
+ | |||
+ | This is a variable (4 bytes). | ||
+ | |||
+ | === __stack_chk_guard === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.500.151-3.740.011 || 0x39AD080B | ||
+ | |} | ||
+ | |||
+ | Also exported in [[#SceLibKernel]]. | ||
+ | |||
+ | <source lang="C">int __stack_chk_fail(void);</source> | ||
+ | |||
+ | === __stack_chk_guard === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.500.151-3.740.011 || 0x1EA375E6 | ||
+ | |} | ||
+ | |||
+ | This is a variable (4 bytes). | ||
+ | |||
+ | Also exported in [[#SceLibKernel]]. | ||
+ | |||
+ | == SceRtabi == | ||
+ | |||
+ | === __aeabi_lcmp === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 3.60 || 0x0D4F0635 | ||
+ | |} | ||
+ | |||
+ | === __aeabi_lmul === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 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_655B1F19 === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-0.990 || not present | ||
+ | |- | ||
+ | | 1.000.071-1.610.061 || 0x655B1F19 | ||
+ | |- | ||
+ | | 1.66-3.740.011 || not present | ||
+ | |} | ||
+ | |||
+ | === sceKernelGetThreadContextForVM === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.000.071-3.740.011 || 0x010BB885 | ||
+ | |} | ||
+ | |||
+ | === sceKernelResumeThreadForVM === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.000.071-3.740.011 || 0x70F3F49D | ||
+ | |} | ||
+ | |||
+ | === sceKernelSuspendThreadForVM === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 1.000.071-3.740.011 || 0xF5F8F795 | ||
+ | |} | ||
+ | |||
+ | == SceLibRng == | ||
+ | |||
+ | === sceKernelGetRandomNumber === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-1.52 || not present | ||
+ | |- | ||
+ | | 1.600.061-3.740.011 || 0xB2700165 | ||
+ | |} | ||
+ | |||
+ | Wrapper to [[SceSblSsMgr#sceKernelGetRandomNumber|_sceKernelGetRandomNumber]]. | ||
+ | |||
+ | <source lang="C">int sceKernelGetRandomNumber(void *dst, SceSize length);</source> | ||
+ | |||
+ | == SceKernelForMono == | ||
+ | |||
+ | === sceKernelWaitException === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-2.120.011 || not present | ||
+ | |- | ||
+ | | 2.500.071-3.740.011 || 0x1BECC64C | ||
+ | |} | ||
+ | |||
+ | === sceKernelSuspendThreadForVM === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-2.120.011 || not present | ||
+ | |- | ||
+ | | 2.500.071-3.740.011 || 0x38839DA2 | ||
+ | |} | ||
+ | |||
+ | === sceKernelSetThreadContextForVM === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-2.120.011 || not present | ||
+ | |- | ||
+ | | 2.500.071-3.740.011 || 0x92A0964D | ||
+ | |} | ||
+ | |||
+ | === sceKernelResumeThreadForVM === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.931-2.120.011 || not present | ||
+ | |- | ||
+ | | 2.500.071-3.740.011 || 0x9A6D085B | ||
+ | |} | ||
+ | |||
+ | === sceKernelGetThreadContextForVM === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.931-2.120.011 || not present |
+ | |- | ||
+ | | 2.500.071-3.740.011 || 0xAD210F16 | ||
|} | |} | ||
− | === | + | === sceKernelWaitExceptionCB === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | 3. | + | | 0.931-2.120.011 || not present |
+ | |- | ||
+ | | 2.500.071-3.740.011 || 0xE513151F | ||
|} | |} | ||
− | + | == Heap == | |
+ | |||
The latest version of [http://g.oswego.edu/dl/html/malloc.html dlmalloc] is included in SceLibKernel. Most of the assert checks and security are included. | The latest version of [http://g.oswego.edu/dl/html/malloc.html dlmalloc] is included in SceLibKernel. Most of the assert checks and security are included. | ||
=== Thread specific data === | === Thread specific data === | ||
− | Each thread owns a private 2048bytes memory region with specific data. The end of this region is pointed by the TPIDRURO register (thus, the start of it is TPIDRURO - 0x800). | + | |
+ | Each thread owns a private 2048bytes memory region with specific data (?TLS?). The end of this region is pointed by the TPIDRURO register (thus, the start address of it is TPIDRURO - 0x800). | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 401: | Line 2,358: | ||
|} | |} | ||
− | + | [[Category:ARM]] | |
− | + | [[Category:Usermode]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:Modules]] | [[Category:Modules]] | ||
− | [[Category: | + | [[Category:Library]] |
Revision as of 02:25, 29 January 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 and exists only in usermode. The SELF can be found in os0:us/libkernel.suprx
.
Version | World | Privilege |
---|---|---|
1.00-3.73 | Non-secure | User |
Libraries
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69-3.60 | SceLibKernel | Non-secure | User | 0xCAE9ACE6 |
1.69-3.60 | SceLibRng | Non-secure | User | 0xF9AC7CF8 |
1.69-3.60 | SceLibGcc | Non-secure | User | 0x567AF9A6 |
1.69-3.60 | SceLibSsp | Non-secure | User | 0x8FA98EF1 |
1.69-3.60 | SceRtabi | Non-secure | User | 0xA941943F |
1.69-3.60 | SceKernelForVM | Non-secure | User | 0xA2B3EA8F |
3.60 | SceKernelForMono | Non-secure | User | 0x5FEEA076 |
SceLibKernel
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);
SceLibKernel_12D11F65
Version | NID |
---|---|
0.930 | 0x12D11F65 |
3.60 | not present |
int SceLibKernel_12D11F65(SceUID mutex_id);
SceLibKernel_10A4976F
Version | NID |
---|---|
0.930 | 0x10A4976F |
3.60 | not present |
Official name is near of "CondVar::Signal".
SceBool SceLibKernel_10A4976F(int a1);
SceLibKernel_FD295414
Version | NID |
---|---|
0.930 | 0xFD295414 |
3.60 | not present |
Official name is near of "CondVar::Delete".
SceBool SceLibKernel_FD295414(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);
sceSblGcAuthMgrAdhocBB160UniCastDecrypt
Version | NID |
---|---|
3.60 | 0x01E00CBF |
Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastDecrypt.
sceKernelPuts
Version | NID |
---|---|
0.902-3.60 | 0x023EAA62 |
Dummy function in FW 3.60.
int sceKernelPuts(const char* str);
sceKernelGetLibraryVariableAddress
Version | NID |
---|---|
0.931-1.692 | not present |
1.800.071-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-1.692 | not present |
1.800.071-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-1.692 | not present |
1.800.071-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.
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 |
---|---|
3.60 | 0x37F4ED04 |
It does not seem to call any imported function.
SceLibKernel_91FA6614
Version | NID |
---|---|
3.00 | not present |
3.60 | 0x91FA6614 |
Temp name was sceKernelUnlockLwMutex.
It does not seem to call any imported function.
SceLibKernel_120AFC8C
Version | NID |
---|---|
3.60 | 0x120AFC8C |
Temp name was sceKernelUnlockLwMutex2.
It does not seem to call any imported function.
sceSblGcAuthMgrAdhocBB160Auth5
Version | NID |
---|---|
3.60 | 0x3B595E1D |
Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160Auth5.
sceKernelUnlockLwMutex
Version | NID |
---|---|
3.60 | 0x499EA781 |
Wrapper to SceKernelThreadMgr#_sceKernelUnlockLwMutex.
sceSblGcAuthMgrAdhocBB224Auth5
Version | NID |
---|---|
3.60 | 0x4AC7EFC9 |
Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224Auth5.
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.
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);
sceKernelRegisterThreadEventHandler
Version | NID |
---|---|
3.60 | 0x6D8C0F13 |
Wrapper to SceKernelThreadMgr#_sceKernelRegisterThreadEventHandler.
int sceKernelRegisterThreadEventHandler(char *name, SceUID thread_id, SceUInt32 mask, SceKernelThreadEventHandler *handler, void *common);
sceKernelLockLwMutex
Version | NID |
---|---|
3.60 | 0x46E7BE7B |
sceKernelLockLwMutexCB
Version | NID |
---|---|
3.60 | 0x3148C6B6 |
sceKernelTryLockLwMutex_old
Version | NID |
---|---|
3.60 | 0xA6A2C915 |
This is a guessed name. Temp name was sceKernelTryLockLwMutex.
PSP-like "sceKernelTryLockLwMutex".
int sceKernelTryLockLwMutex_old(SceLwMutex *mutex, SceUInt32 count);
sceKernelTryLockLwMutexCB
Version | NID |
---|---|
3.60 | 0x6F9C4CC1 |
This is a guessed name.
It calls PSP-like #sceKernelTryLockLwMutex_old, and on failure SceKernelThreadMgr#_sceKernelLockLwMutex with flag 1 (CB).
int sceKernelTryLockLwMutexCB(SceLwMutex *mutex, SceUInt32 count, void *in_out);
sceKernelTryLockLwMutex
Version | NID |
---|---|
3.60 | 0xA7819967 |
This is a guessed name.
It calls PSP-like #sceKernelTryLockLwMutex_old, and on failure SceKernelThreadMgr#_sceKernelLockLwMutex with flag 0 (non-CB).
int sceKernelTryLockLwMutex_0(SceLwMutex *mutex, SceUInt32 count, void *in_out);
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.
SceLibKernel_9EF798C1
Version | NID |
---|---|
3.60 | 0x9EF798C1 |
It does not seem to call any imported function. Maybe related to low mutexes.
int SceLibKernel_9EF798C1(void *maybe_mutex, SceUInt32 maybe_count);
sceKernelGetMainModuleSdkVersion
Version | NID |
---|---|
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);
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-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-1.61 | not present |
1.660.011-3.740.011 | 0x22C9595E |
Wrapper to SceKernelThreadMgr#_sceKernelGetThreadContextForVM.
sceKernelSetThreadContextForVM
Version | NID |
---|---|
0.931-1.61 | not present |
1.660.011-3.740.011 | 0x27E6DEDE |
Wrapper to SceKernelThreadMgr#_sceKernelSetThreadContextForVM.
SceLibKernel_35D20E49
Version | NID |
---|---|
0.931-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-1.61 | not present |
1.660.011-3.740.011 | ? |
Wrapper to SceKernelThreadMgr#_sceKernelWaitException.
sceKernelWaitExceptionCB
Version | NID |
---|---|
0.931-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 |
---|---|
3.600.011 | 0x4340EF77 |
int sceClibDprintf(SceUID fd, const char *fmt, ...);
sceKernelPrintBacktrace
Version | NID |
---|---|
0.931-2.06 | 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);
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-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-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-2.120.011 | not present |
2.500.071-3.740.011 | 0x1BECC64C |
sceKernelSuspendThreadForVM
Version | NID |
---|---|
0.931-2.120.011 | not present |
2.500.071-3.740.011 | 0x38839DA2 |
sceKernelSetThreadContextForVM
Version | NID |
---|---|
0.931-2.120.011 | not present |
2.500.071-3.740.011 | 0x92A0964D |
sceKernelResumeThreadForVM
Version | NID |
---|---|
0.931-2.120.011 | not present |
2.500.071-3.740.011 | 0x9A6D085B |
sceKernelGetThreadContextForVM
Version | NID |
---|---|
0.931-2.120.011 | not present |
2.500.071-3.740.011 | 0xAD210F16 |
sceKernelWaitExceptionCB
Version | NID |
---|---|
0.931-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 |