SceExfatfs

From Vita Development Wiki
Jump to navigation Jump to search

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 0x18 unknown
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;