SceExfatfs: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
CelesteBlue (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
SceExfatfs handles FAT12/UVFAT12/FAT16/FAT32/exFAT file system parsing. It also supports TFAT32 or TexFAT which are transaction safe equivalents of FAT32 and exFAT. | |||
SceExfatfs handles FAT12/UVFAT12/FAT16/FAT32/exFAT file system parsing. | |||
It also | |||
== Module == | == Module == | ||
Line 10: | Line 7: | ||
! Version !! World !! Privilege | ! Version !! World !! Privilege | ||
|- | |- | ||
| 1.69-3. | | 1.69-3.740.011 || Non-secure || Kernel | ||
|} | |} | ||
== Libraries == | == Libraries == | ||
This section has to be wikified. | |||
=== Known NIDs === | === Known NIDs === | ||
Line 88: | Line 87: | ||
#define SCE_EXFATFS_DEVCTL_CREATT_WDIR (2) | #define SCE_EXFATFS_DEVCTL_CREATT_WDIR (2) | ||
typedef struct exfat_ctx //size is 0x430 bytes | typedef struct exfat_ctx { //size is 0x430 bytes | ||
uint32_t unk_0; | uint32_t unk_0; | ||
uint32_t unk_4; | uint32_t unk_4; | ||
Line 110: | Line 108: | ||
char data2[0x4C]; | char data2[0x4C]; | ||
} exfat_ctx; | } exfat_ctx; | ||
typedef struct file_entry //size is 0x290 bytes | typedef struct file_entry { //size is 0x290 bytes | ||
uint32_t unk_0; | uint32_t unk_0; | ||
uint32_t unk_4; | uint32_t unk_4; | ||
Line 122: | Line 118: | ||
char data1[0x80]; | char data1[0x80]; | ||
}file_entry; | }file_entry; | ||
</source> | |||
[[Category:Modules]] | [[Category:Modules]] | ||
[[Category:Kernel]] | [[Category:Kernel]] |
Revision as of 18:10, 27 January 2023
SceExfatfs handles FAT12/UVFAT12/FAT16/FAT32/exFAT file system parsing. It also supports TFAT32 or TexFAT which are transaction safe equivalents of FAT32 and exFAT.
Module
Version | World | Privilege |
---|---|---|
1.69-3.740.011 | Non-secure | Kernel |
Libraries
This section has to be wikified.
Known NIDs
Version | Name | World | Visibility | NID |
---|
Data segment layout
Address | Size | Description |
---|---|---|
0x0000 | 4 | mutex to lock mempool |
0x0004 | 4 | SceUID mempool SceExfatfsCommon of size 0x7F000
|
0x0008 | 4 | unknown |
0x000C | 0x20 | vfs_add_data exfat node
|
0x002C | 4 | unknown |
0x0030 | 4 * 8(0x20) | Partition drive strings pointers. os0: etc.
|
0x0050 | 0x10 | unknown |
0x0060 | 4 | SceFatfsCPTable memblock base. |
0x0064 | 4 | SceFatfsCPTable memblock guid. |
0x0068 | 0x10 | array of void* pointers (pools) |
0x0078 | 4 | some counter. |
0x007C | 4 | unused in order to next member align. |
0x0080 | 0x430 * 15(0x3ED0) | 15 elements of type exfat_ctx
|
0x3F50 | 0x200 * 15(0x1E00) | Storage MBR |
0x5D50 | 4 | pointer |
0x5D54 | 4 | unknown |
0x5D58 | 0x290*0x400(0xA4000) | 0x400 elements of type file_entry
|
0xA9D58 | 0x290*0xC00(0x1EC000) | 0xC00 elements of type file_entry . maybe related to ReserveUnusedFd.
|
0x295D58 | 0x78 | unknown |
0x295DD0 | 4 | All file_entry elements number? |
0x295DD4 | 4 | Available SceExfatfs_data_0x5D50 elements number |
0x295DD8 | 4 | Related to ReserveUnusedFd number of SceExfatfs_data_0x5D50 elements. 0x200 in many case. |
0x295DDC | 4 | Related to ReserveUnusedFd number of SceExfatfs_data_0x5D50 elements. 0x100 in many case. |
0x295DE0 | 4 | unknown |
0x295DE4 | 4 | SceExfatfsSharedResource fast mutex
|
0x295DE8 | 0x40 | unknown |
Types
#define SCE_EXFATFS_DEVCTL_CREATT_WDIR (2) 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;