SceIdStorage: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
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);