Difference between revisions of "SceFios2Kernel"

From Vita Development Wiki
Jump to navigation Jump to search
(37 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
FIOS sits on top of filesystem and provides the following functionality:
 +
 +
* Schedule i/o requests - queue i/o operations, prioritize i/o operations, delayed (scheduled for specific time) async i/o operations, parallelized i/o operations.
 +
* Overlays - remap i/o operations to different location. Good example is patches or localization.
 +
* Caching - caching layer for i/o operations. i/o operations are split into chunks. Chunks can be cached in RAM. Performance can increase.
 +
* Dearchiving - transparent filter for i/o operations that dearchives data. Good usage would be for psarc files.
 +
 
== Module ==
 
== Module ==
  
=== Known NIDs ===
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Version !! Name !! World !! Privilege !! NID
+
! Version !! World !! Privilege
 
|-
 
|-
| 1.69 || SceFios2Kernel || Non-secure || Kernel || 0x26E15F8F
+
| 1.69-3.60 || Non-secure || Kernel
|-
 
| 3.60 || SceFios2Kernel || ? || Kernel || 0x10ECF2D0
 
 
|}
 
|}
  
Line 19: Line 23:
 
! Version !! Name !! World !! Visibility !! NID
 
! Version !! Name !! World !! Visibility !! NID
 
|-
 
|-
| 1.69 || [[SceFios2Kernel#SceFios2KernelForDriver|SceFios2KernelForDriver]] || Non-secure || Kernel || 0x54D6B9EB
+
| 1.69-3.60 || [[SceFios2Kernel#SceFios2KernelForDriver|SceFios2KernelForDriver]] || Non-secure || Kernel || 0x54D6B9EB
 
|-
 
|-
| 3.60 || [[SceFios2Kernel#SceFios2KernelForDriver|SceFios2KernelForDriver]] || ? || Kernel || 0x54D6B9EB
+
| 1.69-3.60 || [[SceFios2Kernel#SceFios2Kernel|SceFios2Kernel]] || Non-secure || User || 0x8757B742
 
|-
 
|-
| 1.69 || [[SceFios2Kernel#SceFios2Kernel|SceFios2Kernel]] || Non-secure || User || 0x8757B742
+
| 3.60 || [[SceFios2Kernel#SceFios2Kernel02|SceFios2Kernel02]] || Non-secure || ? || 0xE83E40A6
|-
 
| 3.60 || [[SceFios2Kernel#SceFios2Kernel|SceFios2Kernel]] || ? || User || 0x8757B742
 
|-
 
| 3.60 || [[SceFios2Kernel#SceFios2Kernel02|SceFios2Kernel02]] || ? || ? || 0xE83E40A6
 
 
|}
 
|}
 +
 +
== Types ==
 +
 +
<source lang="C">
 +
typedef int32_t SceFiosOverlayID;
 +
 +
typedef struct SceFiosOverlay {
 +
  uint8_t type;
 +
  uint8_t order;
 +
  uint16_t dst_len;
 +
  uint16_t src_len;
 +
  uint16_t unk2;
 +
  SceUID pid;
 +
  SceFiosOverlayID id;
 +
  char dst[292];
 +
  char src[292]; // src path replaces dst path based on type policy
 +
} SceFiosOverlay;
 +
</source>
  
 
== SceFios2KernelForDriver ==
 
== SceFios2KernelForDriver ==
Line 40: Line 58:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayAdd </code>
+
derived from <code>_sceFiosKernelOverlayAdd</code>
  
 
=== sceFiosKernelOverlayAddForProcessForDriver ===
 
=== sceFiosKernelOverlayAddForProcessForDriver ===
Line 50: Line 68:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayAddForProcess </code>
+
derived from <code>_sceFiosKernelOverlayAddForProcess</code>
  
<source lang="c">int sceFiosKernelOverlayAddForProcessForDriver(int unk0, int unk1, int unk2); </source>
+
<source lang="c">
 +
int sceFiosKernelOverlayAddForProcessForDriver(SceUID pid, SceFiosOverlay *overlay, SceFiosOverlayID *outID);  
 +
</source>
  
 
=== sceFiosKernelOverlayGetInfoForDriver ===
 
=== sceFiosKernelOverlayGetInfoForDriver ===
Line 62: Line 82:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayGetInfo </code>
+
derived from <code>_sceFiosKernelOverlayGetInfo</code>
  
 
=== sceFiosKernelOverlayGetInfoForProcessForDriver ===
 
=== sceFiosKernelOverlayGetInfoForProcessForDriver ===
Line 72: Line 92:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayGetInfoForProcess </code>
+
derived from <code>_sceFiosKernelOverlayGetInfoForProcess</code>
 +
 
 +
<source lang="c">
 +
int sceFiosKernelOverlayGetInfoForProcessForDriver(SceUID pid, SceFiosOverlayID id, SceFiosOverlay *overla);
 +
</source>
  
 
=== sceFiosKernelOverlayGetListForDriver ===
 
=== sceFiosKernelOverlayGetListForDriver ===
Line 82: Line 106:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayGetList </code>
+
derived from <code>_sceFiosKernelOverlayGetList</code>
 +
 
 +
<source lang="c">
 +
int sceFiosKernelOverlayGetListForDriver(SceUID pid, char loOrderFilter, char hiOrderFilter, SceFiosOverlayID *outIDs, size_t maxIDs, size_t *actualIDs);
 +
</source>
  
 
=== sceFiosKernelOverlayGetRecommendedSchedulerForDriver ===
 
=== sceFiosKernelOverlayGetRecommendedSchedulerForDriver ===
Line 92: Line 120:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayGetRecommendedScheduler </code>
+
derived from <code>_sceFiosKernelOverlayGetRecommendedScheduler</code>
 +
 
 +
<source lang="c">
 +
int sceFiosKernelOverlayGetRecommendedSchedulerForDriver(int some_index, char *path);
 +
</source>
  
 
=== sceFiosKernelOverlayModifyForDriver ===
 
=== sceFiosKernelOverlayModifyForDriver ===
Line 102: Line 134:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayModify </code>
+
derived from <code>_sceFiosKernelOverlayModify</code>
  
 
=== sceFiosKernelOverlayModifyForProcessForDriver ===
 
=== sceFiosKernelOverlayModifyForProcessForDriver ===
Line 112: Line 144:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayModifyForProcess </code>
+
derived from <code>_sceFiosKernelOverlayModifyForProcess</code>
 +
 
 +
<source lang="c">
 +
int sceFiosKernelOverlayModifyForProcessForDriver(SceUID pid, SceFiosOverlayID id, const SceFiosOverlay *newValue);
 +
</source>
  
 
=== sceFiosKernelOverlayRemoveForDriver ===
 
=== sceFiosKernelOverlayRemoveForDriver ===
Line 122: Line 158:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayRemove </code>
+
derived from <code>_sceFiosKernelOverlayRemove</code>
  
 
=== sceFiosKernelOverlayRemoveForProcessForDriver ===
 
=== sceFiosKernelOverlayRemoveForProcessForDriver ===
Line 132: Line 168:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayRemoveForProcess </code>
+
derived from <code>_sceFiosKernelOverlayRemoveForProcess</code>
  
<source lang="c">int sceFiosKernelOverlayRemoveForProcessForDriver(int unk0, int unk1); </source>
+
<source lang="c">
 +
int sceFiosKernelOverlayRemoveForProcessForDriver(SceUID pid, SceFiosOverlayID id);  
 +
</source>
  
 
=== sceFiosKernelOverlayResolveSyncForDriver ===
 
=== sceFiosKernelOverlayResolveSyncForDriver ===
Line 146: Line 184:
 
derived from <code>_sceFiosKernelOverlayResolveSync</code>
 
derived from <code>_sceFiosKernelOverlayResolveSync</code>
  
<source lang="c">int sceFiosKernelOverlayResolveSyncForDriver(SceUID pid, int resolveFlag, const char *pInPath, char *pOutPath, size_t maxPath);</source>
+
<source lang="c">
 +
int sceFiosKernelOverlayResolveSyncForDriver(SceUID pid, int resolveFlag, const char *inPath, char *outPath, size_t maxPath);
 +
</source>
  
 
=== sceFiosKernelOverlayResolveWithRangeSyncForDriver ===
 
=== sceFiosKernelOverlayResolveWithRangeSyncForDriver ===
Line 156: Line 196:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayResolveWithRangeSync </code>
+
derived from <code>_sceFiosKernelOverlayResolveWithRangeSync</code>
 +
 
 +
<source lang="c">
 +
int sceFiosKernelOverlayResolveWithRangeSyncForDriver(SceUID pid, int resolveFlag, const char *inPath, char *outPath, size_t maxPath, char loOrderFilter, char hiOrderFilter);
 +
</source>
  
 
=== sceFiosKernelOverlayThreadIsDisabledForDriver ===
 
=== sceFiosKernelOverlayThreadIsDisabledForDriver ===
Line 166: Line 210:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayThreadIsDisabled </code>
+
derived from <code>_sceFiosKernelOverlayThreadIsDisabled</code>
 +
 
 +
<source lang="c">
 +
int sceFiosKernelOverlayThreadIsDisabledForDriver();
 +
</source>
  
 
=== sceFiosKernelOverlayThreadSetDisabledForDriver ===
 
=== sceFiosKernelOverlayThreadSetDisabledForDriver ===
Line 176: Line 224:
 
|}
 
|}
  
derived from <code>_sceFiosKernelOverlayThreadSetDisabled </code>
+
derived from <code>_sceFiosKernelOverlayThreadSetDisabled</code>
 +
 
 +
<source lang="c">
 +
int sceFiosKernelOverlayThreadSetDisabledForDriver(int value);
 +
</source>
  
 
=== SceFios2KernelForDriver_unk_2649408B ===
 
=== SceFios2KernelForDriver_unk_2649408B ===
Line 233: Line 285:
 
| 3.60 || 0x990F46A5
 
| 3.60 || 0x990F46A5
 
|}
 
|}
 +
 +
Sync fd with param.
  
 
should map to one of six functions that return <code>0x80820000</code>
 
should map to one of six functions that return <code>0x80820000</code>
Line 245: Line 299:
 
| 3.60 || 0xDD7627EC
 
| 3.60 || 0xDD7627EC
 
|}
 
|}
 +
 +
Close dir fd and free param memory.
  
 
should map to one of six functions that return <code>0x80820000</code>
 
should map to one of six functions that return <code>0x80820000</code>
Line 260: Line 316:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayAddForProcess </code>
+
derived from <code> _sceFiosKernelOverlayAddForProcess</code>
 +
 
 +
<source lang="C">
 +
int sceFiosKernelOverlayAddForProcess02(SceUID pid, SceFiosOverlay *overlay, SceFiosOverlayID *outID);
 +
</source>
  
 
=== sceFiosKernelOverlayGetInfoForProcess02 ===
 
=== sceFiosKernelOverlayGetInfoForProcess02 ===
Line 270: Line 330:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayGetInfoForProcess </code>
+
derived from <code> _sceFiosKernelOverlayGetInfoForProcess</code>
 +
 
 +
<source lang="C">
 +
int sceFiosKernelOverlayGetInfoForProcess02(SceUID pid, SceFiosOverlayID id, SceFiosOverlay *overlay);
 +
</source>
  
 
=== sceFiosKernelOverlayGetList02 ===
 
=== sceFiosKernelOverlayGetList02 ===
Line 280: Line 344:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayGetList </code>
+
derived from <code> _sceFiosKernelOverlayGetList</code>
 +
 
 +
<source lang="C">
 +
typedef struct sceFiosKernelOverlayGetList02_opt { // size is 0x18
 +
  SceFiosOverlayID *outIDs;
 +
  size_t maxIDs;
 +
  size_t *actualIDs;
 +
  int buffer_size;
 +
  int reserved1;
 +
  int reserved2;
 +
} sceFiosKernelOverlayGetList02_opt;
 +
 
 +
int sceFiosKernelOverlayGetList02(SceUID pid, char loOrderFilter, char hiOrderFilter, sceFiosKernelOverlayGetList02_opt *opt);
 +
</source>
  
 
=== sceFiosKernelOverlayGetRecommendedScheduler02 ===
 
=== sceFiosKernelOverlayGetRecommendedScheduler02 ===
Line 290: Line 367:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayGetRecommendedScheduler </code>
+
derived from <code> _sceFiosKernelOverlayGetRecommendedScheduler</code>
 +
 
 +
<source lang="C">
 +
typedef struct sceFiosKernelOverlayGetRecommendedScheduler02_opt { // size is 8
 +
  int reserved1;
 +
  int reserved2;
 +
} sceFiosKernelOverlayGetRecommendedScheduler02_opt;
 +
 
 +
int sceFiosKernelOverlayGetRecommendedScheduler02(int some_index, char *path, sceFiosKernelOverlayGetRecommendedScheduler02_opt *opt);
 +
</source>
  
 
=== sceFiosKernelOverlayModifyForProcess02 ===
 
=== sceFiosKernelOverlayModifyForProcess02 ===
Line 300: Line 386:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayModifyForProcess </code>
+
derived from <code> _sceFiosKernelOverlayModifyForProcess</code>
 +
 
 +
<source lang="C">
 +
int sceFiosKernelOverlayModifyForProcess02(SceUID pid, SceFiosOverlayID id, const SceFiosOverlay *newValue);
 +
</source>
  
 
=== sceFiosKernelOverlayRemoveForProcess02 ===
 
=== sceFiosKernelOverlayRemoveForProcess02 ===
Line 310: Line 400:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayRemoveForProcess </code>
+
derived from <code> _sceFiosKernelOverlayRemoveForProcess</code>
 +
 
 +
<source lang="C">
 +
int sceFiosKernelOverlayRemoveForProcess02(SceUID pid, SceFiosOverlayID id);
 +
</source>
  
 
=== sceFiosKernelOverlayResolveSync02 ===
 
=== sceFiosKernelOverlayResolveSync02 ===
Line 320: Line 414:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayResolveSync </code>
+
derived from <code> _sceFiosKernelOverlayResolveSync</code>
 +
 
 +
<source lang="C">
 +
typedef struct sceFiosKernelOverlayResolveSync02_opt { // size is 0x18
 +
  char *outPath;
 +
  size_t maxPath;
 +
  int reserved1;
 +
  int reserved2;
 +
  int reserved3;
 +
  int reserved4;
 +
} sceFiosKernelOverlayResolveSync02_opt;
 +
 
 +
int sceFiosKernelOverlayResolveSync02(SceUID pid, int resolveFlag, const char *inPath, sceFiosKernelOverlayResolveSync02_opt *opt);
 +
</source>
  
 
=== sceFiosKernelOverlayResolveWithRangeSync02 ===
 
=== sceFiosKernelOverlayResolveWithRangeSync02 ===
Line 330: Line 437:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayResolveWithRangeSync </code>
+
derived from <code> _sceFiosKernelOverlayResolveWithRangeSync</code>
 +
 
 +
<source lang="C">
 +
typedef struct sceFiosKernelOverlayResolveWithRangeSync02_opt { // size is 0x1C
 +
  char *outPath;
 +
  size_t maxPath;
 +
  char loOrderFilter;
 +
  char hiOrderFilter;
 +
  char reserved1;
 +
  char reserved2;
 +
  int reserved3;
 +
  int reserved4;
 +
  int reserved5;
 +
  int reserved6;
 +
} sceFiosKernelOverlayResolveWithRangeSync02_opt;
 +
 
 +
int sceFiosKernelOverlayResolveWithRangeSync02(SceUID pid, int resolveFlag, const char *inPath, sceFiosKernelOverlayResolveWithRangeSync02_opt *opt);
 +
</source>
  
 
=== sceFiosKernelOverlayThreadIsDisabled02 ===
 
=== sceFiosKernelOverlayThreadIsDisabled02 ===
Line 340: Line 464:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayThreadIsDisabled </code>
+
derived from <code> _sceFiosKernelOverlayThreadIsDisabled</code>
 +
 
 +
<source lang="C">
 +
int sceFiosKernelOverlayThreadIsDisabled02(void);
 +
</source>
  
 
=== sceFiosKernelOverlayThreadSetDisabled02 ===
 
=== sceFiosKernelOverlayThreadSetDisabled02 ===
Line 350: Line 478:
 
|}
 
|}
  
derived from <code> _sceFiosKernelOverlayThreadSetDisabled </code>
+
derived from <code> _sceFiosKernelOverlayThreadSetDisabled</code>
 +
 
 +
<source lang="C">
 +
int sceFiosKernelOverlayThreadSetDisabled02(int value);
 +
</source>
  
 
== SceFios2Kernel ==
 
== SceFios2Kernel ==
Line 359: Line 491:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x2A381357
+
| 1.69-3.60 || 0x2A381357
|-
 
| 3.60 || 0x2A381357
 
 
|}
 
|}
  
Line 369: Line 499:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x6DBCF0B2
+
| 1.69-3.60 || 0x6DBCF0B2
|-
 
| 3.60 || 0x6DBCF0B2
 
 
|}
 
|}
  
Line 379: Line 507:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xF6A3E335
+
| 1.69-3.60 || 0xF6A3E335
|-
 
| 3.60 || 0xF6A3E335
 
 
|}
 
|}
  
Line 391: Line 517:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x021B4AF7
+
| 1.69-3.60 || 0x021B4AF7
|-
 
| 3.60 || 0x021B4AF7
 
 
|}
 
|}
  
Line 403: Line 527:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x5D6A1CCE
+
| 1.69-3.60 || 0x5D6A1CCE
|-
 
| 3.60 || 0x5D6A1CCE
 
 
|}
 
|}
  
Line 415: Line 537:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x2F06ADC6
+
| 1.69-3.60 || 0x2F06ADC6
|-
 
| 3.60 || 0x2F06ADC6
 
 
|}
 
|}
  
Line 427: Line 547:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x759EBEE6
+
| 1.69-3.60 || 0x759EBEE6
|-
 
| 3.60 || 0x759EBEE6
 
 
|}
 
|}
  
Line 439: Line 557:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x2A9724C9
+
| 1.69-3.60 || 0x2A9724C9
|-
 
| 3.60 || 0x2A9724C9
 
 
|}
 
|}
  
Line 451: Line 567:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xBC6B3CC5
+
| 1.69-3.60 || 0xBC6B3CC5
|-
 
| 3.60 || 0xBC6B3CC5
 
 
|}
 
|}
  
Line 461: Line 575:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xF44F3505
+
| 1.69-3.60 || 0xF44F3505
|-
 
| 3.60 || 0xF44F3505
 
 
|}
 
|}
  
Line 471: Line 583:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x9379E2D5
+
| 1.69-3.60 || 0x9379E2D5
|-
 
| 3.60 || 0x9379E2D5
 
 
|}
 
|}
  
Line 481: Line 591:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xB02E0B26
+
| 1.69-3.60 || 0xB02E0B26
|-
 
| 3.60 || 0xB02E0B26
 
 
|}
 
|}
  
Line 491: Line 599:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x6DF2FC05
+
| 1.69-3.60 || 0x6DF2FC05
|-
 
| 3.60 || 0x6DF2FC05
 
 
|}
 
|}
  
Line 501: Line 607:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x6D6CDE05
+
| 1.69-3.60 || 0x6D6CDE05
|-
 
| 3.60 || 0x6D6CDE05
 
 
|}
 
|}
  
Line 511: Line 615:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xF8277E07
+
| 1.69-3.60 || 0xF8277E07
|-
 
| 3.60 || 0xF8277E07
 
 
|}
 
|}
  
Line 521: Line 623:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xB4927173
+
| 1.69-3.60 || 0xB4927173
|-
 
| 3.60 || 0xB4927173
 
 
|}
 
|}
  
Line 531: Line 631:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0xE9AE60FB
+
| 1.69-3.60 || 0xE9AE60FB
|-
 
| 3.60 || 0xE9AE60FB
 
 
|}
 
|}
  
Line 541: Line 639:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x8CCA471A
+
| 1.69-3.60 || 0x8CCA471A
|-
 
| 3.60 || 0x8CCA471A
 
 
|}
 
|}
  
Line 551: Line 647:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x629F4FE4
+
| 1.69-3.60 || 0x629F4FE4
|-
 
| 3.60 || 0x629F4FE4
 
 
|}
 
|}
  
Line 561: Line 655:
 
! Version !! NID
 
! Version !! NID
 
|-
 
|-
| 1.69 || 0x3E9172EA
+
| 1.69-3.60 || 0x3E9172EA
|-
 
| 3.60 || 0x3E9172EA
 
 
|}
 
|}
  

Revision as of 06:57, 18 November 2021

FIOS sits on top of filesystem and provides the following functionality:

  • Schedule i/o requests - queue i/o operations, prioritize i/o operations, delayed (scheduled for specific time) async i/o operations, parallelized i/o operations.
  • Overlays - remap i/o operations to different location. Good example is patches or localization.
  • Caching - caching layer for i/o operations. i/o operations are split into chunks. Chunks can be cached in RAM. Performance can increase.
  • Dearchiving - transparent filter for i/o operations that dearchives data. Good usage would be for psarc files.

Module

Version World Privilege
1.69-3.60 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
1.69-3.60 SceFios2KernelForDriver Non-secure Kernel 0x54D6B9EB
1.69-3.60 SceFios2Kernel Non-secure User 0x8757B742
3.60 SceFios2Kernel02 Non-secure ? 0xE83E40A6

Types

typedef int32_t SceFiosOverlayID;

typedef struct SceFiosOverlay {
  uint8_t type;
  uint8_t order;
  uint16_t dst_len;
  uint16_t src_len;
  uint16_t unk2;
  SceUID pid;
  SceFiosOverlayID id;
  char dst[292];
  char src[292]; // src path replaces dst path based on type policy
} SceFiosOverlay;

SceFios2KernelForDriver

sceFiosKernelOverlayAddForDriver

Version NID
3.60 0x2607EE4C

derived from _sceFiosKernelOverlayAdd

sceFiosKernelOverlayAddForProcessForDriver

Version NID
3.60 0x17E65A1C

derived from _sceFiosKernelOverlayAddForProcess

int sceFiosKernelOverlayAddForProcessForDriver(SceUID pid, SceFiosOverlay *overlay, SceFiosOverlayID *outID);

sceFiosKernelOverlayGetInfoForDriver

Version NID
3.60 0x725E6817

derived from _sceFiosKernelOverlayGetInfo

sceFiosKernelOverlayGetInfoForProcessForDriver

Version NID
3.60 0xF1762BC2

derived from _sceFiosKernelOverlayGetInfoForProcess

int sceFiosKernelOverlayGetInfoForProcessForDriver(SceUID pid, SceFiosOverlayID id, SceFiosOverlay *overla);

sceFiosKernelOverlayGetListForDriver

Version NID
3.60 0xFF42AAF0

derived from _sceFiosKernelOverlayGetList

int sceFiosKernelOverlayGetListForDriver(SceUID pid, char loOrderFilter, char hiOrderFilter, SceFiosOverlayID *outIDs, size_t maxIDs, size_t *actualIDs);

sceFiosKernelOverlayGetRecommendedSchedulerForDriver

Version NID
3.60 0x241BF0D6

derived from _sceFiosKernelOverlayGetRecommendedScheduler

int sceFiosKernelOverlayGetRecommendedSchedulerForDriver(int some_index, char *path);

sceFiosKernelOverlayModifyForDriver

Version NID
3.60 0x7F8B960C

derived from _sceFiosKernelOverlayModify

sceFiosKernelOverlayModifyForProcessForDriver

Version NID
3.60 0x853EA82A

derived from _sceFiosKernelOverlayModifyForProcess

int sceFiosKernelOverlayModifyForProcessForDriver(SceUID pid, SceFiosOverlayID id, const SceFiosOverlay *newValue);

sceFiosKernelOverlayRemoveForDriver

Version NID
3.60 0x2368FEB5

derived from _sceFiosKernelOverlayRemove

sceFiosKernelOverlayRemoveForProcessForDriver

Version NID
3.60 0x23247EFB

derived from _sceFiosKernelOverlayRemoveForProcess

int sceFiosKernelOverlayRemoveForProcessForDriver(SceUID pid, SceFiosOverlayID id);

sceFiosKernelOverlayResolveSyncForDriver

Version NID
3.60 0x0F456345

derived from _sceFiosKernelOverlayResolveSync

int sceFiosKernelOverlayResolveSyncForDriver(SceUID pid, int resolveFlag, const char *inPath, char *outPath, size_t maxPath);

sceFiosKernelOverlayResolveWithRangeSyncForDriver

Version NID
3.60 0xD3D968FC

derived from _sceFiosKernelOverlayResolveWithRangeSync

int sceFiosKernelOverlayResolveWithRangeSyncForDriver(SceUID pid, int resolveFlag, const char *inPath, char *outPath, size_t maxPath, char loOrderFilter, char hiOrderFilter);

sceFiosKernelOverlayThreadIsDisabledForDriver

Version NID
3.60 0xE71192C5

derived from _sceFiosKernelOverlayThreadIsDisabled

int sceFiosKernelOverlayThreadIsDisabledForDriver();

sceFiosKernelOverlayThreadSetDisabledForDriver

Version NID
3.60 0x03727E5E

derived from _sceFiosKernelOverlayThreadSetDisabled

int sceFiosKernelOverlayThreadSetDisabledForDriver(int value);

SceFios2KernelForDriver_unk_2649408B

Version NID
3.60 0x2649408B

should map to one of six functions that return 0x80820000

used by SceIofilemgr so probably can be derived

SceFios2KernelForDriver_unk_28E28A58

Version NID
3.60 0x28E28A58

should map to one of six functions that return 0x80820000

used by SceIofilemgr so probably can be derived

SceFios2KernelForDriver_unk_35E7E75C

Version NID
3.60 0x35E7E75C

should map to one of six functions that return 0x80820000

used by SceIofilemgr so probably can be derived

SceFios2KernelForDriver_unk_3B329E86

Version NID
3.60 0x3B329E86

should map to one of six functions that return 0x80820000

used by SceIofilemgr so probably can be derived

SceFios2KernelForDriver_unk_990F46A5

Version NID
3.60 0x990F46A5

Sync fd with param.

should map to one of six functions that return 0x80820000

used by SceIofilemgr so probably can be derived

SceFios2KernelForDriver_unk_DD7627EC

Version NID
3.60 0xDD7627EC

Close dir fd and free param memory.

should map to one of six functions that return 0x80820000

used by SceIofilemgr so probably can be derived

SceFios2Kernel02

sceFiosKernelOverlayAddForProcess02

Version NID
3.60 0xB77C366D

derived from _sceFiosKernelOverlayAddForProcess

int sceFiosKernelOverlayAddForProcess02(SceUID pid, SceFiosOverlay *overlay, SceFiosOverlayID *outID);

sceFiosKernelOverlayGetInfoForProcess02

Version NID
3.60 0x111DCCFA

derived from _sceFiosKernelOverlayGetInfoForProcess

int sceFiosKernelOverlayGetInfoForProcess02(SceUID pid, SceFiosOverlayID id, SceFiosOverlay *overlay);

sceFiosKernelOverlayGetList02

Version NID
3.60 0xD90FC293

derived from _sceFiosKernelOverlayGetList

typedef struct sceFiosKernelOverlayGetList02_opt { // size is 0x18
  SceFiosOverlayID *outIDs;
  size_t maxIDs;
  size_t *actualIDs;
  int buffer_size;
  int reserved1;
  int reserved2;
} sceFiosKernelOverlayGetList02_opt;

int sceFiosKernelOverlayGetList02(SceUID pid, char loOrderFilter, char hiOrderFilter, sceFiosKernelOverlayGetList02_opt *opt);

sceFiosKernelOverlayGetRecommendedScheduler02

Version NID
3.60 0x26B9D08A

derived from _sceFiosKernelOverlayGetRecommendedScheduler

typedef struct sceFiosKernelOverlayGetRecommendedScheduler02_opt { // size is 8
  int reserved1;
  int reserved2;
} sceFiosKernelOverlayGetRecommendedScheduler02_opt;

int sceFiosKernelOverlayGetRecommendedScheduler02(int some_index, char *path, sceFiosKernelOverlayGetRecommendedScheduler02_opt *opt);

sceFiosKernelOverlayModifyForProcess02

Version NID
3.60 0x6A976528

derived from _sceFiosKernelOverlayModifyForProcess

int sceFiosKernelOverlayModifyForProcess02(SceUID pid, SceFiosOverlayID id, const SceFiosOverlay *newValue);

sceFiosKernelOverlayRemoveForProcess02

Version NID
3.60 0x50A7167C

derived from _sceFiosKernelOverlayRemoveForProcess

int sceFiosKernelOverlayRemoveForProcess02(SceUID pid, SceFiosOverlayID id);

sceFiosKernelOverlayResolveSync02

Version NID
3.60 0xD76F046A

derived from _sceFiosKernelOverlayResolveSync

typedef struct sceFiosKernelOverlayResolveSync02_opt { // size is 0x18
  char *outPath;
  size_t maxPath;
  int reserved1;
  int reserved2;
  int reserved3;
  int reserved4;
} sceFiosKernelOverlayResolveSync02_opt;

int sceFiosKernelOverlayResolveSync02(SceUID pid, int resolveFlag, const char *inPath, sceFiosKernelOverlayResolveSync02_opt *opt);

sceFiosKernelOverlayResolveWithRangeSync02

Version NID
3.60 0x8DAD1FED

derived from _sceFiosKernelOverlayResolveWithRangeSync

typedef struct sceFiosKernelOverlayResolveWithRangeSync02_opt { // size is 0x1C
  char *outPath;
  size_t maxPath;
  char loOrderFilter;
  char hiOrderFilter;
  char reserved1;
  char reserved2;
  int reserved3;
  int reserved4;
  int reserved5;
  int reserved6;
} sceFiosKernelOverlayResolveWithRangeSync02_opt;

int sceFiosKernelOverlayResolveWithRangeSync02(SceUID pid, int resolveFlag, const char *inPath, sceFiosKernelOverlayResolveWithRangeSync02_opt *opt);

sceFiosKernelOverlayThreadIsDisabled02

Version NID
3.60 0xD6A4FDD6

derived from _sceFiosKernelOverlayThreadIsDisabled

int sceFiosKernelOverlayThreadIsDisabled02(void);

sceFiosKernelOverlayThreadSetDisabled02

Version NID
3.60 0x7F26D4DD

derived from _sceFiosKernelOverlayThreadSetDisabled

int sceFiosKernelOverlayThreadSetDisabled02(int value);

SceFios2Kernel

_sceFiosKernelOverlayAddForProcess

Version NID
1.69-3.60 0x2A381357

_sceFiosKernelOverlayAdd

Version NID
1.69-3.60 0x6DBCF0B2

_sceFiosKernelOverlayDHChstatSync

Version NID
1.69-3.60 0xF6A3E335

returns 0x80820000 ? is it not callable from userspace?

_sceFiosKernelOverlayDHCloseSync

Version NID
1.69-3.60 0x021B4AF7

returns 0x80820000 ? is it not callable from userspace?

_sceFiosKernelOverlayDHOpenSync

Version NID
1.69-3.60 0x5D6A1CCE

returns 0x80820000 ? is it not callable from userspace?

_sceFiosKernelOverlayDHReadSync

Version NID
1.69-3.60 0x2F06ADC6

returns 0x80820000 ? is it not callable from userspace?

_sceFiosKernelOverlayDHStatSync

Version NID
1.69-3.60 0x759EBEE6

returns 0x80820000 ? is it not callable from userspace?

_sceFiosKernelOverlayDHSyncSync

Version NID
1.69-3.60 0x2A9724C9

returns 0x80820000 ? is it not callable from userspace?

_sceFiosKernelOverlayGetInfoForProcess

Version NID
1.69-3.60 0xBC6B3CC5

_sceFiosKernelOverlayGetInfo

Version NID
1.69-3.60 0xF44F3505

_sceFiosKernelOverlayGetList

Version NID
1.69-3.60 0x9379E2D5

_sceFiosKernelOverlayGetRecommendedScheduler

Version NID
1.69-3.60 0xB02E0B26

_sceFiosKernelOverlayModifyForProcess

Version NID
1.69-3.60 0x6DF2FC05

_sceFiosKernelOverlayModify

Version NID
1.69-3.60 0x6D6CDE05

_sceFiosKernelOverlayRemoveForProcess

Version NID
1.69-3.60 0xF8277E07

_sceFiosKernelOverlayRemove

Version NID
1.69-3.60 0xB4927173

_sceFiosKernelOverlayResolveSync

Version NID
1.69-3.60 0xE9AE60FB

_sceFiosKernelOverlayResolveWithRangeSync

Version NID
1.69-3.60 0x8CCA471A

_sceFiosKernelOverlayThreadIsDisabled

Version NID
1.69-3.60 0x629F4FE4

_sceFiosKernelOverlayThreadSetDisabled

Version NID
1.69-3.60 0x3E9172EA