Difference between revisions of "SceExfatfs"

From Vita Development Wiki
Jump to navigation Jump to search
 
(51 intermediate revisions by 3 users not shown)
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.
 +
 
== Module ==
 
== Module ==
  
=== Known NIDs ===
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Version !! Name !! World !! Privilege !! NID
+
! Version !! World !! Privilege
 
|-
 
|-
| 1.69 || SceExfatfs || Non-secure || Kernel || 0x228933E8
+
| 1.69-3.740.011 || Non-secure || Kernel
 
|}
 
|}
  
 
== Libraries ==
 
== Libraries ==
  
=== Known NIDs ===
+
This module doesn't have library.
 
 
{| class="wikitable"
 
|-
 
! Version !! Name !! World !! Visibility !! NID
 
|}
 
  
 
== Data segment layout ==
 
== Data segment layout ==
Line 24: Line 20:
 
! Address !! Size !! Description
 
! Address !! Size !! Description
 
|-
 
|-
| 0x0000 || 0xC || unknown
+
| 0x0000 || 4 || mutex to lock mempool
 +
|-
 +
| 0x0004 || 4 || SceUID mempool <code>SceExfatfsCommon</code> of size 0x7F000
 +
|-
 +
| 0x0008 || 4 || unknown
 
|-
 
|-
 
| 0x000C || 0x20 || [[SceIofilemgr#sceVfsAddVfs|vfs_add_data]] <code>exfat</code> node
 
| 0x000C || 0x20 || [[SceIofilemgr#sceVfsAddVfs|vfs_add_data]] <code>exfat</code> node
 
|-
 
|-
| 0x002C || 0x3F24 || unknown
+
| 0x002C || 4 || unknown
 
|-
 
|-
| 0x3F50 || 0x200 || fat16 MBR
+
| 0x0030 || 4 * 8(0x20) || Partition drive strings pointers. <code>os0:</code> etc.
 
|-
 
|-
| 0x4150 || 0x200 || fat16 MBR
+
| 0x0050 || 0x10 || unknown
 
|-
 
|-
| 0x4350 || 0x200 || fat16 MBR
+
| 0x0060 || 4 || SceFatfsCPTable memblock base.
 
|-
 
|-
| 0x4550 || 0x200 || fat16 MBR
+
| 0x0064 || 4 || SceFatfsCPTable memblock guid.
 
|-
 
|-
| 0x4750 || 0x200 || fat16 MBR
+
| 0x0068 || 0x10 || array of void* pointers (pools)
 
|-
 
|-
| 0x4950 || 0x200 || fat16 MBR
+
| 0x0078 || 4 || some counter.
 
|-
 
|-
| 0x4B50 || 0x200 || exfat MBR
+
| 0x007C || 4 || unused in order to next member align.
 
|-
 
|-
| 0x4D50 || 0x200 || exfat MBR
+
| 0x0080 || 0x430 * 15(0x3ED0) || 15 elements of type <code>exfat_ctx</code>
 
|-
 
|-
| 0x4F50 || 0x200 || exfat MBR
+
| 0x3F50 || 0x200 * 15(0x1E00) || Storage MBR
 
|-
 
|-
| 0x5150 || 0x200 || exfat MBR
+
| 0x5D50 || 4 || pointer
 
|-
 
|-
| 0x5150 || - || unknown
+
| 0x5D54 || 4 || unknown
 +
|-
 +
| 0x5D58 || 0x290*0x400(0xA4000) || 0x400 elements of type <code>file_entry</code>
 +
|-
 +
| 0xA9D58 || 0x290*0xC00(0x1EC000) || 0xC00 elements of type <code>file_entry</code>. 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 || <code>SceExfatfsSharedResource</code> fast mutex
 +
|-
 +
| 0x295DE8 || 0x40 || unknown
 
|-
 
|-
 
|}
 
|}
  
 +
== Types ==
 +
 +
See [https://github.com/vitasdk/vita-headers/blob/master/include/psp2kern/internal/exfatfs.h here (vita-headers)]
 +
 +
[[Category:ARM]]
 +
[[Category:Kernel]]
 
[[Category:Modules]]
 
[[Category:Modules]]
[[Category:Kernel]]
 

Latest revision as of 10:49, 12 November 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 module doesn't have library.

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

See here (vita-headers)