SceExfatfs: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
Line 1: Line 1:
== Module ==
== Module ==


=== Known NIDs ===
{| class="wikitable"
{| class="wikitable"
|-
|-

Revision as of 01:15, 30 September 2020

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 0x3C unknown
0x0068 0x10 array of void* pointers (pools)
0x0078 0x4 some flag
0x007C 0x4 unknown
0x0080 0x29E0 10 elements of type exfat_ctx
0x2A60 0x14F0 unknown
0x3F50 0x200 fat16 MBR
0x4150 0x200 fat16 MBR
0x4350 0x200 fat16 MBR
0x4550 0x200 fat16 MBR
0x4750 0x200 fat16 MBR
0x4950 0x200 fat16 MBR
0x4B50 0x200 exfat MBR
0x4D50 0x200 exfat MBR
0x4F50 0x200 exfat MBR
0x5150 0x200 exfat MBR
0x5350 0xA00 unknown (zeros)
0x5D50 0x47450 445 elements of type file_entry
0x4D1A0 0x5CBB0 579 elements of size 0x290
0xA9D50 0x1EC080 possibly A buffer to parse the file system
0x295DD0 0x14 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;