Difference between revisions of "SceIdStorage"

From Vita Development Wiki
Jump to navigation Jump to search
Line 6: Line 6:
 
! Version !! Name !! World !! Privilege !! NID
 
! Version !! Name !! World !! Privilege !! NID
 
|-
 
|-
| 1.69 || SceIdStorage || Non-secure || Kernel || 0x61C728FB
+
| 0.931-3.60 || SceIdStorage || Non-secure || Kernel || ?
|-
 
| 3.60 || SceIdStorage || Non-secure || Kernel || 0x4BDAF254
 
 
|}
 
|}
  
Line 19: Line 17:
 
! Version !! Name !! World !! Visibility !! NID
 
! Version !! Name !! World !! Visibility !! NID
 
|-
 
|-
| 1.69-3.60 || [[SceIdStorage#SceIdStorageForDriver|SceIdStorageForDriver]] || Non-secure || Kernel || 0xE1AC6D7C
+
| 0.931-3.60 || [[SceIdStorage#SceIdStorageForDriver|SceIdStorageForDriver]] || Non-secure || Kernel || 0xE1AC6D7C
 
|}
 
|}
  
 
== SceIdStorageForDriver ==
 
== SceIdStorageForDriver ==
 +
 +
Reference: [https://www.elotrolado.net/hilo_referencia-sobre-el-idstorage_839995]
  
 
=== sceIdStorageCreateAtomicLeavesForDriver ===
 
=== sceIdStorageCreateAtomicLeavesForDriver ===
Line 29: Line 29:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x99ACCB71
+
| 0.931-3.60 || 0x99ACCB71
 
|}
 
|}
  
Line 41: Line 41:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x08A471A6
+
| 0.931-3.60 || 0x08A471A6
 
|}
 
|}
  
<source lang="C">
+
<source lang="C">int sceIdStorageCreateLeafForDriver(SceUInt32 key);</source>
int sceIdStorageCreateLeafForDriver(int leafnum);
 
</source>
 
  
 
=== sceIdStorageDeleteLeafForDriver ===
 
=== sceIdStorageDeleteLeafForDriver ===
Line 53: Line 51:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x2C97AB36
+
| 0.931-3.60 || 0x2C97AB36
 
|}
 
|}
  
<source lang="C">
+
<source lang="C">int sceIdStorageDeleteLeafForDriver(SceUInt32 key);</source>
int sceIdStorageDeleteLeafForDriver(int leafnum);
 
</source>
 
  
 
=== sceIdStorageEnumIdForDriver ===
 
=== sceIdStorageEnumIdForDriver ===
Line 65: Line 61:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x31E08AFB
+
| 0.931-3.60 || 0x31E08AFB
 
|}
 
|}
  
<source lang="C">
+
Locks then unlocks the IDStorage enumerator mutex.
int sceIdStorageEnumIdForDriver(void);
+
 
</source>
+
Returns 0 on success.
 +
 
 +
<source lang="C">int sceIdStorageEnumIdForDriver(void);</source>
  
=== sceIdStorageFlushForDriver ===
+
=== sceIdStorageGetFreeLeavesForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x3AD32523
+
| 0.931-3.60 || 0x37833CB8
 
|}
 
|}
  
<source lang="C">
+
<source lang="C">int sceIdStorageGetFreeLeavesForDriver(void);</source>
int sceIdStorageFlushForDriver(void);
 
</source>
 
  
=== sceIdStorageFormatForDriver ===
+
=== sceIdStorageGetLeafSizeForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x958089DB
+
| 0.931-3.60 || 0xEB830733
 
|}
 
|}
  
<source lang="C">
+
<source lang="C">SceSize sceIdStorageGetLeafSizeForDriver(void);</source>
int sceIdStorageFormatForDriver(void);
 
</source>
 
  
=== sceIdStorageGetFreeLeavesForDriver ===
+
=== sceIdStorageLookupForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x37833CB8
+
| 0.931-3.60 || 0x6FE062D1
 
|}
 
|}
 +
 +
Retrieves the value associated with a key.
 +
 +
Returns 0x80230000 if offset + size > 512, 0x80230001 if key > 0xFFEF, 0x80230003 if IDStorage is not formatted, 0x80230005 for enumerator issue.
  
 
<source lang="C">
 
<source lang="C">
int sceIdStorageGetFreeLeavesForDriver(void);
+
// key - idstorage key
 +
// offset - offset within the 512 byte leaf
 +
// buf - buffer with enough storage
 +
// len - amount of data to retrieve (offset + len must be <= 512 bytes)
 +
int sceIdStorageLookupForDriver(SceUInt32 key, SceUInt32 offset, void *buf, SceSize size);
 
</source>
 
</source>
  
=== sceIdStorageGetLeafSizeForDriver ===
+
=== sceIdStorageReadLeafForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xEB830733
+
| 0.931-3.60 || 0xEB00C509
 
|}
 
|}
 +
 +
Reads the whole 512 byte container for the idstorage key.
  
 
<source lang="C">
 
<source lang="C">
SceSize sceIdStorageGetLeafSizeForDriver(void);
+
// key - idstorage key
 +
// buf - buffer with at last 512 bytes of storage
 +
int sceIdStorageReadLeafForDriver(SceUInt32 key, void *buf);
 
</source>
 
</source>
  
=== sceIdStorageIsDirtyForDriver ===
+
=== sceIdStorageWriteLeafForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xB9069BAD
+
| 0.931-3.60 || 0x1FA4D135
 
|}
 
|}
 +
 +
Writes 512-bytes to the idstorage key.
 +
 +
Returns 0xffffffff if IDStorage is read-only, 0x80230003 if IDStorage is not formatted, 0x80230001 if key > 0xFFEF, 0x80230005 for enumerator issue.
  
 
<source lang="C">
 
<source lang="C">
uint8_t sceIdStorageIsDirtyForDriver(void);
+
// key - idstorage key
 +
// buf - buffer of at least 512 bytes
 +
int sceIdStorageWriteLeafForDriver(SceUInt32 key, const void *buf);
 
</source>
 
</source>
  
=== sceIdStorageIsFormattedForDriver ===
+
=== sceIdStorageFlushForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xFEFA40C2
+
| 0.931-3.60 || 0x3AD32523
 
|}
 
|}
  
<source lang="C">
+
Finalizes a write.
uint8_t sceIdStorageIsFormattedForDriver(void);
+
 
</source>
+
<source lang="C">int sceIdStorageFlushForDriver(void);</source>
  
=== sceIdStorageIsReadOnlyForDriver ===
+
=== sceIdStorageIsFormattedForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x2D633688
+
| 0.931-3.60 || 0xFEFA40C2
 
|}
 
|}
  
<source lang="C">
+
<source lang="C">char sceIdStorageIsFormattedForDriver(void);</source>
uint8_t sceIdStorageIsReadOnlyForDriver(void);
 
</source>
 
  
=== sceIdStorageLookupForDriver ===
+
=== sceIdStorageIsDirtyForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x6FE062D1
+
| 0.931-3.60 || 0xB9069BAD
 
|}
 
|}
  
<source lang="C">
+
<source lang="C">char sceIdStorageIsDirtyForDriver(void);</source>
int sceIdStorageLookupForDriver(int leafnum, int a2, int *a3, int a4);
 
</source>
 
  
=== sceIdStorageReadLeafForDriver ===
+
=== sceIdStorageIsReadOnlyForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xEB00C509
+
| 0.931-3.60 || 0x2D633688
 
|}
 
|}
  
<source lang="C">
+
Checks idstorage for readonly status.
int sceIdStorageReadLeafForDriver(int leafnum, void *data);
+
 
</source>
+
<source lang="C">char sceIdStorageIsReadOnlyForDriver(void);</source>
  
=== sceIdStorageRestartForDriver ===
+
=== sceIdStorageFormatForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 0.931-3.60 || 0x60B647A5
+
| 0.931-3.60 || 0x958089DB
 
|}
 
|}
  
 
<source lang="C">
 
<source lang="C">
 
// Returns 0 on success, 0x80230000 if PSVita is not in manufacturing mode.
 
// Returns 0 on success, 0x80230000 if PSVita is not in manufacturing mode.
// flush: se to true to call sceIdStorageFlushForDriver
+
int sceIdStorageFormatForDriver(void);
int sceIdStorageRestartForDriver(SceBool flush);
 
 
</source>
 
</source>
  
Line 199: Line 206:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0xF4BCB3EE
+
| 0.931-3.60 || 0xF4BCB3EE
 
|}
 
|}
  
 
<source lang="C">
 
<source lang="C">
 +
// Returns 0 on success, 0x80230000 if PSVita is not in manufacturing mode.
 
int sceIdStorageUnformatForDriver(void);
 
int sceIdStorageUnformatForDriver(void);
 
</source>
 
</source>
Line 211: Line 219:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x683AAC10
+
| 0.931-3.60 || 0x683AAC10
 
|}
 
|}
  
 
<source lang="C">
 
<source lang="C">
int sceIdStorageUpdateForDriver(int a1, int a2, int a3, int a4);
+
// Returns 0 on success.
 +
// Returns 0x80230000 if PSVita is not in manufacturing mode, 0xffffffff if IDStorage is read-only.
 +
// Returns 0x80230000 if offset + size > 512, 0x80230001 if key > 0xFFEF.
 +
// Returns 0x80230003 if IDStorage is not formatted, 0x80230005 for enumerator issue.
 +
// key - idstorage key
 +
// offset - offset within the 512 byte leaf
 +
// buf - buffer with enough storage
 +
// size - amount of data to write (offset + size must be <= 512 bytes)
 +
int sceIdStorageUpdateForDriver(SceUInt32 key, SceUInt32 offset, void *buf, SceSize size);
 
</source>
 
</source>
  
=== sceIdStorageWriteLeafForDriver ===
+
=== sceIdStorageRestartForDriver ===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 3.60 || 0x1FA4D135
+
| 0.931-3.60 || 0x60B647A5
 
|}
 
|}
  
 
<source lang="C">
 
<source lang="C">
int sceIdStorageWriteLeafForDriver(int leafnum, const void *data);
+
// Returns 0 on success.
 +
// Returns 0x80230000 if PSVita is not in manufacturing mode.
 +
// flush: set to true to call sceIdStorageFlushForDriver
 +
int sceIdStorageRestartForDriver(SceBool flush);
 
</source>
 
</source>
 +
  
 
[[Category:Modules]]
 
[[Category:Modules]]
 
[[Category:Kernel]]
 
[[Category:Kernel]]

Revision as of 12:02, 29 January 2020

Module

Known NIDs

Version Name World Privilege NID
0.931-3.60 SceIdStorage Non-secure Kernel ?

Libraries

Known NIDs

Version Name World Visibility NID
0.931-3.60 SceIdStorageForDriver Non-secure Kernel 0xE1AC6D7C

SceIdStorageForDriver

Reference: [1]

sceIdStorageCreateAtomicLeavesForDriver

Version NID
0.931-3.60 0x99ACCB71
int sceIdStorageCreateAtomicLeavesForDriver(int a1, int a2);

sceIdStorageCreateLeafForDriver

Version NID
0.931-3.60 0x08A471A6
int sceIdStorageCreateLeafForDriver(SceUInt32 key);

sceIdStorageDeleteLeafForDriver

Version NID
0.931-3.60 0x2C97AB36
int sceIdStorageDeleteLeafForDriver(SceUInt32 key);

sceIdStorageEnumIdForDriver

Version NID
0.931-3.60 0x31E08AFB

Locks then unlocks the IDStorage enumerator mutex.

Returns 0 on success.

int sceIdStorageEnumIdForDriver(void);

sceIdStorageGetFreeLeavesForDriver

Version NID
0.931-3.60 0x37833CB8
int sceIdStorageGetFreeLeavesForDriver(void);

sceIdStorageGetLeafSizeForDriver

Version NID
0.931-3.60 0xEB830733
SceSize sceIdStorageGetLeafSizeForDriver(void);

sceIdStorageLookupForDriver

Version NID
0.931-3.60 0x6FE062D1

Retrieves the value associated with a key.

Returns 0x80230000 if offset + size > 512, 0x80230001 if key > 0xFFEF, 0x80230003 if IDStorage is not formatted, 0x80230005 for enumerator issue.

// key - idstorage key
// offset - offset within the 512 byte leaf
// buf - buffer with enough storage
// len - amount of data to retrieve (offset + len must be <= 512 bytes)
int sceIdStorageLookupForDriver(SceUInt32 key, SceUInt32 offset, void *buf, SceSize size);

sceIdStorageReadLeafForDriver

Version NID
0.931-3.60 0xEB00C509

Reads the whole 512 byte container for the idstorage key.

// key - idstorage key
// buf - buffer with at last 512 bytes of storage
int sceIdStorageReadLeafForDriver(SceUInt32 key, void *buf);

sceIdStorageWriteLeafForDriver

Version NID
0.931-3.60 0x1FA4D135

Writes 512-bytes to the idstorage key.

Returns 0xffffffff if IDStorage is read-only, 0x80230003 if IDStorage is not formatted, 0x80230001 if key > 0xFFEF, 0x80230005 for enumerator issue.

// key - idstorage key
// buf - buffer of at least 512 bytes
int sceIdStorageWriteLeafForDriver(SceUInt32 key, const void *buf);

sceIdStorageFlushForDriver

Version NID
0.931-3.60 0x3AD32523

Finalizes a write.

int sceIdStorageFlushForDriver(void);

sceIdStorageIsFormattedForDriver

Version NID
0.931-3.60 0xFEFA40C2
char sceIdStorageIsFormattedForDriver(void);

sceIdStorageIsDirtyForDriver

Version NID
0.931-3.60 0xB9069BAD
char sceIdStorageIsDirtyForDriver(void);

sceIdStorageIsReadOnlyForDriver

Version NID
0.931-3.60 0x2D633688

Checks idstorage for readonly status.

char sceIdStorageIsReadOnlyForDriver(void);

sceIdStorageFormatForDriver

Version NID
0.931-3.60 0x958089DB
// Returns 0 on success, 0x80230000 if PSVita is not in manufacturing mode.
int sceIdStorageFormatForDriver(void);

sceIdStorageUnformatForDriver

Version NID
0.931-3.60 0xF4BCB3EE
// Returns 0 on success, 0x80230000 if PSVita is not in manufacturing mode.
int sceIdStorageUnformatForDriver(void);

sceIdStorageUpdateForDriver

Version NID
0.931-3.60 0x683AAC10
// Returns 0 on success.
// Returns 0x80230000 if PSVita is not in manufacturing mode, 0xffffffff if IDStorage is read-only.
// Returns 0x80230000 if offset + size > 512, 0x80230001 if key > 0xFFEF.
// Returns 0x80230003 if IDStorage is not formatted, 0x80230005 for enumerator issue.
// key - idstorage key
// offset - offset within the 512 byte leaf
// buf - buffer with enough storage
// size - amount of data to write (offset + size must be <= 512 bytes)
int sceIdStorageUpdateForDriver(SceUInt32 key, SceUInt32 offset, void *buf, SceSize size);

sceIdStorageRestartForDriver

Version NID
0.931-3.60 0x60B647A5
// Returns 0 on success.
// Returns 0x80230000 if PSVita is not in manufacturing mode.
// flush: set to true to call sceIdStorageFlushForDriver
int sceIdStorageRestartForDriver(SceBool flush);