Difference between revisions of "SceLibKernel"

From Vita Development Wiki
Jump to navigation Jump to search
(32 intermediate revisions by 3 users not shown)
Line 7: Line 7:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Version !! Name !! World !! Privilege
+
! Version !! World !! Privilege
 
|-
 
|-
| 1.69-3.73 || SceLibKernel || Non-secure || User
+
| 1.00-3.73 || Non-secure || User
 
|}
 
|}
  
Line 35: Line 35:
  
 
== SceLibKernel ==
 
== SceLibKernel ==
 +
 +
=== 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">void sceKernelAtomicCompareAndSet8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicCompareAndSet16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xE8C01236
 +
|}
 +
 +
<source lang="C">void sceKernelAtomicCompareAndSet16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicCompareAndSet32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x1124A1D4
 +
|}
 +
 +
<source lang="C">void sceKernelAtomicCompareAndSet32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicCompareAndSet64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x1EBDFCCD
 +
|}
 +
 +
<source lang="C">void sceKernelAtomicCompareAndSet64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicDecIfPositive8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x9DABE6C3
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicDecIfPositive8(SceInt8 *store);</source>
 +
 +
=== sceKernelAtomicDecIfPositive16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x323718FB
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicDecIfPositive16(SceInt16 *store);</source>
 +
 +
=== sceKernelAtomicDecIfPositive32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xCA3294F1
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicDecIfPositive32(SceInt32 *store);</source>
 +
 +
=== sceKernelAtomicDecIfPositive64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x8BE2A007
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicDecIfPositive64(SceInt64 *store);</source>
 +
 +
=== sceKernelAtomicGetAndAdd8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x27A2AAFA
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicGetAndAdd8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicGetAndAdd16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x5674DB0C
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicGetAndAdd16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicGetAndAdd32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x2611CB0B
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicGetAndAdd32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicGetAndAdd64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x63DAF37D
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicGetAndAdd64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicGetAndAnd8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x53DCA02B
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicGetAndAnd8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicGetAndAnd16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x7A0CB056
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicGetAndAnd16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicGetAndAnd32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x08266595
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicGetAndAnd32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicGetAndAnd64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x4828BC43
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicGetAndAnd64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicGetAndClear8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xA10873A4
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicGetAndClear8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicGetAndClear16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x57CD7E7D
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicGetAndClear16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicGetAndClear32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x0226A017
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicGetAndClear32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicGetAndClear64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x436AA0B5
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicGetAndClear64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicGetAndOr8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x107A68DF
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicGetAndOr8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicGetAndOr16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x31E49E73
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicGetAndOr16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicGetAndOr32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x984AD276
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicGetAndOr32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicGetAndOr64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xC39186CD
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicGetAndOr64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicGetAndSet8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x2672EA0B
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicGetAndSet8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicGetAndSet16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xF7B9ADFC
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicGetAndSet16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicGetAndSet32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x9B43E667
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicGetAndSet32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicGetAndSet64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xD82B3A7A
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicGetAndSet64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicGetAndSub8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xCDF5DF67
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicGetAndSub8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicGetAndSub16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xAC51979C
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicGetAndSub16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicGetAndSub32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x115C516F
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicGetAndSub32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicGetAndSub64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x4AE9C8E6
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicGetAndSub64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicGetAndXor8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x7350B2DF
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicGetAndXor8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicGetAndXor16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x6E2D0B9E
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicGetAndXor16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicGetAndXor32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x38739E2F
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicGetAndXor32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicGetAndXor64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x6A19BBE9
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicGetAndXor64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicOrAndGet8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x51693931
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicOrAndGet8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicOrAndGet16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x8E248EBD
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicOrAndGet16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicOrAndGet32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xC3B2F7F8
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicOrAndGet32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicOrAndGet64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x809BBC7D
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicOrAndGet64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicSet8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xE960FDA2
 +
|}
 +
 +
<source lang="C">void sceKernelAtomicSet8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicSet16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x450BFECF
 +
|}
 +
 +
<source lang="C">void sceKernelAtomicSet16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicSet32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xB69DA09B
 +
|}
 +
 +
<source lang="C">void sceKernelAtomicSet32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicSet64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xC8A4339C
 +
|}
 +
 +
<source lang="C">void sceKernelAtomicSet64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicSubAndGet8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x99E1796E
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicSubAndGet8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicSubAndGet16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xC26BBBB1
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicSubAndGet16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicSubAndGet32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x01C9CD92
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicSubAndGet32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicSubAndGet64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x9BB4A94B
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicSubAndGet64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== sceKernelAtomicXorAndGet8 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x634AF062
 +
|}
 +
 +
<source lang="C">SceInt8 sceKernelAtomicXorAndGet8(SceInt8 *store, SceInt8 value);</source>
 +
 +
=== sceKernelAtomicXorAndGet16 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x6F524195
 +
|}
 +
 +
<source lang="C">SceInt16 sceKernelAtomicXorAndGet16(SceInt16 *store, SceInt16 value);</source>
 +
 +
=== sceKernelAtomicXorAndGet32 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0x46940704
 +
|}
 +
 +
<source lang="C">SceInt32 sceKernelAtomicXorAndGet32(SceInt32 *store, SceInt32 value);</source>
 +
 +
=== sceKernelAtomicXorAndGet64 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.20 || 0xDDC6866E
 +
|}
 +
 +
<source lang="C">SceInt64 sceKernelAtomicXorAndGet64(SceInt64 *store, SceInt64 value);</source>
 +
 +
=== SceLibKernel_12D11F65 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.930 || 0x12D11F65
 +
|-
 +
| 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 87: Line 846:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x04B30CB2
+
| 1.000.071-3.740.011 || 0x04B30CB2
 
|}
 
|}
 +
 +
This performs device-specific operations. The details of the operations are driver-dependent.
 +
 +
This is a wrapper for [[SceIofilemgr#sceIoDevctl|_sceIoDevctl]].
 +
 +
<source lang="C">
 +
/*
 +
Arguments:
 +
devname    Specified device ("<devname><unit>:")
 +
cmd    Command code
 +
arg    Pointer to device-driver-dependent parameter block
 +
arglen    Number of bytes in device-driver-dependent parameter block
 +
bufp    Pointer to return data storage block
 +
buflen    Size of return data storage block
 +
 +
Return Values:
 +
Non-negative (N>=0) Success (driver-dependent)
 +
<0 Error, e.g. SCE_ERROR_ERRNO_EMFILE, SCE_ERROR_ERRNO_ENODEV, SCE_ERROR_ERRNO_EUNSUP
 +
*/
 +
 +
int sceIoDevctl(
 +
    const char *devname,
 +
    int cmd,
 +
    const void *arg,
 +
    SceSize arglen,
 +
    void *bufp,
 +
    SceSize buflen
 +
);
 +
</source>
  
 
=== sceIoDopen ===
 
=== sceIoDopen ===
Line 342: Line 1,130:
 
derived from <code>SceIofilemgr</code> <code>_sceIoCompleteMultiple</code>
 
derived from <code>SceIofilemgr</code> <code>_sceIoCompleteMultiple</code>
  
=== sceKernelPrintBacktrace ===
+
=== sceKernelPrintBacktraceForProcess ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60-3.65 || 0x1C02A434
+
| 1.000.071-3.740.011 || 0x20E2D4B7
 
|}
 
|}
  
This is maybe a guessed name.
+
This is a guessed name.
 
 
Wrapper for [[SceLibKernel#sceKernelPrintBacktraceForProcess|sceKernelPrintBacktraceForProcess]].
 
  
 
<source lang="C">
 
<source lang="C">
Line 360: Line 1,146:
 
  * @return SCE_OK on success, < 0 on error
 
  * @return SCE_OK on success, < 0 on error
 
  *
 
  *
 +
* @param pid ?Process ID to operate under? - only SCE_KERNEL_PROCESS_ID_SELF or result of sceKernelGetProcessId is accepted
 
  * @param pCallFrame Pointer to an array of filled up call frames
 
  * @param pCallFrame Pointer to an array of filled up call frames
 
  * @param numFrames Number of frames in the buffer pointed to by pCallFrame
 
  * @param numFrames Number of frames in the buffer pointed to by pCallFrame
 
  */
 
  */
SceInt32 sceKernelPrintBacktrace(SceKernelCallFrame* pCallFrame, SceUInt32 numFrames);
+
SceInt32 sceKernelPrintBacktraceForProcess(SceUID pid, SceKernelCallFrame* pCallFrame, SceUInt32 numFrames);
 
</source>
 
</source>
  
=== sceKernelPrintBacktraceForProcess ===
+
=== sceKernelBacktrace ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60-3.65 || 0x20E2D4B7
+
| 3.60-3.65 || 0x894037E8
 
|}
 
|}
  
This is a guessed name.
+
Wrapper to [[SceKernelModulemgr#sceKernelBacktrace|SceKernelModulemgr#_sceKernelBacktrace]].
 +
 
 +
<source lang="C">
 +
SceInt32 sceKernelBacktrace(SceUID threadId, SceKernelCallFrame *pCallFrameBuffer, SceSize numBytesBuffer, SceUInt32 *pNumReturn, SceInt32 mode);
 +
</source>
 +
 
 +
=== sceKernelBacktraceSelf ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60-3.65 || 0xD16C03B0
 +
|}
  
 
<source lang="C">
 
<source lang="C">
 
/**
 
/**
  * Prints call frames to STDOUT - does NOT perform a backtrace
+
  * Performs a walk back in the call stack and returns obtained stack frames.
 
  *
 
  *
  * @return SCE_OK on success, < 0 on error
+
  * @return Call stack depth or SCE_OK on success, < 0 on error
 
  *
 
  *
  * @param pid ?Process ID to operate under? - only SCE_KERNEL_PROCESS_ID_SELF or result of sceKernelGetProcessId is accepted
+
  * @param pCallFrameBuffer Pointer to an array of call frames that will recieve information
* @param pCallFrame Pointer to an array of filled up call frames
+
  * @param numBytesBuffer Number of bytes in the buffer pointed to by pCallFrameBuffer
  * @param numFrames Number of frames in the buffer pointed to by pCallFrame
+
* @param pNumReturn Pointer to a variable that will obtain the actual number of call frames filled up
 +
* @param mode Specify SCE_KERNEL_BACKTRACE_MODE_USER - you can also specify the SCE_KERNEL_BACKTRACE_MODE_DONT_EXCEED option with a logical OR
 +
* @note Specifying SCE_KERNEL_BACKTRACE_MODE_DONT_EXCEED stops processing when the call frame buffer is filled up - SCE_OK is returned instead of call stack depth
 
  */
 
  */
SceInt32 sceKernelPrintBacktraceForProcess(SceUID pid, SceKernelCallFrame* pCallFrame, SceUInt32 numFrames);
+
SceInt32 sceKernelBacktraceSelf(SceKernelCallFrame *pCallFrameBuffer, SceSize numBytesBuffer, SceUInt32 *pNumReturn, SceInt32 mode);
 
</source>
 
</source>
  
Line 399: Line 1,200:
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160UniCastDecrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastDecrypt]].
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB160UniCastDecrypt|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB160UniCastDecrypt]].
  
=== SceLibKernel_023EAA62 ===
+
=== sceKernelPuts ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x023EAA62
+
| 0.902-3.60 || 0x023EAA62
 
|}
 
|}
  
=== sceKernelGetVariableByNID ===
+
Dummy function in FW 3.60.
 +
 
 +
<source lang="C">int sceKernelPuts(const char* str);</source>
 +
 
 +
=== sceKernelGetLibraryVariableAddress ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x0A4DF821
+
| 0.931-1.692 || not present
 +
|-
 +
| 1.800.071-3.740.011 || 0x0A4DF821
 
|}
 
|}
  
This is a guessed name.
+
Temp name was sceKernelGetModuleVariableByNID.
  
Get variable address by NID.
+
Gets variable address by NID.
  
 
Calls [[SceKernelModulemgr#sceKernelGetLibraryInfoByNID|SceKernelModulemgr#_sceKernelGetLibraryInfoByNID]].
 
Calls [[SceKernelModulemgr#sceKernelGetLibraryInfoByNID|SceKernelModulemgr#_sceKernelGetLibraryInfoByNID]].
  
<source lang="C">int sceKernelGetVariableByNID(SceUID modid, SceUInt32 libnid, SceUInt32 var_nid, int *pVarAddr);</source>
+
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)
  
=== sceKernelGetFunctionsByNIDs ===
+
#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"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xBEF71602
+
| 0.931-1.692 || not present
 +
|-
 +
| 1.800.071-3.740.011 || 0xBEF71602
 
|}
 
|}
  
This is a guessed name.
+
Temp name was sceKernelGetModuleFunctionsByNID.
  
Gets functions (maybe also variables) addresses by NIDs.
+
Sets functions table for a module.
  
 
Calls [[SceKernelModulemgr#sceKernelGetLibraryInfoByNID|SceKernelModulemgr#_sceKernelGetLibraryInfoByNID]].
 
Calls [[SceKernelModulemgr#sceKernelGetLibraryInfoByNID|SceKernelModulemgr#_sceKernelGetLibraryInfoByNID]].
  
<source lang="C">int sceKernelGetFunctionsByNIDs(SceUID modid, SceUInt32 libnid, SceUInt32 maxnum, void *pNids, void *pEntries);</source>
+
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 ===
 
=== sceSblGcAuthMgrAdhocBB224Auth3 ===
Line 498: Line 1,376:
  
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBCipherInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherInit]].
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrMsSaveBBCipherInit|SceSblGcAuthMgr#_sceSblGcAuthMgrMsSaveBBCipherInit]].
 
=== SceLibKernel_35D20E49 ===
 
{| class="wikitable"
 
|-
 
! Version !! NID
 
|-
 
| 3.60 || 0x35D20E49
 
|}
 
 
It does not seem to call any imported function.
 
  
 
=== SceLibKernel_37F4ED04 ===
 
=== SceLibKernel_37F4ED04 ===
Line 523: Line 1,391:
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 +
|-
 +
| 3.00 || not present
 
|-
 
|-
 
| 3.60 || 0x91FA6614
 
| 3.60 || 0x91FA6614
Line 636: Line 1,506:
  
 
<source lang="C">int sceKernelRegisterThreadEventHandler(char *name, SceUID thread_id, SceUInt32 mask, SceKernelThreadEventHandler *handler, void *common);</source>
 
<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 ===
 
=== sceKernelTryLockLwMutex_old ===
Line 651: Line 1,537:
 
<source lang="C">int sceKernelTryLockLwMutex_old(SceLwMutex *mutex, SceUInt32 count);</source>
 
<source lang="C">int sceKernelTryLockLwMutex_old(SceLwMutex *mutex, SceUInt32 count);</source>
  
=== sceKernelTryLockLwMutex_1 ===
+
=== sceKernelTryLockLwMutexCB ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 659: Line 1,545:
 
|}
 
|}
  
This is a guessed name.  
+
This is a guessed name.
  
It calls PSP-like [[#sceKernelTryLockLwMutex_old]], and on failure [[SceKernelThreadMgr#_sceKernelLockLwMutex]] with flag 1.
+
It calls PSP-like [[#sceKernelTryLockLwMutex_old]], and on failure [[SceKernelThreadMgr#_sceKernelLockLwMutex]] with flag 1 (CB).
  
<source lang="C">int sceKernelTryLockLwMutex_1(SceLwMutex *mutex, SceUInt32 count, void *in_out);</source>
+
<source lang="C">int sceKernelTryLockLwMutexCB(SceLwMutex *mutex, SceUInt32 count, void *in_out);</source>
  
=== sceKernelTryLockLwMutex_0 ===
+
=== sceKernelTryLockLwMutex ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 673: Line 1,559:
 
|}
 
|}
  
This is a guessed name.  
+
This is a guessed name.
  
It calls PSP-like [[#sceKernelTryLockLwMutex_old]], and on failure [[SceKernelThreadMgr#_sceKernelLockLwMutex]] with flag 0.
+
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>
 
<source lang="C">int sceKernelTryLockLwMutex_0(SceLwMutex *mutex, SceUInt32 count, void *in_out);</source>
 
=== sceClibMemset32 ===
 
{| class="wikitable"
 
|-
 
! Version !! NID
 
|-
 
| 3.60 || 0x70867F93
 
|}
 
 
This is a guessed name. A good name could be sceClibMemset32 because all it does is "sceClibMemset(pBase, 0, count << 2);".
 
 
<source lang="C">int sceClibMemset32(int a1, int a2, void *pBase, SceSize count);</source>
 
  
 
=== sceSblGcAuthMgrMsSaveBBMacFinal ===
 
=== sceSblGcAuthMgrMsSaveBBMacFinal ===
Line 763: Line 1,637:
 
<source lang="C">int SceLibKernel_9EF798C1(void *maybe_mutex, SceUInt32 maybe_count);</source>
 
<source lang="C">int SceLibKernel_9EF798C1(void *maybe_mutex, SceUInt32 maybe_count);</source>
  
=== SceLibKernel_9F793F84 ===
+
=== sceKernelGetMainModuleSdkVersion ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x9F793F84
+
| 1.500.151-3.740.011 || 0x9F793F84
 
|}
 
|}
  
Gets a version from the process' [[SceProcessmgr#types|SceKernelProcessParam]]. Used for PSN Auth in [[SceShell]].
+
Gets the module SDK version from the process' [[SceProcessmgr#types|SceKernelProcessParam]]. Used for PSN Auth in [[SceShell]].
  
<source lang="C">int SceLibKernel_9F793F84(void);</source>
+
<source lang="C">int sceKernelGetMainModuleSdkVersion(void);</source>
  
 
=== sceSblGcAuthMgrAdhocBB160UniCastEncrypt ===
 
=== sceSblGcAuthMgrAdhocBB160UniCastEncrypt ===
Line 794: Line 1,668:
  
 
Wrapper to [[SceSblGcAuthMgr#sceSblGcAuthMgrAdhocBB224GetKeys|SceSblGcAuthMgr#_sceSblGcAuthMgrAdhocBB224GetKeys]].
 
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 || 0x1C02A434
 +
|}
 +
 +
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
 +
|}
 +
 +
=== 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">
 +
/**
 +
* 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>
  
 
=== SceKernelStackChkGuard ===
 
=== SceKernelStackChkGuard ===
Line 800: Line 1,896:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x4458BCF3
+
| 2.000.081-3.740.011 || 0x4458BCF3
 
|}
 
|}
  
Line 810: Line 1,906:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60-3.65 || 0x93B8AA67
+
| 2.000.081-3.740.011 || 0x93B8AA67
 
|}
 
|}
  
 
This is a variable (4 bytes).
 
This is a variable (4 bytes).
 +
 +
Also exported in [[#SceLibSsp]].
  
 
== SceLibGcc ==
 
== SceLibGcc ==
Line 840: Line 1,938:
 
== SceLibSsp ==
 
== SceLibSsp ==
  
=== sceKernelStackChkFail ===
+
=== __stack_chk_fail ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x39AD080B
+
| 1.500.151-3.740.011 || 0x39AD080B
 
|}
 
|}
  
<source lang="C">int sceKernelStackChkFail(void);</source>
+
Also exported in [[#SceLibKernel]].
 +
 
 +
<source lang="C">int __stack_chk_fail(void);</source>
  
 
=== __stack_chk_guard ===
 
=== __stack_chk_guard ===
Line 855: Line 1,955:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60-3.65 || 0x1EA375E6
+
| 1.500.151-3.740.011 || 0x1EA375E6
 
|}
 
|}
  
This is a variable (4 bytes). Same variable as [SceLibKernel#stack_chk_guard|SceLibKernel library's stack_chk_guard]].
+
This is a variable (4 bytes).
 +
 
 +
Also exported in [[#SceLibKernel]].
  
 
== SceRtabi ==
 
== SceRtabi ==
  
          SceRtabi_0D4F0635: 0x0D4F0635
+
=== __aeabi_lcmp ===
          SceRtabi_141BC4CE: 0x141BC4CE
+
 
          SceRtabi_21FF67B9: 0x21FF67B9
+
{| class="wikitable"
          SceRtabi_317B3774: 0x317B3774
+
|-
          SceRtabi_38D62D60: 0x38D62D60
+
! Version !! NID
          SceRtabi_5024AB91: 0x5024AB91
+
|-
          SceRtabi_609CA961: 0x609CA961
+
| 3.60 || 0x0D4F0635
          SceRtabi_67104054: 0x67104054
+
|}
          SceRtabi_6BB838EF: 0x6BB838EF
+
 
          SceRtabi_6CBB0E84: 0x6CBB0E84
+
=== __aeabi_lmul ===
          SceRtabi_A5DB3A86: 0xA5DB3A86
+
 
          SceRtabi_AA1F1B50: 0xAA1F1B50
+
{| class="wikitable"
          SceRtabi_C33391D1: 0xC33391D1
+
|-
          SceRtabi_CBDA815C: 0xCBDA815C
+
! Version !! NID
          SceRtabi_CDF7708E: 0xCDF7708E
+
|-
          SceRtabi_FB311F87: 0xFB311F87
+
| 3.60 || 0x141BC4CE
 +
|}
 +
 
 +
=== __aeabi_lasr ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x21FF67B9
 +
|}
 +
 
 +
=== __aeabi_ulcmp ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x317B3774
 +
|}
 +
 
 +
=== __aeabi_idiv ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x38D62D60
 +
|}
 +
 
 +
=== __aeabi_d2lz ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x5024AB91
 +
|}
 +
 
 +
=== __aeabi_f2ulz ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x609CA961
 +
|}
 +
 
 +
=== __aeabi_idivmod ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x67104054
 +
|}
 +
 
 +
=== __aeabi_d2ulz ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x6BB838EF
 +
|}
 +
 
 +
=== __aeabi_ldivmod ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0x6CBB0E84
 +
|}
 +
 
 +
=== __aeabi_llsl ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0xA5DB3A86
 +
|}
 +
 
 +
=== __aeabi_f2lz ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0xAA1F1B50
 +
|}
 +
 
 +
=== __aeabi_uidivmod ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0xC33391D1
 +
|}
 +
 
 +
=== __aeabi_llsr ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0xCBDA815C
 +
|}
 +
 
 +
=== __aeabi_uldivmod ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0xCDF7708E
 +
|}
 +
 
 +
=== __aeabi_uidiv ===
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 3.60 || 0xFB311F87
 +
|}
  
 
== SceKernelForVM ==
 
== SceKernelForVM ==
 +
 +
=== SceKernelForVM_655B1F19 ===
 +
{| class="wikitable"
 +
|-
 +
! Version !! NID
 +
|-
 +
| 0.931-0.990 || not present
 +
|-
 +
| 1.000.071-1.610.061 || 0x655B1F19
 +
|-
 +
| 1.66-3.740.011 || not present
 +
|}
  
 
=== sceKernelGetThreadContextForVM ===
 
=== sceKernelGetThreadContextForVM ===
Line 886: Line 2,127:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x010BB885
+
| 1.000.071-3.740.011 || 0x010BB885
 
|}
 
|}
  
Line 894: Line 2,135:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x70F3F49D
+
| 1.000.071-3.740.011 || 0x70F3F49D
 
|}
 
|}
  
Line 902: Line 2,143:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xF5F8F795
+
| 1.000.071-3.740.011 || 0xF5F8F795
 
|}
 
|}
  
Line 912: Line 2,153:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xB2700165
+
| 0.931-1.52 || not present
 +
|-
 +
| 1.600.061-3.740.011 || 0xB2700165
 
|}
 
|}
  
Wrapper to [[SceSblSsMgr#sceKernelGetRandomNumber|SceSblSsMgr#_sceKernelGetRandomNumber]].
+
Wrapper to [[SceSblSsMgr#sceKernelGetRandomNumber|_sceKernelGetRandomNumber]].
  
<source lang="C">int sceKernelGetRandomNumber(int *out, int a2);</source>
+
<source lang="C">int sceKernelGetRandomNumber(void *dst, SceSize length);</source>
  
 
== SceKernelForMono ==
 
== SceKernelForMono ==
Line 926: Line 2,169:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x1BECC64C
+
| 0.931-2.120.011 || not present
 +
|-
 +
| 2.500.071-3.740.011 || 0x1BECC64C
 
|}
 
|}
  
Line 934: Line 2,179:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x38839DA2
+
| 0.931-2.120.011 || not present
 +
|-
 +
| 2.500.071-3.740.011 || 0x38839DA2
 
|}
 
|}
  
Line 942: Line 2,189:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x92A0964D
+
| 0.931-2.120.011 || not present
 +
|-
 +
| 2.500.071-3.740.011 || 0x92A0964D
 
|}
 
|}
  
Line 950: Line 2,199:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x9A6D085B
+
| 0.931-2.120.011 || not present
 +
|-
 +
| 2.500.071-3.740.011 || 0x9A6D085B
 
|}
 
|}
  
Line 958: Line 2,209:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xAD210F16
+
| 0.931-2.120.011 || not present
 +
|-
 +
| 2.500.071-3.740.011 || 0xAD210F16
 
|}
 
|}
  
Line 966: Line 2,219:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xE513151F
+
| 0.931-2.120.011 || not present
 +
|-
 +
| 2.500.071-3.740.011 || 0xE513151F
 
|}
 
|}
  
 
== Heap ==
 
== Heap ==
 +
 
The latest version of [http://g.oswego.edu/dl/html/malloc.html dlmalloc] is included in SceLibKernel. Most of the assert checks and security are included.
 
The latest version of [http://g.oswego.edu/dl/html/malloc.html dlmalloc] is included in SceLibKernel. Most of the assert checks and security are included.
  
Line 997: Line 2,253:
 
|}
 
|}
  
 
+
[[Category:ARM]]
[[Category:Modules]][[Category:Usermode]]
+
[[Category:Usermode]]
 +
[[Category:Modules]]
 +
[[Category:Library]]

Revision as of 18:20, 11 May 2023

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

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
void sceKernelAtomicCompareAndSet8(SceInt8 *store, SceInt8 value);

sceKernelAtomicCompareAndSet16

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

sceKernelAtomicCompareAndSet32

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

sceKernelAtomicCompareAndSet64

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

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
3.60-3.65 0x894037E8

Wrapper to SceKernelModulemgr#_sceKernelBacktrace.

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

sceKernelBacktraceSelf

Version NID
3.60-3.65 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
3.60 0x6C7365C4

It does not seem to call any imported function.

Related to #sceKernelBacktraceSelf.

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
3.60 0x9557D15C

Wrapper to SceSblGcAuthMgr#_sceSblGcAuthMgrPcactGetChallenge.

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' SceKernelProcessParam. 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 0x1C02A434

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

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