SceIofilemgr: Difference between revisions
Line 202: | Line 202: | ||
struct node_ops1 // size is 0x34 (13 pointers) | struct node_ops1 // size is 0x34 (13 pointers) | ||
{ | { | ||
void* | int (*func1)(void* ctx); | ||
void* | int (*func2)(void* ctx); | ||
void* | int (*func3)(void* ctx); | ||
void* | int (*func4)(void* ctx); | ||
void* | int (*func5)(void* ctx); | ||
void* | int (*func6)(void* ctx); | ||
void* | int (*func7)(void* ctx); | ||
void* | int (*func8)(void* ctx); | ||
void* | int (*func9)(void* ctx); | ||
void* | int (*func10)(void* ctx); | ||
void* | int (*func11)(void* ctx); | ||
void* | int (*func12)(void* ctx); | ||
void* | int (*func13)(void* ctx); | ||
}; | }; | ||
Line 220: | Line 220: | ||
struct node_ops2 // size is 0x74 (29 pointers) | struct node_ops2 // size is 0x74 (29 pointers) | ||
{ | { | ||
void* | int (*func1)(void* ctx); | ||
void* | int (func2)(void* ctx); | ||
void* | int (func3)(void* ctx); | ||
void* | int (func4)(void* ctx); | ||
void* | int (func5)(void* ctx); | ||
void* | int (func6)(void* ctx); | ||
void* | int (func7)(void* ctx); | ||
void* | int (func8)(void* ctx); | ||
void* | int (func9)(void* ctx); | ||
void* | int (func10)(void* ctx); | ||
void* | int (func11)(void* ctx); | ||
void* | int (func12)(void* ctx); | ||
void* | int (func13)(void* ctx); | ||
void* | int (func14)(void* ctx); | ||
void* | int (func15)(void* ctx); | ||
void* | int (func16)(void* ctx); | ||
void* | int (func17)(void* ctx); | ||
void* | int (func18)(void* ctx); | ||
void* | int (func19)(void* ctx); | ||
void* | int (func20)(void* ctx); | ||
void* | int (func21)(void* ctx); | ||
void* | int (func22)(void* ctx); | ||
void* | int (func23)(void* ctx); | ||
void* | int (func24)(void* ctx); | ||
void* | int (func25)(void* ctx); | ||
void* | int (func26)(void* ctx); | ||
void* | int (func27)(void* ctx); | ||
void* | int (func28)(void* ctx); | ||
void* | int (func29)(void* ctx); | ||
}; | }; | ||
Revision as of 14:24, 14 February 2017
SceIofilemgr is the primary interface for file IO. Read File Management for more information on file IO.
Module
This module exists in only in non-secure world. The SELF can be found in os0:kd/iofilemgr.skprx
.
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceIofilemgr | Non-secure | Kernel | 0x3E244C17 |
Libraries
This module is accessible by usermode.
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69 | SceIofilemgrForDriver | Non-secure | Kernel | 0x40FD29C7 |
1.69 | SceIofilemgr | Non-secure | User | 0xF2FF276E |
Mount Points
This table is stored in data segment of SceIofilemgr as array of mount_point_info elements
Unix Mount | Dev Major | Dev Minor | Filesystem | Vita Mount | Block Device | VSH Mount Id |
---|---|---|---|---|---|---|
/tty | 0x4000020 | 0x6003 | dummy_ttyp_dev_fs | tty | dummy_ttyp_dev_fs | 0x0 |
/dev | 0x10 | 0x3 | sdstor_dev_fs | sdstor0: | sd | 0x1 |
/md | 0x10 | 0x2003 | md_dev_fs | md0: | md | 0x2 |
/sd/exfat | 0x2030001 | 0x30002 | exfat | sd0: | sdstor0:ext-pp-act-a, sdstor0:ext-lp-act-entire | 0x100 |
/os/exfat | 0x1000001 | 0x1002 | exfat | os0: | sdstor0:int-lp-act-os | 0x200 |
/vs/exfat | 0x1000001 | 0x1002 | exfat | vs0: | sdstor0:int-lp-ign-vsh | 0x300 |
/vd/exfat | 0x1000001 | 0x10002 | exfat | vd0: | sdstor0:int-lp-ign-vshdata | 0x400 |
/tm/exfat | 0x1000001 | 0x10002 | exfat | tm0: | sdstor0:int-lp-ign-vtrm | 0x500 |
/ur/exfat | 0x1000001 | 0x50002 | exfat | ur0: | sdstor0:int-lp-ign-user | 0x600 |
/ud/exfat | 0x1000001 | 0x10002 | exfat | ud0: | sdstor0:int-lp-ign-updater | 0x700 |
/ux/exfat | 0x2020001 | 0x30002 | exfat | ux0: | sdstor0:xmc-lp-ign-userext / sdstor0:int-lp-ign-userext | 0x800 |
/gro/exfat | 0x2010001 | 0x21002 | exfat | gro0: | sdstor0:gcd-lp-ign-gamero | 0x900 |
/grw/exfat | 0x2010001 | 0x20002 | exfat | grw0: | sdstor0:gcd-lp-ign-gamerw | 0xA00 |
/sa/exfat | 0x1000001 | 0x1002 | exfat | sa0: | sdstor0:int-lp-ign-sysdata | 0xB00 |
/pd/exfat | 0x1000001 | 0x1002 | exfat | pd0: | sdstor0:int-lp-ign-pidata | 0xC00 |
/imc/exfat | 0x2020001 | 0x30002 | exfat | imc0: | sdstor0:int-lp-ign-userext | 0xD00 |
/xmc/exfat | 0x2020001 | 0x30002 | exfat | xmc0: | sdstor0:xmc-lp-ign-userext | 0xE00 |
/uma/exfat | 0x2030001 | 0x2 | exfat | uma0: | sdstor0:uma-pp-act-a, sdstor0:uma-lp-act-entire | 0xF00 |
/lma/exfat | 0x1 | 0x5 | exfat | lma0: | / | 0x10000 |
/lmb/exfat | 0x1 | 0x5 | exfat | lmb0: | / | 0x20000 |
/mfa/exfat | 0x1 | 0x5 | exfat | mfa0: | / | 0x50000 |
/mfb/exfat | 0x1 | 0x5 | exfat | mfb0: | / | 0x60000 |
VFS Nodes
Module | Name | Comment |
---|---|---|
SceSdstor | sdstor_dev_fs | |
SceExfatfs | exfat | |
SceIofilemgr | dummy_ttyp_dev_fs | |
ScePfsMgr | PFS_REDIRECT_INF | Redirect Pseudo Drive. |
ScePfsMgr | PFS_GDSD_INF | Gamedata/Savedata Pseudo Drive. |
ScePfsMgr | PFS_AC_INF | AC Pseudo Drive. |
Types
typedef struct block_dev_info //size is 0x14 { char* vitaMount; char* filesystem; // Some name, I guess it is filesystem char* blockDevicePrimary; char* blockDeviceSecondary; // can be 0 uint32_t vshMountId; //must be same as in mount_point_info }block_dev_info; typedef struct mount_point_info //size is 0x38 { uint32_t vshMountId; char* unixMount; uint32_t unk_8; //zero uint32_t devMajor; uint32_t devMinor; char* filesystem; uint32_t unk_18; //zero block_dev_info* blockDev1; uint32_t unk_20; //zero block_dev_info* blockDev2; //same as blockDev1 uint32_t unk_28; //zero - except for (ux0:, gro0:, grw0:) - maybe related to device specific data? uint32_t unk_2C; //zero uint32_t unk_30; //zero uint32_t unk_34; //zero }mount_point_info;
Data segment layout
Address | Size | Description |
---|---|---|
0x0000 | 0x1A90 | unknown |
0x1A90 | 0x700 | array of 32 elements of mount_point_info |
0x2190 | 0x8C | unknown |
0x221C | 0x20 | vfs_add_data dummy_ttyp_dev_fs node
|
SceIofilemgrForDriver
sceVfsUnmount
Version | NID |
---|---|
1.69 | 0x9C7E7B76 |
struct vfs_unmount_data { const char *mountpoint; int flags; }; int sceVfsUnmount(struct vfs_unmount_data *data);
sceVfsDeleteVfs
Version | NID |
---|---|
1.69 | 0x9CBFA725 |
int sceVfsDeleteVfs(const char *name, void **deleted_node);
sceVfsAddVfs
Version | NID |
---|---|
1.69 | 0x673D2FCD |
struct vfs_add_data { void **funcs; const char *name; int flags; }; //probably vfsops struct node_ops1 // size is 0x34 (13 pointers) { int (*func1)(void* ctx); int (*func2)(void* ctx); int (*func3)(void* ctx); int (*func4)(void* ctx); int (*func5)(void* ctx); int (*func6)(void* ctx); int (*func7)(void* ctx); int (*func8)(void* ctx); int (*func9)(void* ctx); int (*func10)(void* ctx); int (*func11)(void* ctx); int (*func12)(void* ctx); int (*func13)(void* ctx); }; //probably vnodeops struct node_ops2 // size is 0x74 (29 pointers) { int (*func1)(void* ctx); int (func2)(void* ctx); int (func3)(void* ctx); int (func4)(void* ctx); int (func5)(void* ctx); int (func6)(void* ctx); int (func7)(void* ctx); int (func8)(void* ctx); int (func9)(void* ctx); int (func10)(void* ctx); int (func11)(void* ctx); int (func12)(void* ctx); int (func13)(void* ctx); int (func14)(void* ctx); int (func15)(void* ctx); int (func16)(void* ctx); int (func17)(void* ctx); int (func18)(void* ctx); int (func19)(void* ctx); int (func20)(void* ctx); int (func21)(void* ctx); int (func22)(void* ctx); int (func23)(void* ctx); int (func24)(void* ctx); int (func25)(void* ctx); int (func26)(void* ctx); int (func27)(void* ctx); int (func28)(void* ctx); int (func29)(void* ctx); }; //this structure is bigger on 3.60 struct vfs_add_data { node_ops1* funcs1; const char *name; //max size is 0x20 int flags; //0x0E int unk_C; //0x01 / 0x00 (root, leaf ?) int unk_10; //0x10 node_ops2* funcs2; int unk_18; //0x00 vfs_add_data* next_element; //ptr to next element, confirmed }; int sceVfsAddVfs(struct vfs_add_data *data);
sceVfsMount
Version | NID |
---|---|
1.69 | 0xB62DE9A6 |
struct vfs_mount_data { const char *mountpoint; int unk1; int unk2; int unk3; const char *name; int unk4; void *unk5; int unk6; }; int sceVfsMount(struct vfs_mount_data *data);
sceVfsGetNewNode
Version | NID |
---|---|
1.69 | 0xD60B5C638 |
int sceVfsGetNewNode(int a1, int a2, int a3, int a4);
sceIoDreadForDriver
Version | NID |
---|---|
1.69 | 0x20CF5FC7 |
Call interface is same as sceIoDread
sceIoWriteForDriver
Version | NID |
---|---|
1.69 | 0x21EE91F0 |
Call interface is same as sceIoWrite
sceIoDopenForDriver
Version | NID |
---|---|
1.69 | 0x463B25CC |
Call interface is same as sceIoDopen
sceIoLseekForDriver
Version | NID |
---|---|
1.69 | 0x62090481 |
Call interface is same as sceIoLseek
sceIoOpenForDriver
Version | NID |
---|---|
1.69 | 0x75192972 |
Call interface is same as sceIoOpen
sceIoChstatForDriver
Version | NID |
---|---|
1.69 | 0x7D42B8DC |
Call interface is same as sceIoChstat
sceIoGetstatForDriver
Version | NID |
---|---|
1.69 | 0x75C96D25 |
Call interface is same as sceIoGetstat
sceIoMkdirForDriver
Version | NID |
---|---|
1.69 | 0x7F710B25 |
Call interface is same as sceIoMkdir
sceIoReadForDriver
Version | NID |
---|---|
1.69 | 0xE17EFC03 |
Call interface is same as sceIoRead
sceIoCloseForDriver
Version | NID |
---|---|
1.69 | 0xF99DD8A3 |
Call interface is same as sceIoClose
sceIoRenameForDriver
Version | NID |
---|---|
1.69 | 0xDC0C4997 |
Call interface is same as sceIoRename
sceIoRemoveForDriver
Version | NID |
---|---|
1.69 | 0x0D7BB3E1 |
Call interface is same as sceIoRemove
SceIofilemgr
_sceIoDcloseAsync
Version | NID |
---|---|
1.69 | 0xB13031 |
_sceIoOpenAsync
Version | NID |
---|---|
1.69 | 0x9CD0FC8 |
sceIoGetProcessDefaultPriority
Version | NID |
---|---|
1.69 | 0xDC4F1BB |
_sceIoRmdirAsync
Version | NID |
---|---|
1.69 | 0x13DC3244 |
sceIoSetPriority
Version | NID |
---|---|
1.69 | 0x14B2D56C |
sceIoSyncByFd
Version | NID |
---|---|
1.69 | 0x16512F59 |
_sceIoIoctl
Version | NID |
---|---|
1.69 | 0x1D2988F1 |
_sceIoLseekAsync
Version | NID |
---|---|
1.69 | 0x2300858E |
sceIoSetPriorityForSystem
Version | NID |
---|---|
1.69 | 0x27373135 |
_sceIoComplete
Version | NID |
---|---|
1.69 | 0x34E6A06E |
sceIoWrite
Version | NID |
---|---|
1.69 | 0x34EFD876 |
_sceIoGetThreadDefaultPriorityForSystem
Version | NID |
---|---|
1.69 | 0x36CAF911 |
_sceIoSetThreadDefaultPriorityForSystem
Version | NID |
---|---|
1.69 | 0x38FE853B |
sceIoFlockForSystem
Version | NID |
---|---|
1.69 | 0x3E98E422 |
_sceIoDevctlAsync
Version | NID |
---|---|
1.69 | 0x3EE3F66E |
sceIoDclose
Version | NID |
---|---|
1.69 | 0x422A221A |
_sceIoRename
Version | NID |
---|---|
1.69 | 0x4912F748 |
sceIoLseek32
Version | NID |
---|---|
1.69 | 0x49252B9B |
sceIoSetThreadDefaultPriority
Version | NID |
---|---|
1.69 | 0x49312108 |
_sceIoDevctl
Version | NID |
---|---|
1.69 | 0x515AC017 |
sceIoGetstatByFdAsync
Version | NID |
---|---|
1.69 | 0x5167AC1E |
_sceIoPread
Version | NID |
---|---|
1.69 | 0x539FD5C4 |
_sceIoGetstatByFdAsync
Version | NID |
---|---|
1.69 | 0x554292F0 |
_sceIoChstatByFdAsync
Version | NID |
---|---|
1.69 | 0x58010F40 |
_sceIoGetThreadDefaultPriority
Version | NID |
---|---|
1.69 | 0x5DC29460 |
_sceIoSync
Version | NID |
---|---|
1.69 | 0x5DD867F7 |
_sceIoRemoveAsync
Version | NID |
---|---|
1.69 | 0x5FFA47E2 |
_sceIoDreadAsync
Version | NID |
---|---|
1.69 | 0x64B233B8 |
_sceIoSetThreadDefaultPriority
Version | NID |
---|---|
1.69 | 0x654E27B1 |
_sceIoSyncByFdAsync
Version | NID |
---|---|
1.69 | 0x6F78FAFE |
_sceIoGetPriorityForSystem
Version | NID |
---|---|
1.69 | 0x70B7BB52 |
sceIoReadAsync
Version | NID |
---|---|
1.69 | 0x773EBD45 |
_sceIoRemove
Version | NID |
---|---|
1.69 | 0x78955C65 |
sceIoSyncByFdAsync
Version | NID |
---|---|
1.69 | 0x7E1367CB |
sceIoSetProcessDefaultPriority
Version | NID |
---|---|
1.69 | 0x7F2ABBAF |
_sceIoRenameAsync
Version | NID |
---|---|
1.69 | 0x81794921 |
_sceIoSyncAsync
Version | NID |
---|---|
1.69 | 0x86DB0C0E |
_sceIoDread
Version | NID |
---|---|
1.69 | 0x8713D662 |
_sceIoWrite
Version | NID |
---|---|
1.69 | 0x8C319CF0 |
_sceIoGetstat
Version | NID |
---|---|
1.69 | 0x8E7E11F2 |
sceIoCloseAsync
Version | NID |
---|---|
1.69 | 0x8EA3616A |
_sceIoMkdir
Version | NID |
---|---|
1.69 | 0x8F1ACC32 |
_sceIoCompleteMultiple
Version | NID |
---|---|
1.69 | 0x9111D004 |
_sceIoLseek32
Version | NID |
---|---|
1.69 | 0x92BDA6DA |
_sceIoPwrite
Version | NID |
---|---|
1.69 | 0x9654094B |
_sceIoGetPriority
Version | NID |
---|---|
1.69 | 0x9E3F880D |
sceIoGetThreadDefaultPriority
Version | NID |
---|---|
1.69 | 0xA176CD03 |
_sceIoLseek
Version | NID |
---|---|
1.69 | 0xA604764A |
sceIoChstatByFdAsync
Version | NID |
---|---|
1.69 | 0xA9F89275 |
_sceIoGetProcessDefaultPriority
Version | NID |
---|---|
1.69 | 0xB0486482 |
_sceIoSetPriority
Version | NID |
---|---|
1.69 | 0xB14192F0 |
_sceIoReadAsync
Version | NID |
---|---|
1.69 | 0xB2B891E6 |
_sceIoPwriteAsync
Version | NID |
---|---|
1.69 | 0xB2D0B2F4 |
_sceIoChstatAsync
Version | NID |
---|---|
1.69 | 0xB4B021D9 |
sceIoSetThreadDefaultPriorityForSystem
Version | NID |
---|---|
1.69 | 0xB9C9C9CF |
_sceIoPreadAsync
Version | NID |
---|---|
1.69 | 0xBCF5684D |
sceIoDopenAsync
Version | NID |
---|---|
1.69 | 0xC49C312F |
sceIoClose
Version | NID |
---|---|
1.69 | 0xC70B8886 |
_sceIoWriteAsync
Version | NID |
---|---|
1.69 | 0xC92AF88F |
_sceIoOpen
Version | NID |
---|---|
1.69 | 0xCC67B6FD |
sceIoCancel
Version | NID |
---|---|
1.69 | 0xCEF48835 |
sceIoComplete
Version | NID |
---|---|
1.69 | 0xD1C49D2F |
_sceIoChstat
Version | NID |
---|---|
1.69 | 0xD2EE455F |
_sceIoSetProcessDefaultPriority
Version | NID |
---|---|
1.69 | 0xD302DCB9 |
_sceIoGetstatAsync
Version | NID |
---|---|
1.69 | 0xD414C89F |
sceIoDcloseAsync
Version | NID |
---|---|
1.69 | 0xDC2D7D38 |
_sceIoIoctlAsync
Version | NID |
---|---|
1.69 | 0xE00DC256 |
_sceIoChstatByFd
Version | NID |
---|---|
1.69 | 0xE0BE2A30 |
sceIoWriteAsync
Version | NID |
---|---|
1.69 | 0xE0D63D2A |
_sceIoGetstatByFd
Version | NID |
---|---|
1.69 | 0xE6C53567 |
_sceIoSetPriorityForSystem
Version | NID |
---|---|
1.69 | 0xE6C923B3 |
_sceIoDopen
Version | NID |
---|---|
1.69 | 0xE6E614B5 |
sceIoGetPriorityForSystem
Version | NID |
---|---|
1.69 | 0xEF5432ED |
sceIoGetPriority
Version | NID |
---|---|
1.69 | 0xF2A472A1 |
_sceIoRead
Version | NID |
---|---|
1.69 | 0xF3C9E783 |
_sceIoSyncByFd
Version | NID |
---|---|
1.69 | 0xF437545D |
_sceIoCloseAsync
Version | NID |
---|---|
1.69 | 0xF4E13260 |
_sceIoDopenAsync
Version | NID |
---|---|
1.69 | 0xF58286C3 |
sceIoDreadAsync
Version | NID |
---|---|
1.69 | 0xF59F37B0 |
_sceIoMkdirAsync
Version | NID |
---|---|
1.69 | 0xF5C58B21 |
_sceIoCancel
Version | NID |
---|---|
1.69 | 0xF5DEEA19 |
_sceIoClose
Version | NID |
---|---|
1.69 | 0xF69FB394 |
_sceIoDclose
Version | NID |
---|---|
1.69 | 0xFAFF0002 |
sceIoGetThreadDefaultPriorityForSystem
Version | NID |
---|---|
1.69 | 0xFCBCEAED |
sceIoRead
Version | NID |
---|---|
1.69 | 0xFDB32293 |
_sceIoRmdir
Version | NID |
---|---|
1.69 | 0xFFFB4D76 |