SceFios2Kernel: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
 
(38 intermediate revisions by 4 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.
Most of these functionalities are implemented in usermode in the <code>fios2.suprx</code> module.
This kernel module is only used for overlays, so that the kernel, especially [[SceIofilemgr]], is aware of FIOS2 remapping.
== 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 27:
! 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 62:
|}
|}


derived from <code>_sceFiosKernelOverlayAdd </code>
derived from <code>_sceFiosKernelOverlayAdd</code>


=== sceFiosKernelOverlayAddForProcessForDriver ===
=== sceFiosKernelOverlayAddForProcessForDriver ===
Line 50: Line 72:
|}
|}


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 86:
|}
|}


derived from <code>_sceFiosKernelOverlayGetInfo </code>
derived from <code>_sceFiosKernelOverlayGetInfo</code>


=== sceFiosKernelOverlayGetInfoForProcessForDriver ===
=== sceFiosKernelOverlayGetInfoForProcessForDriver ===
Line 72: Line 96:
|}
|}


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 110:
|}
|}


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 124:
|}
|}


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 138:
|}
|}


derived from <code>_sceFiosKernelOverlayModify </code>
derived from <code>_sceFiosKernelOverlayModify</code>


=== sceFiosKernelOverlayModifyForProcessForDriver ===
=== sceFiosKernelOverlayModifyForProcessForDriver ===
Line 112: Line 148:
|}
|}


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 162:
|}
|}


derived from <code>_sceFiosKernelOverlayRemove </code>
derived from <code>_sceFiosKernelOverlayRemove</code>


=== sceFiosKernelOverlayRemoveForProcessForDriver ===
=== sceFiosKernelOverlayRemoveForProcessForDriver ===
Line 132: Line 172:
|}
|}


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 188:
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 200:
|}
|}


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 214:
|}
|}


derived from <code>_sceFiosKernelOverlayThreadIsDisabled </code>
derived from <code>_sceFiosKernelOverlayThreadIsDisabled</code>
 
<source lang="c">
int sceFiosKernelOverlayThreadIsDisabledForDriver();
</source>


=== sceFiosKernelOverlayThreadSetDisabledForDriver ===
=== sceFiosKernelOverlayThreadSetDisabledForDriver ===
Line 176: Line 228:
|}
|}


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 289:
| 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 303:
| 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 320:
|}
|}


derived from <code> _sceFiosKernelOverlayAddForProcess </code>
derived from <code> _sceFiosKernelOverlayAddForProcess</code>


<source lang="C">
<source lang="C">
int sceFiosKernelOverlayAddForProcess02(SceUID pid, SceFiosOverlay *overlay, SceFiosOverlayID *outID);
</source>
</source>


Line 273: Line 334:
|}
|}


derived from <code> _sceFiosKernelOverlayGetInfoForProcess </code>
derived from <code> _sceFiosKernelOverlayGetInfoForProcess</code>


<source lang="C">
<source lang="C">
int sceFiosKernelOverlayGetInfoForProcess02(SceUID pid, SceFiosOverlayID id, SceFiosOverlay *overlay);
</source>
</source>


Line 286: Line 348:
|}
|}


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 296: Line 371:
|}
|}


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 306: Line 390:
|}
|}


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 316: Line 404:
|}
|}


derived from <code> _sceFiosKernelOverlayRemoveForProcess </code>
derived from <code> _sceFiosKernelOverlayRemoveForProcess</code>
 
<source lang="C">
int sceFiosKernelOverlayRemoveForProcess02(SceUID pid, SceFiosOverlayID id);
</source>


=== sceFiosKernelOverlayResolveSync02 ===
=== sceFiosKernelOverlayResolveSync02 ===
Line 326: Line 418:
|}
|}


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 336: Line 441:
|}
|}


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 346: Line 468:
|}
|}


derived from <code> _sceFiosKernelOverlayThreadIsDisabled </code>
derived from <code> _sceFiosKernelOverlayThreadIsDisabled</code>
 
<source lang="C">
int sceFiosKernelOverlayThreadIsDisabled02(void);
</source>


=== sceFiosKernelOverlayThreadSetDisabled02 ===
=== sceFiosKernelOverlayThreadSetDisabled02 ===
Line 356: Line 482:
|}
|}


derived from <code> _sceFiosKernelOverlayThreadSetDisabled </code>
derived from <code> _sceFiosKernelOverlayThreadSetDisabled</code>
 
<source lang="C">
int sceFiosKernelOverlayThreadSetDisabled02(int value);
</source>


== SceFios2Kernel ==
== SceFios2Kernel ==
Line 365: Line 495:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x2A381357
| 1.69-3.60 || 0x2A381357
|-
| 3.60 || 0x2A381357
|}
|}


Line 375: Line 503:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x6DBCF0B2
| 1.69-3.60 || 0x6DBCF0B2
|-
| 3.60 || 0x6DBCF0B2
|}
|}


Line 385: Line 511:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xF6A3E335
| 1.69-3.60 || 0xF6A3E335
|-
| 3.60 || 0xF6A3E335
|}
|}


Line 397: Line 521:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x021B4AF7
| 1.69-3.60 || 0x021B4AF7
|-
| 3.60 || 0x021B4AF7
|}
|}


Line 409: Line 531:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x5D6A1CCE
| 1.69-3.60 || 0x5D6A1CCE
|-
| 3.60 || 0x5D6A1CCE
|}
|}


Line 421: Line 541:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x2F06ADC6
| 1.69-3.60 || 0x2F06ADC6
|-
| 3.60 || 0x2F06ADC6
|}
|}


Line 433: Line 551:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x759EBEE6
| 1.69-3.60 || 0x759EBEE6
|-
| 3.60 || 0x759EBEE6
|}
|}


Line 445: Line 561:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x2A9724C9
| 1.69-3.60 || 0x2A9724C9
|-
| 3.60 || 0x2A9724C9
|}
|}


Line 457: Line 571:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xBC6B3CC5
| 1.69-3.60 || 0xBC6B3CC5
|-
| 3.60 || 0xBC6B3CC5
|}
|}


Line 467: Line 579:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xF44F3505
| 1.69-3.60 || 0xF44F3505
|-
| 3.60 || 0xF44F3505
|}
|}


Line 477: Line 587:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x9379E2D5
| 1.69-3.60 || 0x9379E2D5
|-
| 3.60 || 0x9379E2D5
|}
|}


Line 487: Line 595:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xB02E0B26
| 1.69-3.60 || 0xB02E0B26
|-
| 3.60 || 0xB02E0B26
|}
|}


Line 497: Line 603:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x6DF2FC05
| 1.69-3.60 || 0x6DF2FC05
|-
| 3.60 || 0x6DF2FC05
|}
|}


Line 507: Line 611:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x6D6CDE05
| 1.69-3.60 || 0x6D6CDE05
|-
| 3.60 || 0x6D6CDE05
|}
|}


Line 517: Line 619:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xF8277E07
| 1.69-3.60 || 0xF8277E07
|-
| 3.60 || 0xF8277E07
|}
|}


Line 527: Line 627:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xB4927173
| 1.69-3.60 || 0xB4927173
|-
| 3.60 || 0xB4927173
|}
|}


Line 537: Line 635:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0xE9AE60FB
| 1.69-3.60 || 0xE9AE60FB
|-
| 3.60 || 0xE9AE60FB
|}
|}


Line 547: Line 643:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x8CCA471A
| 1.69-3.60 || 0x8CCA471A
|-
| 3.60 || 0x8CCA471A
|}
|}


Line 557: Line 651:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x629F4FE4
| 1.69-3.60 || 0x629F4FE4
|-
| 3.60 || 0x629F4FE4
|}
|}


Line 567: Line 659:
! Version !! NID
! Version !! NID
|-
|-
| 1.69 || 0x3E9172EA
| 1.69-3.60 || 0x3E9172EA
|-
| 3.60 || 0x3E9172EA
|}
|}


 
[[Category:ARM]]
[[Category:Kernel]]
[[Category:Modules]]
[[Category:Modules]]
[[Category:Kernel]]
[[Category:Library]]

Latest revision as of 08:59, 25 May 2023

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.

Most of these functionalities are implemented in usermode in the fios2.suprx module.

This kernel module is only used for overlays, so that the kernel, especially SceIofilemgr, is aware of FIOS2 remapping.

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