SceIofilemgr is the primary interface for file IO. Read File Management for more information on file IO.
Module
This module exists 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
|
3.60 |
SceIofilemgr |
? |
Kernel |
0x9642948C
|
Libraries
Known NIDs
Mount Points
This table is stored in data segment of SceIofilemgr as array of vfs_mount_point_info
elements.
When sceVfsMount is executed it finds vfs_add_data element by filesystem string and then selects appropriate mount scenario by devMinor and devMajor.
<rnd>
means random numeric string of length 13
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
|
/PD<rnd> |
0x3 |
0x1001 |
PFS_GDSD_INF |
PD<rnd>0 |
|
0x0
|
Block Device Naming Rules
First level prefix: hardware device
- int: internal eMMC
- ext: external sdcard?
- gcd: gamecard
- mcd: ?
- uma: USB mass for PSTV (or pins on FAT PSVita)
- usd: ?
- xmc: external memory card
Second level prefix: partition table style?
- lp: sce partition table?
- pp: mbr partition table?
Third level prefix: active/backup selection (only used for SBL and os0:)
- ina: inactive
- act: active
- ign: ignore (for devices that don't support this)
Fourth level prefix: partition
- a
- unused
- idstor
- sloader
- os
- vsh
- vshdata
- vtrm
- user
- userext
- gamero
- gamerw
- updater
- sysdata
- mediaid
- pidata
- entire
Partition Block Devices
Each partition has numeric alias (string) that looks like to be used to reference the partition.
Numeric names most likely follow order of partitions in MBR.
To access device node use /dev
prefix (like /dev/gcd-lp-ign-gamero
).
In total there can be 16 aliases from 0 to 15 per physical device (eMMC, Game Card, Memory Card). Alias 16 is hardcoded and is called entire
.
Aliases 0-15 correspond to eMMC.
Aliases 100-115 correspond to Game Card.
Aliases 200-215 correspond to Memory Card.
block device |
numeric name
|
int-lp-ign-idstor (need to confirm) |
000
|
int-lp-ign-sloader (need to confirm) |
001
|
- |
002
|
int-lp-act-os |
003
|
- |
004
|
int-lp-ign-sysdata |
005
|
int-lp-ign-vtrm |
006
|
int-lp-ign-vsh |
007
|
int-lp-ign-vshdata |
008
|
int-lp-ign-updater |
009
|
int-lp-ign-pidata |
010
|
int-lp-ign-user |
011
|
int-lp-ign-userext |
012
|
int-lp-act-entire |
016
|
gcd-lp-ign-gamero, gcd-lp-act-mediaid (need to confirm) |
100
|
gcd-lp-ign-gamerw (need to confirm) |
101
|
ext-lp-act-entire (need to confirm) |
116
|
mcd-lp-act-mediaid |
200
|
- |
201
|
mcd-lp-act-entire (need to confirm) |
216
|
VFS Implementation
Information can be found on separate page VFS Implementation
Types
typedef struct vfs_node_info //size is 0x38
{
char name[0x20];
vfs_node* node; //can be zero
uint32_t unk_24; // probably size of vfs_node
uint32_t unk_28; // probably flags
vfs_node_info* unk_2C; //can be zero
vfs_node_info* unk_30; //can be zero
vfs_node_info* unk_34; //can be zero
} vfs_node_info;
//looks like this structure is used to get some response into "error" field
//when executing sceKernelSignalCondTo calls
//this structure is used by SceIofileDaemon when it monitors mount/unmount async requests
//in SceIofilemgrMount thread using SceIofilemgrMount conditional variable
//upon completion it issues the signal and result of operation is stored in error field
//it looks like operations 1/2 are used for normal filesystems
//operations 3/4 are used for PFS_GDSD_INF filesystem
typedef struct cond_ctx
{
uint32_t op_index; //operation index. 1,3 - mount. 2,4 - unmount
uint32_t unk_4;
uint32_t unk_8;
uint32_t unk_C;
uint32_t unk_10;
uint32_t unk_14;
uint32_t unk_18;
uint32_t unk_1C;
int error; //either error code or 0
cond_ctx* next; //0 means end of list
} cond_ctx;
typedef struct ctx_19D4
{
void* unk_0;
uint32_t unk_4;
vfs_node* offset; // pool of vfs_nodes with 0x1000 elements.
// it is used in sceVfsGetNewNode, mount/unmount and node find routines
uint32_t size;
uint32_t count;
uint32_t unk_14;
uint32_t unk_18;
uint32_t unk_1C;
} ctx_19D4;
typedef struct ctx_11C //size is 0x220
{
void* unk_0;
uint32_t unk_4;
void* offset; // pointer to array of byte size 0x10000 with 0x40 elements of size 0x400
uint32_t size;
uint32_t count;
uint8_t data[0x20C];
} ctx_11C;
typedef struct io_scheduler_dispatcher //size is 0xB8
{
char unk_0[0x50];
io_scheduler* unk_50; // Internal
io_scheduler* unk_54; // Game Card
io_scheduler* unk_58; // Removable
io_scheduler* unk_5C; // Host File System
io_scheduler* unk_60; // Default
uint32_t unk_64; // pointer to unknown module data section
uint32_t unk_68; //SceIoSchedulerDispatcher fast mutex
uint32_t unk_6C;
char unk_70[0x30];
uint32_t unk_A0;
uint32_t unk_A4;
SceUID unk_A8; //SceIoSchedulerDispatcher event flag uid
uint32_t unk_AC; // counter
uint32_t unk_B0; // flag
uint32_t unk_B4; // 0
} io_scheduler_dispatcher;
typedef struct io_scheduler_item //size is 0x14 - allocated from SceIoScheduler heap
{
io_scheduler* unk_0; // parent
uint32_t unk_4; // 0
uint32_t unk_8; // 0
uint32_t unk_C; // 0
uint32_t unk_10; // pointer to unknown module data section
} io_scheduler_item;
enum io_device_code
{
Internal = 0x100,
Game_Card = 0x201,
Removable = 0x202,
Host_File_System = 0x300,
Default = 0x0
};
typedef struct io_scheduler //size is 0xA8 - allocated from SceIoScheduler heap
{
io_device_code unk_0;
io_scheduler_item* unk_4; //item 0
io_scheduler_item* unk_8; //item 1
io_scheduler_item* unk_C; //item 2
io_scheduler_item* unk_10; //item 3
io_scheduler_item* unk_14; //item 4
io_scheduler_item* unk_18; //item 5
io_scheduler_item* unk_1C; //item 6
io_scheduler_item* unk_20; //item 7
io_scheduler_item* unk_24; //item 8
io_scheduler_item* unk_28; //item 9
io_scheduler_item* unk_2C; //item 10
io_scheduler_item* unk_30; //item 11
io_scheduler_item* unk_34; //item 12
io_scheduler_item* unk_38; //item 13
io_scheduler_item* unk_3C; //item 14
io_scheduler_item* unk_40; //item 15
uint32_t unk_44; // flag1 0x40000 or 0x00
uint32_t unk_48; // flag2 0x40000 or 0x00
io_scheduler_dispatcher* unk_4C; // parent
SceUID unk_50; //SceIoScheduler mutex
SceUID unk_54; //SceIoScheduler cond
char unk_58; // 0
char unk_59; // 0
char unk_5A; // 0
char unk_5B; // 0
uint32_t unk_5C; // 0
//this is probably separate structure
SceUID unk_60; //SceIoSchedWorker thread id
SceUID unk_64; //SceIoScheduler mutex from self
SceUID unk_68; //SceIoScheduler cond from self
io_scheduler* unk_6C; //pointer to self
uint32_t unk_70; // 0
uint16_t unk_74; // 0
uint16_t unk_76; // 0
uint32_t unk_78; // 0
uint32_t unk_7C; // 0
uint32_t unk_80; //
uint32_t unk_84; // some flag
uint32_t unk_88; //0x80
uint32_t unk_8C; //0x80
uint32_t unk_90; //0x80
uint32_t unk_94; //0x80
uint32_t unk_98; //0x80
uint32_t unk_9C; //0x80
uint32_t unk_A0; // 0
uint32_t unk_A4; // 0
} io_scheduler;
//context that is used for dispatching i/o operations
typedef struct io_context //size is 0xB8
{
uint32_t unk_0;
uint32_t unk_4;
uint32_t unk_8;
uint32_t unk_C;
uint16_t unk_10;
uint16_t unk_12;
uint16_t unk_14;
uint16_t unk_16;
void *data_0; //0x18
uint32_t unk_1C;
SceSize size_0; //0x20
uint32_t io_op_index; // 0x24
uint32_t ioctlOutdata0;
io_device_code device_code; // 0x2C - ioctlOutdata1
char async; //0x30
char unk_31;
char unk_32;
char unk_33;
uint32_t pid; //0x34 = ksceKernelGetProcessId
uint32_t tid; //0x38 = ksceKernelGetThreadId
uint32_t unk_3C; // = SceThreadmgrForDriver_fa54d49a
uint32_t unk_40; // = SceThreadmgrForDriver_332e127c
uint32_t cpu_mask; // 0x44 = ksceKernelGetThreadCpuAffinityMask
uint32_t thread_priority; //0x48 = ksceKernelGetThreadCurrentPriority
void* list0; //0x4C pointer to some linked list with elements of size 0x14
uint32_t listSize; //0x50 = number of items in linst
void* list1; //0x54 = pointer to some linked list with elements of size 0x14
uint32_t sizeOfList; //0x58 = size of list in bytes
uint16_t state; // 0x5C = bit 16 of state where state = (MRC p15, 0, state, c13, c0, 3)
uint16_t unk_5E;
uint32_t unk_60;
SceUID fd; //0x64
void *data_1; //0x68
uint32_t unk_6C;
SceSize size_1; //0x70
uint32_t unk_74;
uint32_t unk_78; // = -1
uint32_t unk_7C; // = -1
uint32_t op_result; // 0x80 - result of i/o operation
uint32_t unk_84;
void* unk_88;
uint32_t unk_8C;
uint32_t unk_90;
uint32_t unk_94;
uint32_t unk_98;
uint32_t unk_9C;
uint32_t unk_A0;
uint32_t unk_A4;
uint32_t unk_A8;
uint32_t unk_AC;
SceInt64 unk_B0; // = ksceKernelGetSystemTimeWide
} io_context;
Data segment layout
Address |
Size |
Description
|
0x0000 |
0x4 |
unknown
|
0x0004 |
0x8 |
pointer to SceIofile heap SceUID at offset 0x54
|
0x0008 |
0x4 |
unknown
|
0x000C |
0x4 |
flag that enables usage of sceFiosKernel functions (like OverlayResolveSync) in i/o operations in transition from user to kernel
|
0x00010 |
0x4 |
flag that enables usage of sceFiosKernel functions (like OverlayResolveSync) in i/o operations in transition from user to kernel
|
0x00014 |
0x4 |
flag that enables usage of sceFiosKernel functions (like OverlayResolveSync) in i/o operations in transition from user to kernel
|
0x00018 |
0x4 |
flag that enables usage of sceFiosKernel functions (like OverlayResolveSync) in i/o operations in transition from user to kernel
|
0x0001C |
0x4 |
unknown
|
0x0020 |
0x4 |
SceIofileDevWaitForVC event flag SceUID
|
0x0024 |
0x4 |
unknown
|
0x0028 |
0x4 |
SceIofileDevWaitForSD event flag SceUID
|
0x002C |
0x4 |
pointed by vfs_mount_cc for SceIofileDevWaitForSD
|
0x0030 |
0x4 |
SceIofileDevWaitForMC event flag SceUID
|
0x0034 |
0x4 |
unknown
|
0x0038 |
0x4 |
pointed by vfs_mount_cc for SceIofileDevWaitForVC
|
0x003C |
0x4 |
pointed by vfs_mount_cc for SceIofileDevWaitForMC
|
0x0040 |
0x10 |
unknown
|
0x0050 |
0x4 |
address of some callback function called in all vfs operations
|
0x0054 |
0x4 |
SceIofile heap SceUID
|
0x0058 |
0x80 |
unknown
|
0x00D8 |
0x4 |
SceIoVfsHeap heap SceUID
|
0x00DC |
0x4 |
SceIoFileDebug memblock SceUID
|
0x00E0 |
0x3C |
unknown
|
0x011C |
0x4 |
ctx_11C* pointer to structure
|
0x0120 |
0x4C |
unknown
|
0x016C |
0xC |
structure used together with 19F8
|
0x0178 |
0x4 |
unknown
|
0x017C |
0x2C |
SceClass for SceVfsFile
|
0x01A8 |
0x1500 |
array of 96 elements of vfs_node_info
|
0x16A8 |
0x4 |
SceVfsRfsLock fast mutex
|
0x16AC |
0x3C |
unknown
|
0x16E8 |
0x2C |
SceClass for SceIoMountEvent
|
0x1714 |
0xC |
unknown
|
0x1720 |
0x04 |
cond_ctx* pointer to the linked list
|
0x1724 |
0x4 |
SceIoScheduler heap SceUID
|
0x1728 |
0xB8 |
io_scheduler_dispatcher structure
|
0x17E0 |
0x2C |
SceClass for SceIoAsyncEvent - used in all async i/o operations
|
0x180C |
0xC |
unknown
|
0x1818 |
0x2C |
SceClass for SceIoErrorEvent
|
0x1844 |
0xC |
unknown
|
0x1850 |
0x4 |
SceIofileDaemonLock fast mutex
|
0x1854 |
0x40 |
unknown
|
0x1894 |
0x4 |
SceIofile fast mutex
|
0x1898 |
0x7C |
unknown
|
0x1914 |
0x4 |
function pointer t_1914_callback
|
0x1918 |
0x4 |
SceIofileFlock fast mutex
|
0x191C |
0x44 |
unknown
|
0x1960 |
0x4 |
some i/o flag
|
0x1964 |
0x4 |
flag that indicates that any i/o operation happened 1/0. changed by each i/o operation. cleared on suspend.
|
0x1968 |
0x18 |
unknown
|
0x1980 |
0x4 |
counter of not finished i/o operations. changed by each i/o operation.
|
0x1984 |
0xC |
unknown
|
0x1990 |
0x4 |
SceVfsMntlistLock fast mutex
|
0x1994 |
0x3C |
unknown
|
0x19D0 |
0x4 |
vfs_mount* singly linked list
|
0x19D4 |
0x1C |
structure ctx_19D4
|
0x19F0 |
0x8 |
unknown
|
0x19F8 |
0x4 |
address used for ksceKernelCpuSuspendIntr
|
0x19FC |
0x4 |
vfs_mount* pointer
|
0x1A00 |
0x4 |
SceVfsNcacheLock fast mutex
|
0x1A04 |
0x40 |
unknown
|
0x1A44 |
0x4 |
address used for ksceKernelCpuSuspendIntr
|
0x1A48 |
0x4 |
unknown
|
0x1A4C |
0x4 |
SceVfsLock fast mutex
|
0x1A50 |
0x3C |
unknown
|
0x1A8C |
0x04 |
SceIofilemgrMount thread SceUID
|
0x1A90 |
0x700 |
array of 32 elements of vfs_mount_point_info
|
0x2190 |
0x4 |
SceIofilemgrMount cond SceUID
|
0x2194 |
0x4 |
SceIofilemgrMount SceUID mutexid
|
0x2198 |
0x4 |
flag that indicates that IoSchedulerDispatcher functionality is initialized 1/0
|
0x219C |
0x4 |
unknown
|
0x21A0 |
0x40 |
unknown
|
0x21E0 |
0x20 |
unknown
|
0x2200 |
0x04 |
SceIofilemgrDaemon thread SceUID
|
0x2204 |
0x8 |
unknown
|
0x220C |
0x4 |
SceIofilemgrDaemon event flag SceUID
|
0x2210 |
0x4 |
void* to heap alloc of size 0x100
|
0x2214 |
0x4 |
void* to heap alloc of size 0x100
|
0x2218 |
0x4 |
= 3
|
0x221C |
0x20 |
vfs_add_data dummy_ttyp_dev_fs node
|
SceIofilemgrForDriver
sceIoMountForDriver
Version
|
NID
|
3.60
|
0xD070BC48
|
operation index 1 in cond_ctx
// intermediate function between sceAppMgrGameDataMountForDriver and sceVfsMount
int sceIoMountForDriver(int vshMountId, const char *path, int permission, int unk3, int arg_0, int arg_4);
sceIoUmountForDriver
Version
|
NID
|
3.60
|
0x20574100
|
operation index 2 in cond_ctx
// intermediate function between sceAppMgrUmountForDriver and sceVfsUnmount
int sceIoUmountForDriver(int vshMountId, int unk1, int unk2, int unk3);
scePfsMgrVfsMountForDriver
Version
|
NID
|
3.60
|
0xFEEE44A9
|
operation index 3 in cond_ctx
// this function can be used with PFS_GDSD_INF filesystem
int scePfsMgrVfsMountForDriver(vfs_mount_point_info_base* mnt, int unk1, int unk2);
scePfsMgrVfsUmountForDriver
Version
|
NID
|
3.60
|
0xD220539D
|
operation index 4 in cond_ctx
int scePfsMgrVfsUmountForDriver(vfs_unmount_data* umnt, int unk1, int unk2);
sceVfsNodeWaitEventFlag
Version
|
NID
|
3.60
|
0xAA45010B
|
calls ksceKernelWaitEventFlag
using event_flag_SceVfsVnode
from vfs_node
int sceVfsNodeWaitEventFlag(vfs_node* node)
sceVfsNodeSetEventFlag
Version
|
NID
|
3.60
|
0x6048F245
|
calls ksceKernelSetEventFlag
using event_flag_SceVfsVnode
from vfs_node
int sceVfsNodeSetEventFlag(vfs_node* node)
sceVfsUnmount
Version
|
NID
|
1.69
|
0x9C7E7B76
|
3.60
|
0x9C7E7B76
|
int sceVfsUnmount(vfs_unmount_data *data);
sceVfsDeleteVfs
Version
|
NID
|
1.69
|
0x9CBFA725
|
3.60
|
0x9CBFA725
|
int sceVfsDeleteVfs(const char *name, void **deleted_node);
sceVfsAddVfs
Version
|
NID
|
1.69
|
0x673D2FCD
|
3.60
|
0x673D2FCD
|
int sceVfsAddVfs(vfs_add_data *data);
sceVfsMount
Version
|
NID
|
1.69
|
0xB62DE9A6
|
3.60
|
0xB62DE9A6
|
int sceVfsMount(vfs_mount_point_info_base* mnt);
sceVfsGetNewNode
Version
|
NID
|
1.69
|
0xD60B5C63
|
3.60
|
0xD60B5C63
|
int sceVfsGetNewNode(vfs_mount* mount, node_ops2 *ops, int unused, vfs_node **node);
sceIoDreadForDriver
Version
|
NID
|
1.69
|
0x20CF5FC7
|
3.60
|
0x20CF5FC7
|
Call interface is same as sceIoDread
int sceIoDreadForDriver(SceUID fd, SceIoDirent *dir);
sceIoDreadForDriver_2
Version
|
NID
|
3.60
|
0x03051B02
|
Derived from _vshIoDread
Implementation is completely the same as sceIoDreadForDriver. The only difference is that st_attr in SceIoStat is not set.
int sceIoDreadForDriver_2(SceUID fd, SceIoDirent *dir);
sceIoWriteForDriver
Version
|
NID
|
1.69
|
0x21EE91F0
|
3.60
|
0x21EE91F0
|
Call interface is same as sceIoWrite
int sceIoWriteForDriver(SceUID fd, const void *data, SceSize size);
sceIoDopenForDriver
Version
|
NID
|
1.69
|
0x463B25CC
|
3.60
|
0x463B25CC
|
Call interface is same as sceIoDopen
SceUID sceIoDopenForDriver(const char *dirname);
sceIoLseekForDriver
Version
|
NID
|
1.69
|
0x62090481
|
3.60
|
0x62090481
|
Call interface is same as sceIoLseek
SceOff sceIoLseekForDriver(SceUID fd, SceOff offset, int whence);
sceIoOpenForDriver
Version
|
NID
|
1.69
|
0x75192972
|
3.60
|
0x75192972
|
Call interface is same as sceIoOpen.
SceUID sceIoOpenForDriver(const char *filename, int flag, SceIoMode mode);
sceIoOpenForPidForDriver
Version
|
NID
|
3.60
|
0xC3D34965
|
This is a wrapper for sceIoOpenForDriver.
Pid is used for sceFiosKernelOverlayResolveSyncForDriver
.
SceUID sceIoOpenForPidForDriver(SceUID pid, const char *filename, int flag, SceIoMode mode);
sceIoChstatForDriver
Version
|
NID
|
1.69
|
0x7D42B8DC
|
3.60
|
0x7D42B8DC
|
Call interface is same as sceIoChstat
int sceIoChstatForDriver(const char *name, const SceIoStat *buf, unsigned int cbit);
sceIoChstatForDriver_2
Version
|
NID
|
3.60
|
0x1F98BD50
|
Derived from _vshIoChstat
Implementation is completely the same as sceIoChstatForDriver
. The only difference is that (bits = bits & (~0x10000)) operation is not applied.
int sceIoChstatForDriver_2(const char *name, const SceIoStat *buf, unsigned int cbit);
sceIoGetstatForDriver
Version
|
NID
|
1.69
|
0x75C96D25
|
3.60
|
0x75C96D25
|
Call interface is same as sceIoGetstat
int sceIoGetstatForDriver(const char *name, SceIoStat *buf);
sceIoGetstatForDriver_2
Version
|
NID
|
3.60
|
0xD6503624
|
Derived from _vshIoGetstat
Implementation is completely the same as sceIoGetstatForDriver. The only difference is that st_attr in SceIoStat *buf is not set.
int sceIoGetstatForDriver_2(const char *name, SceIoStat *buf);
sceIoMkdirForDriver
Version
|
NID
|
1.69
|
0x7F710B25
|
3.60
|
0x7F710B25
|
Call interface is same as sceIoMkdir
int sceIoMkdirForDriver(const char *dirname, SceIoMode mode);
sceIoReadForDriver
Version
|
NID
|
1.69
|
0xE17EFC03
|
3.60
|
0xE17EFC03
|
Call interface is same as sceIoRead
int sceIoReadForDriver(SceUID fd, void *buf, SceSize nbyte);
sceIoCloseForDriver
Version
|
NID
|
1.69
|
0xF99DD8A3
|
3.60
|
0xF99DD8A3
|
Call interface is same as sceIoClose
int sceIoCloseForDriver(SceUID fd);
sceIoRenameForDriver
Version
|
NID
|
1.69
|
0xDC0C4997
|
3.60
|
0xDC0C4997
|
Call interface is same as sceIoRename
int sceIoRenameForDriver(const char *oldname, const char *newname);
sceIoRemoveForDriver
Version
|
NID
|
1.69
|
0x0D7BB3E1
|
3.60
|
0x0D7BB3E1
|
Call interface is same as sceIoRemove
int sceIoRemoveForDriver(const char *filename);
sceIoCancelForDriver
Version
|
NID
|
3.60
|
0x6D59658D
|
Derived from sceIoCancel
sceIoChstatAsyncForDriver
Version
|
NID
|
3.60
|
0x7EC442BF
|
Derived from _sceIoChstatAsync
sceIoChstatByFdAsyncForDriver
Version
|
NID
|
3.60
|
0xEC974400
|
Derived from sceIoChstatByFdAsync
sceIoChstatByFdForDriver
Version
|
NID
|
3.60
|
0xDF57A75F
|
Derived from _sceIoChstatByFd
int sceIoChstatByFdForDriver(SceUID fd, const SceIoStat *buf, unsigned int cbit);
sceIoCloseAsyncForDriver
Version
|
NID
|
3.60
|
0x11C57CC6
|
Derived from sceIoCloseAsync
sceIoDevctlAsyncForDriver
Version
|
NID
|
3.60
|
0xA9302946
|
Derived from _sceIoDevctlAsync
sceIoDevctlForDriver
Version
|
NID
|
3.60
|
0x16882FC4
|
Derived from _sceIoDevctl
int sceIoDevctlForDriver(const char *devname, int cmd, const void *arg, SceSize arglen, void *bufp, SceSize buflen);
// Return: >=0 on success (driver-dependent)
sceIoDcloseForDriver
Version
|
NID
|
3.60
|
0x19C81DD6
|
Derived from sceIoDclose
int sceIoDcloseForDriver(SceUID fd);
sceIoFlockForDriver
Version
|
NID
|
3.60
|
0x16336A0D
|
Derived from sceIoFlockForSystem
sceIoGetstatByFdAsyncForDriver
Version
|
NID
|
3.60
|
0x0FEE1238
|
Derived from sceIoGetstatByFdAsync
sceIoGetstatByFdForDriver
Version
|
NID
|
3.60
|
0x462F059B
|
Derived from _sceIoGetstatByFd
int sceIoGetstatByFdForDriver(SceUID fd, SceIoStat *buf);
// Return: 0 on success
sceIoGetstatAsyncForDriver
Version
|
NID
|
3.60
|
0x94A5304A
|
Derived from _sceIoGetstatAsync
sceIoIoctlAsyncForDriver
Version
|
NID
|
3.60
|
0xB761E91B
|
Derived from _sceIoIoctlAsync
sceIoIoctlForDriver
Version
|
NID
|
3.60
|
0x161CD33F
|
Derived from _sceIoIoctl
int sceIoIoctlForDriver(SceUID fd, int cmd, const void *argp, SceSize arglen, void *bufp, SceSize buflen);
// Return: >=0 on success (driver-dependent)
sceIoLseekAsyncForDriver
Version
|
NID
|
3.60
|
0x541BAABD
|
Derived from _sceIoLseekAsync
sceIoMkdirAsyncForDriver
Version
|
NID
|
3.60
|
0x27003443
|
Derived from _sceIoMkdirAsync
sceIoOpenAsyncForDriver
Version
|
NID
|
3.60
|
0x451001DE
|
Derived from _sceIoOpenAsync
sceIoPreadAsyncForDriver
Version
|
NID
|
3.60
|
0x64A46A2C
|
Derived from _sceIoPreadAsync
sceIoPreadForDriver
Version
|
NID
|
3.60
|
0x2A17515D
|
Derived from _sceIoPread
int sceIoPreadForDriver(SceUID uid, void *data, int size, SceOff offset);
// Return: Number of bytes actually read
sceIoPwriteAsyncForDriver
Version
|
NID
|
3.60
|
0x202CDDE3
|
Derived from _sceIoPwriteAsync
sceIoPwriteForDriver
Version
|
NID
|
3.60
|
0x5F1512C8
|
Derived from _sceIoPwrite
int sceIoPwriteForDriver(SceUID fd, const void *buf, SceSize nbyte, SceOff offset);
// Return: Number of bytes actually written
sceIoReadAsyncForDriver
Version
|
NID
|
3.60
|
0x69047C81
|
Derived from sceIoReadAsync
sceIoRemoveAsyncForDriver
Version
|
NID
|
3.60
|
0xF9D6507D
|
Derived from _sceIoRemoveAsync
sceIoRenameAsyncForDriver
Version
|
NID
|
3.60
|
0xAACBC47A
|
Derived from _sceIoRenameAsync
sceIoRmdirAsyncForDriver
Version
|
NID
|
3.60
|
0xF5B0B36C
|
Derived from _sceIoRmdirAsync
sceIoRmdirForDriver
Version
|
NID
|
3.60
|
0x1CC9C634
|
Derived from _sceIoRmdir
int sceIoRmdirForDriver(const char *dirname);
sceIoSyncByFdAsyncForDriver
Version
|
NID
|
3.60
|
0x041209CF
|
Derived from sceIoSyncByFdAsync
sceIoSyncByFdForDriver
Version
|
NID
|
3.60
|
0x43170575
|
Derived from sceIoSyncByFd
int sceIoSyncByFdForDriver(SceUID fd, int flag);
sceIoSyncAsyncForDriver
Version
|
NID
|
3.60
|
0x4F9EA8B0
|
Derived from _sceIoSyncAsync
sceIoSyncForDriver
Version
|
NID
|
3.60
|
0xDDF78594
|
Derived from _sceIoSync
int sceIoSyncForDriver(const char *device, unsigned int flag);
sceIoWriteAsyncForDriver
Version
|
NID
|
3.60
|
0xA1BD13D0
|
Derived from sceIoWriteAsync
sceIoGetProcessDefaultPriorityForSystem
Version
|
NID
|
3.60
|
0xCE397158
|
sceIoSetProcessDefaultPriorityForSystem
Version
|
NID
|
3.60
|
0xABE65071
|
sceIoDopenAsyncForDriver
Version
|
NID
|
3.60
|
0x72F06BDE
|
sceIoDcloseAsyncForDriver
Version
|
NID
|
3.60
|
0xC08F199F
|
sceIoDreadAsyncForDriver
Version
|
NID
|
3.60
|
0x5982B0E3
|
t_sceIoOpenForDriver
Version
|
NID
|
3.60
|
0x0E518FA9
|
thread callback for sceIoOpenForDriver
typedef struct sceIoOpenForDriver_args
{
const char *filename;
int flag;
SceIoMode mode;
} sceIoOpenForDriver_args;
SceUID t_sceIoOpenForDriver(sceIoOpenForDriver_args* args);
t_sceIoCloseForDriver
Version
|
NID
|
3.60
|
0x1AE14011
|
thread callback for sceIoCloseForDriver
typedef struct sceIoCloseForDriver_args
{
SceUID fd;
} sceIoCloseForDriver_args;
int t_sceIoCloseForDriver(sceIoCloseForDriver_args* args);
t_sceIoReadForDriver
Version
|
NID
|
3.60
|
0x809892C1
|
thread callback for sceIoReadForDriver
typedef struct sceIoReadForDriver_args
{
SceUID fd;
void *data;
SceSize size;
} sceIoReadForDriver_args;
int t_sceIoReadForDriver(sceIoReadForDriver_args* args);
t_sceIoWriteForDriver
Version
|
NID
|
3.60
|
0x8598ADC3
|
thread callback for sceIoWriteForDriver
typedef struct sceIoWriteForDriver_args
{
SceUID fd;
const void *data;
SceSize size;
} sceIoWriteForDriver_args;
int t_sceIoWriteForDriver(sceIoWriteForDriver_args* args);
t_sceIoIoctlForDriver
Version
|
NID
|
3.60
|
0xC1DD4317
|
thread callback for sceIoIoctlForDriver
typedef struct sceIoIoctlForDriver_args
{
SceUID fd;
unsigned int cmd;
void *indata;
int inlen;
void *outdata;
int outlen;
} sceIoIoctlForDriver_args;
SceOff t_sceIoLseekForDriver(sceIoIoctlForDriver* args);
t_sceIoChstatForDriver
Version
|
NID
|
3.60
|
0xBCE4865B
|
thread callback for sceIoChstatForDriver
typedef struct sceIoChstatForDriver_args
{
const char *name;
const SceIoStat *buf;
unsigned int cbit;
uint32_t store_attr;
} sceIoChstatForDriver_args;
SceOff t_sceIoChstatForDriver(sceIoChstatForDriver_args* args);
t_sceIoChstatByFdForDriver
Version
|
NID
|
3.60
|
0x7517FE29
|
thread callback for sceIoChstatByFdForDriver
typedef struct sceIoChstatByFdForDriver_args
{
SceUID fd;
const SceIoStat *buf,
unsigned int cbit;
} sceIoChstatByFdForDriver_args;
int t_sceIoChstatByFdForDriver(sceIoChstatByFdForDriver_args* args);
t_sceIoPreadForDriver
Version
|
NID
|
3.60
|
0x0B54F9E0
|
thread callback for sceIoPreadForDriver
typedef struct sceIoPreadForDriver_args
{
SceUID uid;
void *data;
int size;
int dummy; //alignment
SceOff offset;
} sceIoPreadForDriver_args;
int t_sceIoPreadForDriver(sceIoPreadForDriver_args* args);
t_sceIoPwriteForDriver
Version
|
NID
|
3.60
|
0xE5DEA6B7
|
thread callback for sceIoPwriteForDriver
typedef struct sceIoPwriteForDriver_args
{
SceUID uid;
const void *data;
int size;
int dummy; //alignment
SceOff offset;
} sceIoPwriteForDriver_args;
int t_sceIoPwriteForDriver(sceIoPwriteForDriver_args* args);
sceIoCreateMountEventForDriver
Version
|
NID
|
3.60
|
0x2DFA192F
|
Derived from vshIoCreateMountEvent
int sceIoCreateMountEventForDriver(int vshMountId, int flag);
sceIoCreateErrorEventForDriver
Version
|
NID
|
3.60
|
0x3C0343DB
|
Derived from vshIoCreateErrorEvent
typedef struct sceIoCreateErrorEventForDriverOpt
{
uint32_t unk_0;
uint32_t unk_4;
uint32_t unk_8;
uint32_t unk_C;
uint32_t unk_10;
uint32_t unk_14;
uint32_t unk_18;
} sceIoCreateErrorEventForDriverOpt;
SceUID sceIoCreateErrorEventForDriver(int vshMountId, int flag, sceIoCreateErrorEventForDriverOpt* opt);
sceIoClearErrorEventForDriver
Version
|
NID
|
3.60
|
0x40B933C7
|
Derived from vshIoClearErrorEvent
int sceIoClearErrorEventForDriver(SceUID uid);
sceIoDeleteMountEventForDriver
Version
|
NID
|
3.60
|
0x43DB0AE4
|
Derived from vshIoDeleteMountEvent
int sceIoDeleteMountEventForDriver(SceUID uid);
sceIoDeleteErrorEventForDriver
Version
|
NID
|
3.60
|
0xC6158F8D
|
Derived from vshIoDeleteErrorEvent
int sceIoDeleteErrorEventForDriver(SceUID uid);
unk_39ABDB9E
Version
|
NID
|
3.60
|
0x39ABDB9E
|
int unk_39ABDB9E(int vshMountId, int num, int unk2, int unk3);
sceIoSetPathMappingFunctionForDriver
Version
|
NID
|
3.60
|
0xCFAECF18
|
used by SceAppMgr
sets a callback function that does path mapping:
- function tries to OverlayResolveSync input path
- checks that it is not a PD path (temp mount point probably aquired by PFS)
- takes beginning of path until symbol ":"
- tries to do a lookup by that path copy in var_22D470C
mount_point_data_entry
item array
- if item is found then
path
from mount_point_data_entry
item is copied to result_path
- in any other case OverlayResolveSync result path is copied to
result_path
typedef int(t_1914_callback)(const char* path, SceUID pid, char* result_path, int size);
int sceIoSetPathMappingFunctionForDriver(t_1914_callback* cb);
sceIoGetPathIdExForDriver
Version |
World |
NID
|
3.60 |
non-secure |
0x9C220246
|
calls sceSblACMgrGetPathIdForKernel internally.
may also call callback function set by sceIoSetPathMappingFunctionForDriver.
this callback function does path mapping since result in result_path is passed to sceSblACMgrGetPathIdForKernel.
int sceIoGetPathIdExForDriver(SceUID pid, const char *path, int ignored, char *pathId);
SceIofilemgr
_sceIoDcloseAsync
Version |
NID
|
1.69 |
0xB13031
|
3.60 |
different NID or not present
|
_sceIoOpenAsync
Version |
NID
|
1.69 |
0x09CD0FC8
|
3.60 |
0x09CD0FC8
|
sceIoGetProcessDefaultPriority
Version |
NID
|
1.69 |
0x0DC4F1BB
|
3.60 |
0x0DC4F1BB
|
_sceIoRmdirAsync
Version |
NID
|
1.69 |
0x13DC3244
|
3.60 |
0x13DC3244
|
sceIoSetPriority
Version |
NID
|
1.69 |
0x14B2D56C
|
3.60 |
0x14B2D56C
|
sceIoSyncByFd
Version |
NID
|
1.69 |
0x16512F59
|
3.60 |
0x16512F59
|
int sceIoSyncByFd(SceUID fd, unsigned int unk);
_sceIoIoctl
Version |
NID
|
1.69 |
0x1D2988F1
|
3.60 |
0x1D2988F1
|
_sceIoLseekAsync
Version |
NID
|
1.69 |
0x2300858E
|
3.60 |
0x2300858E
|
sceIoSetPriorityForSystem
Version |
NID
|
1.69 |
0x27373135
|
3.60 |
0x27373135
|
_sceIoComplete
Version |
NID
|
1.69 |
0x34E6A06E
|
3.60 |
different NID or not present
|
sceIoWrite
Version |
NID
|
1.69 |
0x34EFD876
|
3.60 |
0x34EFD876
|
int sceIoWrite(SceUID fd, const void *data, SceSize size);
_sceIoGetThreadDefaultPriorityForSystem
Version |
NID
|
1.69 |
0x36CAF911
|
3.60 |
different NID or not present
|
_sceIoSetThreadDefaultPriorityForSystem
Version |
NID
|
1.69 |
0x38FE853B
|
3.60 |
different NID or not present
|
sceIoFlockForSystem
Version |
NID
|
1.69 |
0x3E98E422
|
3.60 |
0x3E98E422
|
_sceIoDevctlAsync
Version |
NID
|
1.69 |
0x3EE3F66E
|
3.60 |
0x3EE3F66E
|
sceIoDclose
Version |
NID
|
1.69 |
0x422A221A
|
3.60 |
0x422A221A
|
int sceIoDclose(SceUID fd);
_sceIoRename
Version |
NID
|
1.69 |
0x4912F748
|
3.60 |
0x4912F748
|
typedef struct sceIoRenameOpt
{
uint32_t unk_0;
uint32_t unk_4;
uint32_t unk_8;
uint32_t unk_C;
} sceIoRenameOpt;
int _sceIoRename(const char *oldname, const char *newname, sceIoRenameOpt *opt);
sceIoLseek32
Version |
NID
|
1.69 |
0x49252B9B
|
3.60 |
0x49252B9B
|
int sceIoLseek32(SceUID fd, int offset, int whence);
sceIoSetThreadDefaultPriority
Version |
NID
|
1.69 |
0x49312108
|
3.60 |
0x49312108
|
_sceIoDevctl
Version |
NID
|
1.69 |
0x515AC017
|
3.60 |
0x515AC017
|
typedef struct sceIoDevctlOpt
{
uint32_t unk_0;
uint32_t unk_4;
uint32_t unk_8;
uint32_t unk_C;
uint32_t unk_10;
uint32_t unk_14;
} sceIoDevctlOpt;
int _sceIoDevctl(const char *dev, unsigned int cmd, void *indata, sceIoDevctlOpt *args, int inlen, void *outdata, int outlen);
sceIoGetstatByFdAsync
Version |
NID
|
1.69 |
0x5167AC1E
|
3.60 |
0x5167AC1E
|
_sceIoPread
Version |
NID
|
1.69 |
0x539FD5C4
|
3.60 |
0x539FD5C4
|
typedef struct sceIoPreadOpt
{
SceOff offset;
uint32_t unk_8;
uint32_t unk_C;
} sceIoPreadOpt;
int _sceIoPread(SceUID uid, void *buffer, SceSize size, sceIoPreadOpt *opt);
_sceIoGetstatByFdAsync
Version |
NID
|
1.69 |
0x554292F0
|
3.60 |
different NID or not present
|
_sceIoChstatByFdAsync
Version |
NID
|
1.69 |
0x58010F40
|
3.60 |
different NID or not present
|
_sceIoGetThreadDefaultPriority
Version |
NID
|
1.69 |
0x5DC29460
|
3.60 |
different NID or not present
|
_sceIoSync
Version |
NID
|
1.69 |
0x5DD867F7
|
3.60 |
0x5DD867F7
|
typedef struct sceIoSyncOpt
{
uint32_t unk_0;
uint32_t unk_4;
} sceIoSyncOpt;
int _sceIoSync(const char* device, unsigned int unk, sceIoSyncOpt* opt);
_sceIoRemoveAsync
Version |
NID
|
1.69 |
0x5FFA47E2
|
3.60 |
0x5FFA47E2
|
_sceIoDreadAsync
Version |
NID
|
1.69 |
0x64B233B8
|
3.60 |
different NID or not present
|
_sceIoSetThreadDefaultPriority
Version |
NID
|
1.69 |
0x654E27B1
|
3.60 |
different NID or not present
|
_sceIoSyncByFdAsync
Version |
NID
|
1.69 |
0x6F78FAFE
|
3.60 |
different NID or not present
|
_sceIoGetPriorityForSystem
Version |
NID
|
1.69 |
0x70B7BB52
|
3.60 |
different NID or not present
|
sceIoReadAsync
Version |
NID
|
1.69 |
0x773EBD45
|
3.60 |
0x773EBD45
|
_sceIoRemove
Version |
NID
|
1.69 |
0x78955C65
|
3.60 |
0x78955C65
|
typedef struct sceIoRemoveOpt
{
uint32_t unk_0;
uint32_t unk_4;
} sceIoRemoveOpt;
int _sceIoRemove(const char *filename, sceIoRemoveOpt* opt);
sceIoSyncByFdAsync
Version |
NID
|
1.69 |
0x7E1367CB
|
3.60 |
0x7E1367CB
|
sceIoSetProcessDefaultPriority
Version |
NID
|
1.69 |
0x7F2ABBAF
|
3.60 |
0x7F2ABBAF
|
_sceIoRenameAsync
Version |
NID
|
1.69 |
0x81794921
|
3.60 |
0x81794921
|
_sceIoSyncAsync
Version |
NID
|
1.69 |
0x86DB0C0E
|
3.60 |
0x86DB0C0E
|
_sceIoDread
Version |
NID
|
1.69 |
0x8713D662
|
3.60 |
0x8713D662
|
int _sceIoDread(SceUID fd, SceIoDirent *dir);
_sceIoWrite
Version |
NID
|
1.69 |
0x8C319CF0
|
3.60 |
different NID or not present
|
_sceIoGetstat
Version |
NID
|
1.69 |
0x8E7E11F2
|
3.60 |
0x8E7E11F2
|
typedef struct sceIoGetstatOpt
{
uint32_t unk_0;
uint32_t unk_4;
} sceIoGetstatOpt;
int _sceIoGetstat(const char *name, SceIoStat *buf, sceIoGetstatOpt *opt);
sceIoCloseAsync
Version |
NID
|
1.69 |
0x8EA3616A
|
3.60 |
0x8EA3616A
|
_sceIoMkdir
Version |
NID
|
1.69 |
0x8F1ACC32
|
3.60 |
0x8F1ACC32
|
typedef struct sceIoMkdirOpt
{
uint32_t unk_0;
uint32_t unk_4;
} sceIoMkdirOpt;
int _sceIoMkdir(const char *dirname, SceIoMode mode, sceIoMkdirOpt opt);
_sceIoCompleteMultiple
Version |
NID
|
1.69 |
0x9111D004
|
3.60 |
0x9111D004
|
_sceIoLseek32
Version |
NID
|
1.69 |
0x92BDA6DA
|
3.60 |
different NID or not present
|
_sceIoPwrite
Version |
NID
|
1.69 |
0x9654094B
|
3.60 |
0x9654094B
|
typedef struct sceIoPwriteOpt
{
SceOff offset;
uint32_t unk_8;
uint32_t unk_C;
} sceIoPwriteOpt;
int _sceIoPwrite(SceUID uid, const void *data, int size, sceIoPwriteOpt *opt);
_sceIoGetPriority
Version |
NID
|
1.69 |
0x9E3F880D
|
3.60 |
different NID or not present
|
sceIoGetThreadDefaultPriority
Version |
NID
|
1.69 |
0xA176CD03
|
3.60 |
0xA176CD03
|
_sceIoLseek
Version |
NID
|
1.69 |
0xA604764A
|
3.60 |
0xA604764A
|
typedef struct _sceIoLseekOpt //size is 0x10
{
SceOff offset;
int whence;
uint32_t unk;
} _sceIoLseekOpt;
SceOff _sceIoLseek(SceUID fd, _sceIoLseekOpt* opt);
sceIoChstatByFdAsync
Version |
NID
|
1.69 |
0xA9F89275
|
3.60 |
0xA9F89275
|
_sceIoGetProcessDefaultPriority
Version |
NID
|
1.69 |
0xB0486482
|
3.60 |
different NID or not present
|
_sceIoSetPriority
Version |
NID
|
1.69 |
0xB14192F0
|
3.60 |
different NID or not present
|
_sceIoReadAsync
Version |
NID
|
1.69 |
0xB2B891E6
|
3.60 |
different NID or not present
|
_sceIoPwriteAsync
Version |
NID
|
1.69 |
0xB2D0B2F4
|
3.60 |
0xB2D0B2F4
|
_sceIoChstatAsync
Version |
NID
|
1.69 |
0xB4B021D9
|
3.60 |
0xB4B021D9
|
sceIoSetThreadDefaultPriorityForSystem
Version |
NID
|
1.69 |
0xB9C9C9CF
|
3.60 |
0xB9C9C9CF
|
_sceIoPreadAsync
Version |
NID
|
1.69 |
0xBCF5684D
|
3.60 |
0xBCF5684D
|
sceIoDopenAsync
Version |
NID
|
1.69 |
0xC49C312F
|
3.60 |
0xC49C312F
|
sceIoClose
Version |
NID
|
1.69 |
0xC70B8886
|
3.60 |
0xC70B8886
|
int sceIoClose(SceUID fd);
_sceIoWriteAsync
Version |
NID
|
1.69 |
0xC92AF88F
|
3.60 |
different NID or not present
|
_sceIoOpen
Version |
NID
|
1.69 |
0xCC67B6FD
|
3.60 |
0xCC67B6FD
|
typedef struct sceIoOpenOpt
{
uint32_t unk_0;
uint32_t unk_4;
} sceIoOpenOpt;
SceUID _sceIoOpen(const char *filename, int flag, SceIoMode mode, sceIoOpenOpt *opt);
sceIoCancel
Version |
NID
|
1.69 |
0xCEF48835
|
3.60 |
0xCEF48835
|
sceIoComplete
Version |
NID
|
1.69 |
0xD1C49D2F
|
3.60 |
0xD1C49D2F
|
_sceIoChstat
Version |
NID
|
1.69 |
0xD2EE455F
|
3.60 |
0xD2EE455F
|
typedef struct sceIoChstatOpt
{
uint32_t unk_0;
uint32_t unk_4;
} sceIoChstatOpt;
int _sceIoChstat(const char *name, const SceIoStat *stat, unsigned int cbit, sceIoChstatOpt *opt);
_sceIoSetProcessDefaultPriority
Version |
NID
|
1.69 |
0xD302DCB9
|
3.60 |
different NID or not present
|
_sceIoGetstatAsync
Version |
NID
|
1.69 |
0xD414C89F
|
3.60 |
0xD414C89F
|
sceIoDcloseAsync
Version |
NID
|
1.69 |
0xDC2D7D38
|
3.60 |
0xDC2D7D38
|
_sceIoIoctlAsync
Version |
NID
|
1.69 |
0xE00DC256
|
3.60 |
0xE00DC256
|
_sceIoChstatByFd
Version |
NID
|
1.69 |
0xE0BE2A30
|
3.60 |
0xE0BE2A30
|
int _sceIoChstatByFd(SceUID fd, const SceIoStat *buf, unsigned int cbit);
sceIoWriteAsync
Version |
NID
|
1.69 |
0xE0D63D2A
|
3.60 |
0xE0D63D2A
|
_sceIoGetstatByFd
Version |
NID
|
1.69 |
0xE6C53567
|
3.60 |
0xE6C53567
|
int _sceIoGetstatByFd(SceUID fd, SceIoStat *stat);
_sceIoSetPriorityForSystem
Version |
NID
|
1.69 |
0xE6C923B3
|
3.60 |
different NID or not present
|
_sceIoDopen
Version |
NID
|
1.69 |
0xE6E614B5
|
3.60 |
0xE6E614B5
|
typedef struct sceIoDopenOpt
{
uint32_t unk_0;
uint32_t unk_4;
} sceIoDopenOpt;
SceUID _sceIoDopen(const char *dirname, sceIoDopenOpt *opt);
sceIoGetPriorityForSystem
Version |
NID
|
1.69 |
0xEF5432ED
|
3.60 |
0xEF5432ED
|
sceIoGetPriority
Version |
NID
|
1.69 |
0xF2A472A1
|
3.60 |
0xF2A472A1
|
_sceIoRead
Version |
NID
|
1.69 |
0xF3C9E783
|
3.60 |
different NID or not present
|
_sceIoSyncByFd
Version |
NID
|
1.69 |
0xF437545D
|
3.60 |
different NID or not present
|
_sceIoCloseAsync
Version |
NID
|
1.69 |
0xF4E13260
|
3.60 |
different NID or not present
|
_sceIoDopenAsync
Version |
NID
|
1.69 |
0xF58286C3
|
3.60 |
different NID or not present
|
sceIoDreadAsync
Version |
NID
|
1.69 |
0xF59F37B0
|
3.60 |
0xF59F37B0
|
_sceIoMkdirAsync
Version |
NID
|
1.69 |
0xF5C58B21
|
3.60 |
0xF5C58B21
|
_sceIoCancel
Version |
NID
|
1.69 |
0xF5DEEA19
|
3.60 |
different NID or not present
|
_sceIoClose
Version |
NID
|
1.69 |
0xF69FB394
|
3.60 |
different NID or not present
|
_sceIoDclose
Version |
NID
|
1.69 |
0xFAFF0002
|
3.60 |
different NID or not present
|
sceIoGetThreadDefaultPriorityForSystem
Version |
NID
|
1.69 |
0xFCBCEAED
|
3.60 |
0xFCBCEAED
|
sceIoRead
Version |
NID
|
1.69 |
0xFDB32293
|
3.60 |
0xFDB32293
|
sceIoRead(SceUID fd, void *data, SceSize size);
_sceIoRmdir
Version |
NID
|
1.69 |
0xFFFB4D76
|
3.60 |
0xFFFB4D76
|
typedef struct sceIoRmdirOpt
{
uint32_t unk_0;
uint32_t unk_4;
} sceIoRmdirOpt;
int _sceIoRmdir(const char *dirname, sceIoRmdirOpt* opt);
Device Drivers