SceExfatfs: Difference between revisions
Jump to navigation
Jump to search
Line 35: | Line 35: | ||
| 0x0030 || 4 * 8(0x20) || Partition drive strings pointers. <code>os0:</code> etc. | | 0x0030 || 4 * 8(0x20) || Partition drive strings pointers. <code>os0:</code> etc. | ||
|- | |- | ||
| 0x0050 || | | 0x0050 || 0x10 || unknown | ||
|- | |||
| 0x0060 || 0x4 || SceFatfsCPTable memblock base. | |||
|- | |||
| 0x0064 || 0x4 || SceFatfsCPTable memblock guid. | |||
|- | |- | ||
| 0x0068 || 0x10 || array of void* pointers (pools) | | 0x0068 || 0x10 || array of void* pointers (pools) |
Revision as of 10:52, 22 February 2021
Module
Version | World | Privilege |
---|---|---|
1.69-3.73 | Non-secure | Kernel |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|
Data segment layout
Address | Size | Description |
---|---|---|
0x0000 | 0x4 | mutex to lock mempool |
0x0004 | 0x4 | SceUID mempool SceExfatfsCommon of size 0x7F000
|
0x0008 | 0x4 | unknown |
0x000C | 0x20 | vfs_add_data exfat node
|
0x002C | 0x4 | unknown |
0x0030 | 4 * 8(0x20) | Partition drive strings pointers. os0: etc.
|
0x0050 | 0x10 | unknown |
0x0060 | 0x4 | SceFatfsCPTable memblock base. |
0x0064 | 0x4 | SceFatfsCPTable memblock guid. |
0x0068 | 0x10 | array of void* pointers (pools) |
0x0078 | 0x4 | some counter. |
0x007C | 0x4 | unused in order to next member align. |
0x0080 | 0x430 * 15(0x3ED0) | 15 elements of type exfat_ctx
|
0x3F50 | 0x200 * 15(0x1E00) | Storage MBR |
0x5D50 | 0x290*0x400(0xA4000) | 0x400 elements of type file_entry
|
0xA9D50 | 0x1EC080 | possibly A buffer to parse the file system |
0x295DD0 | 0x4 | unknown |
0x295DD4 | 0x4 | Available SceExfatfs_data_0x5D50 elements number |
0x295DD8 | 0xC | unknown |
0x295DE4 | 0x4 | SceExfatfsSharedResource fast mutex
|
0x295DE8 | 0x40 | unknown |
Types
typedef struct exfat_ctx //size is 0x430 bytes
{
uint32_t unk_0;
uint32_t unk_4;
uint32_t unk_8;
uint32_t unk_C;
uint32_t unk_10;
uint32_t unk_14;
file_entry* unk_18;
uint32_t unk_1C;
uint32_t unk_20;
uint32_t unk_24;
uint32_t unk_28;
uint32_t unk_2C;
char data1[0x3B0];
uint32_t fast_mutex_SceExfatfsRoot; //offset 0x3E0
char data2[0x4C];
} exfat_ctx;
typedef struct file_entry //size is 0x290 bytes
{
uint32_t unk_0;
uint32_t unk_4;
char path[0x208]; //in unicode
char data1[0x80];
}file_entry;