|
|
Line 402: |
Line 402: |
| |- | | |- |
| | 1.69 | | | 1.69 |
| | 0xD60B5C638 | | | 0xD60B5C63 |
| |} | | |} |
| <source lang="c"> | | <source lang="c"> |
Revision as of 20:39, 15 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
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
VFS Operations
- implemented operation is marked as
implemented
- not implemented is marked as
- return 0 placeholder is marked as
0
- return error is marked with corresponding error name
Function |
sdstor_dev_fs |
exfat |
dummy_ttyp_dev_fs |
PFS_REDIRECT_INF |
PFS_GDSD_INF |
PFS_AC_INF
|
1 |
implemented |
implemented |
implemented |
implemented |
implemented |
implemented
|
2 |
SCE_ERROR_ERRNO_EBUSY |
implemented |
0 |
implemented |
implemented |
implemented
|
3 |
implemented |
implemented |
implemented |
implemented |
implemented |
implemented
|
4 |
|
implemented |
|
|
|
|
5 |
|
|
|
|
|
|
6 |
|
|
|
|
|
|
7 |
|
implemented |
|
0 |
implemented |
implemented
|
8 |
|
|
|
|
|
|
9 |
0 |
0 |
0 |
0 |
0 |
0
|
10 |
|
0 |
0 |
0 |
0 |
0
|
11 |
|
|
|
|
|
|
12 |
implemented |
implemented |
|
implemented |
implemented |
implemented
|
13 |
implemented |
implemented |
|
implemented |
implemented |
implemented
|
VFS Node Operations
- implemented operation is marked as
implemented
- not implemented is marked as
- return 0 placeholder is marked as
0
- return error is marked with corresponding error name
Function |
sdstor_dev_fs |
exfat |
dummy_ttyp_dev_fs |
PFS_REDIRECT_INF |
PFS_GDSD_INF |
PFS_AC_INF
|
1 |
implemented |
implemented |
0 |
implemented |
implemented |
implemented
|
2 |
|
implemented |
|
implemented |
implemented |
implemented
|
3 |
implemented |
implemented |
0 |
implemented |
implemented |
implemented
|
4 |
implemented |
implemented |
implemented |
implemented |
implemented |
implemented
|
5 |
implemented |
implemented |
0 |
implemented |
implemented |
implemented
|
6 |
implemented |
implemented |
implemented |
implemented |
implemented |
implemented
|
7 |
implemented |
implemented |
0 |
implemented |
implemented |
implemented
|
8 |
|
SCE_ERROR_ERRNO_EUNSUP |
0 |
implemented |
implemented |
implemented
|
9 |
implemented |
implemented |
|
implemented |
implemented |
implemented
|
10 |
|
implemented |
|
implemented |
implemented |
implemented
|
11 |
|
implemented |
|
implemented |
implemented |
implemented
|
12 |
|
implemented |
|
implemented |
implemented |
implemented
|
13 |
|
implemented |
|
implemented |
implemented |
implemented
|
14 |
|
implemented |
|
implemented |
implemented |
implemented
|
15 |
|
implemented |
|
implemented |
implemented |
implemented
|
16 |
|
implemented |
|
implemented |
implemented |
implemented
|
17 |
|
implemented |
|
implemented |
implemented |
implemented
|
18 |
|
|
|
|
|
|
19 |
implemented |
implemented |
|
implemented |
implemented |
implemented
|
20 |
implemented |
implemented |
|
implemented |
implemented |
implemented
|
21 |
0 |
implemented |
0 |
implemented |
implemented |
implemented
|
22 |
|
implemented |
|
|
|
|
23 |
|
implemented |
|
|
|
|
24 |
0 |
implemented |
|
implemented |
implemented |
implemented
|
25 |
|
implemented |
|
implemented |
implemented |
implemented
|
26 |
|
implemented |
|
implemented |
implemented |
implemented
|
27 |
|
implemented |
|
implemented |
implemented |
implemented
|
28 |
|
implemented |
|
implemented |
implemented |
implemented
|
29 |
|
|
|
|
|
|
Types
typedef struct vfs_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
}vfs_block_dev_info;
typedef struct vfs_mount_point_info_base
{
char* unixMount;
uint32_t unk_4; //zero
uint32_t devMajor;
uint32_t devMinor;
char* filesystem;
uint32_t unk_14; //zero
vfs_block_dev_info* blockDev1;
uint32_t unk_1C; //zero
} vfs_mount_point_info_base;
typedef struct vfs_mount_point_info //size is 0x38
{
uint32_t vshMountId;
vfs_mount_point_info_base base;
vfs_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
}vfs_mount_point_info;
Data segment layout
Address |
Size |
Description
|
0x0000 |
0x1A90 |
unknown
|
0x1A90 |
0x700 |
array of 32 elements of vfs_mount_point_info
|
0x2190 |
0x10 |
unknown
|
0x21A0 |
0x40 |
unknown
|
0x21E0 |
0x3C |
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
|
//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); // sceIoOpenForDriver ?
int (*func2)(void* ctx);
int (*func3)(void* ctx);
int (*func4)(void* ctx);
int (*func5)(void* ctx); // sceIoChstatForDriver ?
int (*func6)(void* ctx); // sceIoWriteForDriver ?
int (*func7)(void* ctx); // sceIoLseekForDriver ?
int (*func8)(void* ctx);
int (*func9)(void* ctx); // sceIoCloseForDriver ?
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);
};
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
|
int sceVfsMount(struct vfs_mount_point_info_base* data);
sceVfsGetNewNode
Version
|
NID
|
1.69
|
0xD60B5C63
|
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
|
Device Drivers