Module
SceSdstor module does not export any functions exсept module_start.
This module is responsible for initializing all storage devices. This includes:
Known NIDs
Version |
Name |
World |
Privilege |
NID
|
1.69 |
SceSdstor |
Non-secure |
Kernel |
0x5804A397
|
3.60 |
SceSdstor |
? |
Kernel |
0xD7FBAE7C
|
Libraries
Known NIDs
Version |
Name |
World |
Visibility |
NID
|
Types
typedef struct partition_entry //size is 0x1C
{
uint32_t partitionOffset;
uint32_t partitionSize;
sdstor_mbr_ctx* ctx;
void* partitionEntryPtr; //pointer to partition entry in MBR
char* numericName; //null terminated name (000, 001, ...)
unt8_t flags1;
unt8_t flags2;
uint16_t unk1;
uint32_t unk2;
}partition_entry;
typedef struct sdstor_mbr_ctx //size is 0x238
{
uint8_t unk_0[0x40];
uint32_t unk_40;
sd_stor_device* unk_44;
uint32_t unk_48;
uint32_t unk_4C;
uint32_t unk_50;
void* mbr_ptr; //pointer to corresponding MBR record in array (offset 0x40)
partition_entry partitions[17];
uint16_t unk_234;
uint16_t unk_236;
}sdstor_mbr_ctx;
//named after "SceSdStorDevice" mutex
typedef struct sd_stor_device //size is 0x54
{
int unk_0;
int unk_4;
int unk_8;
int unk_C;
int unk_10;
int unk_14;
int unk_18;
int unk_1C;
int unk_20;
int unk_24;
int unk_28;
int unk_2C;
int unk_30;
int unk_34;
int unk_38;
int unk_3C;
char index1; // (0x00, 0x01, 0xFF, 0xFF, 0x03)
char index2; // (0x00, 0x00, 0x02, 0x03, 0x01)
char unk_42;
char unk_43;
int unk_44;
int unk_48;
int unk_4C;
void* devCtx; //pointer to dev ctx (sd_context_part_mmc*) or zero
}sd_stor_device;
Data segment layout
Address |
Size |
Description
|
0x0000 |
0x40 |
unknown
|
0x0040 |
0x200 |
MBR of eMMC
|
0x0240 |
0x200 |
MBR of Game gard
|
0x0440 |
0x200 |
MBR of Memory card
|
0x0640 |
0x200 |
unknown (most likely for MBR since there are 5 elements in all arrays)
|
0x0840 |
0x200 |
unknown (most likely for MBR since there are 5 elements in all arrays)
|
0x0A40 |
0x238 |
sdstor_mbr_ctx element 0
|
0x0C78 |
0x238 |
sdstor_mbr_ctx element 1
|
0x0EB0 |
0x238 |
sdstor_mbr_ctx element 2
|
0x10E8 |
0x238 |
sdstor_mbr_ctx element 3
|
0x1320 |
0x238 |
sdstor_mbr_ctx element 4
|
0x1558 |
0x54 |
sd_stor_device element 0
|
0x15AC |
0x54 |
sd_stor_device element 1
|
0x1600 |
0x54 |
sd_stor_device element 2
|
0x1654 |
0x54 |
sd_stor_device element 3
|
0x16A8 |
0x54 |
sd_stor_device element 4
|
0x16FC |
0x20 |
vfs_add_data sdstor_dev_fs node
|
0x171C |
0x04 |
SceUID of mempool "SceSdStorVfs" of size 0x2000
|
0x1720 |
0x200 |
unknown (gcd-lp-act-mediaid ?)
|
0x1920 |
0x200 |
unknown (mcd-lp-act-mediaid ?)
|
0x1B20 |
0xC8 |
array of 5 structures of size 0x28
|
0x1BE8 |
0x8 |
suspend_register_callback opt
|
0x1BF0 |
0x3C |
array of 5 structures of size 0xC
|
0x1C2C |
0x8C |
array of 5 structures of size 0x1C
|
0x1CB8 |
0x8 |
unknown
|
0x1CC0 |
0x200 |
MBR of Game gard
|
SceSdstor
module_start
Version |
NID
|
3.60 |
0x935cd196
|
int module_start();