SceFios2Kernel: Difference between revisions
(→Types) |
|||
Line 52: | Line 52: | ||
SceFiosOverlayID id; | SceFiosOverlayID id; | ||
char dst[292]; | char dst[292]; | ||
char src[292]; | char src[292]; // src path replaces dst path based on type policy | ||
}; | }; | ||
</source> | </source> |
Revision as of 18:11, 19 May 2018
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
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceFios2Kernel | Non-secure | Kernel | 0x26E15F8F |
3.60 | SceFios2Kernel | ? | Kernel | 0x10ECF2D0 |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69 | SceFios2KernelForDriver | Non-secure | Kernel | 0x54D6B9EB |
3.60 | SceFios2KernelForDriver | ? | Kernel | 0x54D6B9EB |
1.69 | SceFios2Kernel | Non-secure | User | 0x8757B742 |
3.60 | SceFios2Kernel | ? | User | 0x8757B742 |
3.60 | SceFios2Kernel02 | ? | ? | 0xE83E40A6 |
Types
typedef int32_t SceFiosOverlayID;
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
};
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 |
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 |
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
//size is 0x18
struct sceFiosKernelOverlayGetList02Opt
{
SceFiosOverlayID *outIDs;
size_t maxIDs;
size_t *actualIDs;
int buffer_size;
int reserved1;
int reserved2;
};
int sceFiosKernelOverlayGetList02(SceUID pid, char loOrderFilter, char hiOrderFilter, sceFiosKernelOverlayGetList02Opt *opt);
sceFiosKernelOverlayGetRecommendedScheduler02
Version | NID |
---|---|
3.60 | 0x26B9D08A |
derived from _sceFiosKernelOverlayGetRecommendedScheduler
//size is 0x8
struct sceFiosKernelOverlayGetRecommendedScheduler02Opt
{
int reserved1;
int reserved2;
};
int sceFiosKernelOverlayGetRecommendedScheduler02(int some_index, char *path, sceFiosKernelOverlayGetRecommendedScheduler02Opt *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
//size is 0x18
struct sceFiosKernelOverlayResolveSync02Opt
{
char *outPath;
size_t maxPath;
int reserved1;
int reserved2;
int reserved3;
int reserved4;
};
int sceFiosKernelOverlayResolveSync02(SceUID pid, int resolveFlag, const char *inPath, sceFiosKernelOverlayResolveSync02Opt *opt);
sceFiosKernelOverlayResolveWithRangeSync02
Version | NID |
---|---|
3.60 | 0x8DAD1FED |
derived from _sceFiosKernelOverlayResolveWithRangeSync
//size is 0x1C
struct sceFiosKernelOverlayResolveWithRangeSync02Opt
{
char *outPath;
size_t maxPath;
char loOrderFilter;
char hiOrderFilter;
char reserved1;
char reserved2;
int reserved3;
int reserved4;
int reserved5;
int reserved6;
};
int sceFiosKernelOverlayResolveWithRangeSync02(SceUID pid, int resolveFlag, const char *inPath, sceFiosKernelOverlayResolveWithRangeSync02Opt *opt);
sceFiosKernelOverlayThreadIsDisabled02
Version | NID |
---|---|
3.60 | 0xD6A4FDD6 |
derived from _sceFiosKernelOverlayThreadIsDisabled
int sceFiosKernelOverlayThreadIsDisabled02();
sceFiosKernelOverlayThreadSetDisabled02
Version | NID |
---|---|
3.60 | 0x7F26D4DD |
derived from _sceFiosKernelOverlayThreadSetDisabled
int sceFiosKernelOverlayThreadSetDisabled02(int value);
SceFios2Kernel
_sceFiosKernelOverlayAddForProcess
Version | NID |
---|---|
1.69 | 0x2A381357 |
3.60 | 0x2A381357 |
_sceFiosKernelOverlayAdd
Version | NID |
---|---|
1.69 | 0x6DBCF0B2 |
3.60 | 0x6DBCF0B2 |
_sceFiosKernelOverlayDHChstatSync
Version | NID |
---|---|
1.69 | 0xF6A3E335 |
3.60 | 0xF6A3E335 |
returns 0x80820000
? is it not callable from userspace?
_sceFiosKernelOverlayDHCloseSync
Version | NID |
---|---|
1.69 | 0x021B4AF7 |
3.60 | 0x021B4AF7 |
returns 0x80820000
? is it not callable from userspace?
_sceFiosKernelOverlayDHOpenSync
Version | NID |
---|---|
1.69 | 0x5D6A1CCE |
3.60 | 0x5D6A1CCE |
returns 0x80820000
? is it not callable from userspace?
_sceFiosKernelOverlayDHReadSync
Version | NID |
---|---|
1.69 | 0x2F06ADC6 |
3.60 | 0x2F06ADC6 |
returns 0x80820000
? is it not callable from userspace?
_sceFiosKernelOverlayDHStatSync
Version | NID |
---|---|
1.69 | 0x759EBEE6 |
3.60 | 0x759EBEE6 |
returns 0x80820000
? is it not callable from userspace?
_sceFiosKernelOverlayDHSyncSync
Version | NID |
---|---|
1.69 | 0x2A9724C9 |
3.60 | 0x2A9724C9 |
returns 0x80820000
? is it not callable from userspace?
_sceFiosKernelOverlayGetInfoForProcess
Version | NID |
---|---|
1.69 | 0xBC6B3CC5 |
3.60 | 0xBC6B3CC5 |
_sceFiosKernelOverlayGetInfo
Version | NID |
---|---|
1.69 | 0xF44F3505 |
3.60 | 0xF44F3505 |
_sceFiosKernelOverlayGetList
Version | NID |
---|---|
1.69 | 0x9379E2D5 |
3.60 | 0x9379E2D5 |
_sceFiosKernelOverlayGetRecommendedScheduler
Version | NID |
---|---|
1.69 | 0xB02E0B26 |
3.60 | 0xB02E0B26 |
_sceFiosKernelOverlayModifyForProcess
Version | NID |
---|---|
1.69 | 0x6DF2FC05 |
3.60 | 0x6DF2FC05 |
_sceFiosKernelOverlayModify
Version | NID |
---|---|
1.69 | 0x6D6CDE05 |
3.60 | 0x6D6CDE05 |
_sceFiosKernelOverlayRemoveForProcess
Version | NID |
---|---|
1.69 | 0xF8277E07 |
3.60 | 0xF8277E07 |
_sceFiosKernelOverlayRemove
Version | NID |
---|---|
1.69 | 0xB4927173 |
3.60 | 0xB4927173 |
_sceFiosKernelOverlayResolveSync
Version | NID |
---|---|
1.69 | 0xE9AE60FB |
3.60 | 0xE9AE60FB |
_sceFiosKernelOverlayResolveWithRangeSync
Version | NID |
---|---|
1.69 | 0x8CCA471A |
3.60 | 0x8CCA471A |
_sceFiosKernelOverlayThreadIsDisabled
Version | NID |
---|---|
1.69 | 0x629F4FE4 |
3.60 | 0x629F4FE4 |
_sceFiosKernelOverlayThreadSetDisabled
Version | NID |
---|---|
1.69 | 0x3E9172EA |
3.60 | 0x3E9172EA |