SceSdstor: Difference between revisions
Jump to navigation
Jump to search
(→Types) |
(→Types) |
||
Line 91: | Line 91: | ||
int unk_4C; | int unk_4C; | ||
void* devCtx; //pointer to dev ctx (sd_context_part_mmc*) or zero | |||
}sd_stor_device; | }sd_stor_device; | ||
</source> | </source> |
Revision as of 16:42, 22 February 2017
Module
SceSdstor module does not export any functions exсept module_start.
This module is responsible for initializing all storage devices. This includes:
- eMMC
- Game gard
- Memory card
- Usb Mass Storage (unknown SceUsbMassForDriver)
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]; uint32_t unk_234; }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 | 0xB4 | array of 5 structures of size 0x24 |
0x1BD4 | 0x1C | unknown |
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();