vitasdk
Documentation of the vitasdk

Detailed Description

Exports for Kernel.


Using this library in your project

Include the header file in your project:

#include <psp2kern/vfs.h>


Link the library to the executable:

SceIofilemgrForDriver_stub



VFS Data Types

 VITASDK_BUILD_ASSERT_EQ (0x20, SceVfsInfo)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceVfsPath)
 
 VITASDK_BUILD_ASSERT_EQ (0x14, SceVfsMountData)
 
 VITASDK_BUILD_ASSERT_EQ (0x100, SceVfsMount)
 
 VITASDK_BUILD_ASSERT_EQ (0x100, SceVfsVnode)
 
 VITASDK_BUILD_ASSERT_EQ (0x40, SceVfsFile)
 
#define SCE_VFS_TYPE_FS   (0x00000000)
 
#define SCE_VFS_TYPE_DEVFS   (0x00000010)
 
#define SCE_VFS_FS_TYPE_FS   (0x01)
 All exfat mounts.
 
#define SCE_VFS_FS_TYPE_PFS   (0x03)
 PFS mounts.
 
#define SCE_VFS_FS_TYPE_HOSTFS   (0x04)
 host0:
 
#define SCE_VFS_FS_TYPE_BLKDEV   (0x10)
 sdstor0:, md0:
 
#define SCE_VFS_FS_TYPE_CHRDEV   (0x20)
 tty0:
 
#define SCE_VFS_MOUNT_TYPE_PFS   (0x00000001)
 PFS mounts.
 
#define SCE_VFS_MOUNT_TYPE_FSROOT   (0x00000002)
 Standard Root File System.
 
#define SCE_VFS_MOUNT_TYPE_DEVFS   (0x00000003)
 Device File System.
 
#define SCE_VFS_MOUNT_TYPE_STACKFS   (0x00000005)
 Loop File System (File system mounted from a file)
 
#define SCE_VFS_MOUNT_TYPE_HOSTFS   (0x00000006)
 Hostfs.
 
#define SCE_VFS_MOUNT_FLAG_TYPE_MASK   (0x000000FF)
 
#define SCE_VFS_MOUNT_FLAG_RDONLY   (0x00001000)
 Read-only mount.
 
#define SCE_VFS_MOUNT_FLAG_NOBUF   (0x00002000)
 Disables VFS Buffer Cache.
 
#define SCE_VFS_MOUNT_FLAG_NUMBERED   (0x00004000)
 Files for this mountpoint are treated as numbered extensions of the assignName.
 
#define SCE_VFS_MOUNT_FLAG_REMOTE   (0x00008000)
 Prevents ncache entry of failed lookups. Used on host0:
 
#define SCE_VFS_MOUNT_FLAG_INTERNAL   (0x00010000)
 
#define SCE_VFS_MOUNT_FLAG_EXTERNAL   (0x00020000)
 
#define SCE_VFS_MOUNT_FLAG_WRITE_CACHE   (0x00040000)
 Allow write-caching. Default behavior is to flush buffer cache after write.
 
#define SCE_VFS_MOUNT_FLAG_NO_RECLAIM   (0x00100000)
 Prevents Vnodes from being reclaimed. Only set internally for devfs.
 
#define SCE_VNODE_TYPE_REG   (0x00000001)
 Regular file.
 
#define SCE_VNODE_TYPE_DIR   (0x00000002)
 Regular directory.
 
#define SCE_VNODE_TYPE_CHR   (0x00000010)
 Character file.
 
#define SCE_VNODE_TYPE_ROOT   (0x00001000)
 Root vnode.
 
#define SCE_VNODE_TYPE_DEV   (0x00002000)
 Device vnode.
 
#define SCE_VNODE_TYPE_MOUNTED   (0x00004000)
 Vnode used as a backing for a mountpoint.
 
#define SCE_VNODE_TYPE_CHRDEV   (SCE_VNODE_TYPE_DEV | SCE_VNODE_TYPE_CHR)
 
#define SCE_VNODE_TYPE_ROOTDIR   (SCE_VNODE_TYPE_ROOT | SCE_VNODE_TYPE_DIR)
 Root directory.
 
#define SCE_VNODE_TYPE_ROOTDIR_DEVFS   (0x10000 | 0x20)
 Root directory on devfs mountpoints.
 
#define SCE_VNODE_STATE_ACTIVE   (0x00000001)
 Vnode is active and valid for all operations.
 
#define SCE_VNODE_STATE_INACTIVE   (0x00000100)
 Vnode is inactive and may be pending deletion or otherwise.
 
#define SCE_VNODE_STATE_UNMOUNTED   (0x00000200)
 
#define SCE_VNODE_STATE_DELETED   (0x00000400)
 
#define SCE_VNODE_STATE_RECLAIMED   (0x00002000)
 
#define SCE_VNODE_STATE_NEW   (0x00008000)
 
#define SCE_VFS_FILE_STATE_OPEN   (0x00000001)
 File is open.
 
#define SCE_VFS_FILE_STATE_CLOSED   (0x00000200)
 File is closed.
 
#define SCE_VFS_FILE_STATE_UNK   (0x00000800)
 Unknown status.
 
#define SCE_VFS_FILE_STATE_DUMMY   (0x00010000)
 Dummy file.
 

VFS Operation Arguments and Callback Table

 VITASDK_BUILD_ASSERT_EQ (0x8, SceVfsOpMountArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x8, SceVfsOpUmountArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceVfsOpSetRootArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceVfsOpGetRootArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x8, SceVfsOpSyncArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x4, SceVfsOpInitArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x4, SceVfsOpFiniArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x1C, SceVfsOpDevctlArg)
 
 VITASDK_BUILD_ASSERT_EQ (0x1C, SceVfsOpDecodePathElemArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x34, SceVfsOpTable)
 

VFS Vnode Operation Arguments and Callback Table

 VITASDK_BUILD_ASSERT_EQ (0x10, SceVopOpenArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x14, SceVopCreateArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x8, SceVopCloseArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceVopLookupArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceVopReadArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceVopWriteArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x18, SceVopLseekArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x1C, SceVopIoctlArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceVopRemoveArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceVopMkdirArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceVopRmdirArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceVopDopenAgrs)
 
 VITASDK_BUILD_ASSERT_EQ (0x8, SceVopDcloseArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceVopDreadArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceVopGetstatArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceVopChstatArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceVopFchstatArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceVopFgetstatArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x4, SceVopInactiveArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x8, SceVopLinkArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x8, SceVopUnlinkArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceVopSyncArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x18, SceVopRenameArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x18, SceVopPreadArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x18, SceVopPwriteArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceVopWhiteoutArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x8, SceVopCleanupArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x20, SceVopZerofillArgs)
 
 VITASDK_BUILD_ASSERT_EQ (0x74, SceVopTable)
 

VFS Core API

 VITASDK_BUILD_ASSERT_EQ (0x20, SceVfsMountParam)
 
 VITASDK_BUILD_ASSERT_EQ (0x8, SceVfsUmountParam)
 
int ksceVfsAddVfs (SceVfsInfo *vfs_info)
 Register a VFS implementation.
 
int ksceVfsDeleteVfs (const char *name, SceVfsInfo **vfs_info)
 Unegister a VFS implementation.
 
int vfsMount (SceVfsMountParam *param)
 Mount a drive.
 
int vfsUmount (SceVfsUmountParam *param)
 Unmount a drive.
 
int vfsMountForPFS (SceVfsMountParam *param)
 Mount a drive via the mount daemon.
 
int vfsUmountForPFS (SceVfsUmountParam *param, int unk, int unk2)
 Unmount a drive via the mount daemon.
 
int vfsLockMnt (SceVfsMount *mnt)
 Lock the mnt.
 
int vfsUnlockMnt (SceVfsMount *mnt)
 Unlock the mnt.
 
SceBool vfsIsLockedMnt (SceVfsMount *mnt)
 Is the mnt lock held by the current thread ?
 
SceUID vfsAllocateFile (SceVfsVnode *vp, SceVfsFile **file, const char *name)
 Allocate a new VFS file object.
 
int vfsFreeFile (SceVfsVnode *vp, SceUID fd)
 Free a File object.
 
int vfsGetNewVnode (SceVfsMount *mnt, SceVopTable *vops, int unk, SceVfsVnode **vpp)
 Get a new vnode from the pool.
 
int vfsFreeVnode (SceVfsVnode *vp)
 Return a vnode to the pool.
 
int vfsLockVnode (SceVfsVnode *vp)
 Lock a vnode.
 
int vfsUnlockVnode (SceVfsVnode *vp)
 Unlock a vnode.
 
SceBool vfsIsOwnerVnode (SceVfsVnode *vp)
 Does the current thread own the vnode lock.
 
int vfsGetVnodeName (SceVfsVnode *vp, char *name, SceSize n, SceSize *result)
 Get the name of a vnode.
 
#define SCE_VFS_UMOUNT_FLAG_FORCE   (0x1)
 Force unmount.
 

VFS Vop APIs

These are relevant when doing operations on vnodes owned by other VFS implementations (block devices, etc.)

int ksceVopOpen (SceVfsVnode *vp, SceVfsPath *path, int flags, SceVfsFile *file)
 
int ksceVopCreate (SceVfsVnode *dvp, SceVfsVnode **vpp, SceVfsPath *path, int flags, int mode)
 
int ksceVopClose (SceVfsVnode *vp, SceVfsFile *file)
 
int ksceVopLookup (SceVfsVnode *dvp, SceVfsVnode **vpp, SceVfsPath *path, SceUInt32 flags)
 
int ksceVopRead (SceVfsVnode *vp, SceVfsFile *file, void *data, SceSize nbyte, SceSize *result)
 
int ksceVopWrite (SceVfsVnode *vp, SceVfsFile *file, const void *data, SceSize nbyte, SceSize *result)
 
SceOff ksceVopLseek (SceVfsVnode *vp, SceVfsFile *file, SceOff offset, int whence)
 
int ksceVopIoctl (SceVfsVnode *vp, SceVfsFile *file, int cmd, const void *in_data, SceSize in_len, void *out_data, SceSize out_len)
 
int ksceVopRemove (SceVfsVnode *dvp, SceVfsVnode *vp, SceVfsPath *path, SceUInt32 flags)
 
int ksceVopMkdir (SceVfsVnode *dvp, SceVfsVnode **vpp, SceVfsPath *path, int mode)
 
int ksceVopRmdir (SceVfsVnode *dvp, SceVfsVnode *vp, SceVfsPath *path)
 
int ksceVopDopen (SceVfsVnode *vp, SceVfsPath *path, SceVfsFile *file)
 
int ksceVopDclose (SceVfsVnode *vp, SceVfsFile *file)
 
int ksceVopDread (SceVfsVnode *vp, SceVfsFile *file, SceIoDirent *dir)
 
int ksceVopGetstat (SceVfsVnode *vp, SceVfsPath *path, SceIoStat *stat)
 
int ksceVopChstat (SceVfsVnode *vp, SceVfsPath *path, SceIoStat *stat, int bit)
 
int ksceVopRename (SceVfsVnode *odvp, SceVfsVnode *ovp, SceVfsPath *old_path, SceVfsVnode *ndvp, SceVfsVnode **nvpp, SceVfsPath *new_path)
 
int ksceVopPread (SceVfsVnode *vp, SceVfsFile *file, void *data, SceSize nbyte, SceOff offset, SceSize *pResult)
 
int ksceVopPwrite (SceVfsVnode *vp, SceVfsFile *file, const void *data, SceSize nbyte, SceOff offset, SceSize *result)
 
int ksceVopInactive (SceVfsVnode *vp)
 
int ksceVopSync (SceVfsVnode *vp, SceVfsFile *file, int flags)
 
int ksceVopFgetstat (SceVfsVnode *vp, SceVfsFile *file, SceIoStat *stat)
 
int ksceVopFchstat (SceVfsVnode *vp, SceVfsFile *file, SceIoStat *stat, int bit)
 
int ksceVopLink (SceVfsVnode *fvp, SceVfsVnode *tvp)
 
int ksceVopUnlink (SceVfsVnode *fvp, SceVfsVnode *tvp)
 
int ksceVopWhiteout (SceVfsVnode *dvp, SceVfsVnode *vp, SceVfsPath *old_path, SceVfsPath *new_path)
 
int ksceVopCleanup (SceVfsVnode *vp, SceVfsFile *file)
 
int ksceVopZerofill (SceVfsVnode *vp, SceUInt64 unk, SceUInt64 unk1, SceUInt64 unk2)
 

Data Structure Documentation

◆ SceVfsInfo

struct SceVfsInfo

VFS Info defining a VFS Implementation.

Data Fields
const SceVfsOpTable * vfs_ops VFS Implementation operations for mountpoint actions.
const char * vfs_name Name of the VFS implementation (Must be unique, used to identify the VFS)
SceSize vfs_name_len Length of vfs_name plus null-terminator.
SceUInt32 ref_count Internal use only.
SceUInt32 type One of SCE_VFS_TYPE_*.
const SceVopTable * default_vops Default vop table for the vnodes.
void * vfs_data Optional data that can be passed to the vfs_init callback.
struct SceVfsInfo * next Internal use only.

◆ SceVfsPath

struct SceVfsPath

VFS Path for vnode.

Note
These paths used internally are root based paths, not mountpoint based.
Data Fields
const char * name Name of vnode.
SceSize name_length Length of name.
const char * path Full path name is from.

◆ SceVfsMountData

struct SceVfsMountData

Mountpoint Data.

Data Fields
const char * assign_name Assigned name for the mount point. Must end with ':', typically in format '<mnt>0:'.
const char * fs_name Name of the FS being mounted.
const char * blockdev_name Path to the block device.
const char * blockdev_name_no_part Path to the block device without a partition specified (used as a fallback if blockdev_name isn't found)
SceUInt32 mnt_id Mountpoint ID (example: 0xF00 for uma0:)

◆ SceVfsMount

struct SceVfsMount
Data Fields
SceKernelFastMutex fast_mutex
SceVfsVnode * mnt_vnode
SceUID allocator
SceUInt32 state
SceUInt8 fs_type One of SCE_VFS_FS_TYPE_*.
SceUInt16 opt
SceUInt32 mnt_flags ORed together SCE_VFS_MOUNT_FLAG_* flags.
SceVfsVnode * vnode_list
SceUInt32 vnode_num
SceVfsInfo * mnt_vfs_inf
SceUInt32 mnt_ref_count
SceUInt32 opened_entry_num
SceUInt32 available_entry_num
SceUID pid
SceVfsMount * mnted_on_list
SceVfsMount * mnted_on_list_prev
SceVfsMount * mnt_list_next
SceVfsMountData * mnt_data
char path[64]
SceUInt32 default_io_cache_size
void * data VFS Implementation defined mount point data.
struct FdLock * fd_lock
struct Fumount * fumount
SceUInt32 opaque[4]
SceUInt32 opaque2[4]
SceUInt8 padding[16]

◆ SceVfsVnode

struct SceVfsVnode

VFS Vnode.

The most fundamental aspect of the VFS. Vnodes represent every individual file or directory which has been looked-up or accessed.

Data Fields
struct SceVfsVnode.vdlock vdlock
SceUInt8 padding[44]
struct SceVfsVnode.core core
SceUInt8 padding2[40]

◆ SceVfsFile

struct SceVfsFile

VFS File.

The file structure is contained within the SceUIDVfsFileObject structure, and represents file handles in the VFS.

Data Fields
SceUInt32 is_dir
SceUInt32 flags
SceOff position
SceUInt32 state
SceUID pid
SceVfsVnode * vp
SceVfsFile * next
SceUInt32 fd File descriptor provided and used by VFS implementation.
SceUInt16 flock_busy_count
SceUInt8 is_locked
SceUInt8 has_flock_ent
struct FdLock * fd_lock
SceUInt32 idata
struct DebugPath * debug_path
SceUInt32 ioSchedData[3]

◆ SceVfsOpMountArgs

struct SceVfsOpMountArgs
Data Fields
SceVfsMount * mnt
SceVfsPath * dev_file_path Path to the device file.

◆ SceVfsOpUmountArgs

struct SceVfsOpUmountArgs
Data Fields
SceVfsMount * mnt
int flags

◆ SceVfsOpSetRootArgs

struct SceVfsOpSetRootArgs
Data Fields
SceVfsMount * mnt
int unk
struct SceVfsVnode * vp

◆ SceVfsOpGetRootArgs

struct SceVfsOpGetRootArgs
Data Fields
SceVfsMount * mnt
int unk
struct SceVfsVnode ** vpp

◆ SceVfsOpSyncArgs

struct SceVfsOpSyncArgs
Data Fields
SceVfsMount * mnt
int flags

◆ SceVfsOpInitArgs

struct SceVfsOpInitArgs
Data Fields
SceVfsInfo * vfs_inf

◆ SceVfsOpFiniArgs

struct SceVfsOpFiniArgs
Data Fields
SceVfsInfo * vfs_inf

◆ SceVfsOpDevctlArg

struct SceVfsOpDevctlArg
Data Fields
SceVfsMount * mnt
const char * dev
unsigned int cmd
const void * arg
SceSize arg_len
void * buf
SceSize buf_len

◆ SceVfsOpDecodePathElemArgs

struct SceVfsOpDecodePathElemArgs
Data Fields
SceVfsMount * mnt
const char * path
const char ** path2
const char ** path3
char * buf
SceSize buf_len
SceSize * decode_len

◆ SceVfsOpTable

struct SceVfsOpTable

Data Fields

int(* vfs_mount )(SceVfsOpMountArgs *argp)
 
int(* vfs_umount )(SceVfsOpUmountArgs *argp)
 
int(* vfs_set_root )(SceVfsOpSetRootArgs *argp)
 
int(* vfs_get_root )(SceVfsOpGetRootArgs *argp)
 
void * reserved [2]
 
int(* vfs_sync )(SceVfsOpSyncArgs *argp)
 
void * reserved2
 
int(* vfs_init )(SceVfsOpInitArgs *argp)
 
int(* vfs_fini )(SceVfsOpFiniArgs *argp)
 
void * reserved3
 
int(* vfs_devctl )(SceVfsOpDevctlArg *arg)
 
int(* vfs_decode_path_elem )(SceVfsOpDecodePathElemArgs *argp)
 

◆ SceVopOpenArgs

struct SceVopOpenArgs
Data Fields
SceVfsVnode * vp
SceVfsPath * path
int flags
SceVfsFile * file

◆ SceVopCreateArgs

struct SceVopCreateArgs
Data Fields
SceVfsVnode * dvp
SceVfsVnode ** vpp
SceVfsPath * path
int flags
int mode

◆ SceVopCloseArgs

struct SceVopCloseArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file

◆ SceVopLookupArgs

struct SceVopLookupArgs
Data Fields
SceVfsVnode * dvp
SceVfsVnode ** vpp
SceVfsPath * path
SceUInt32 flags

◆ SceVopReadArgs

struct SceVopReadArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
void * buf
SceSize nbyte

◆ SceVopWriteArgs

struct SceVopWriteArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
const void * buf
SceSize nbyte

◆ SceVopLseekArgs

struct SceVopLseekArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
SceOff offset
int whence

◆ SceVopIoctlArgs

struct SceVopIoctlArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
int cmd
const void * in_data
SceSize in_len
void * out_data
SceSize out_len

◆ SceVopRemoveArgs

struct SceVopRemoveArgs
Data Fields
SceVfsVnode * dvp
SceVfsVnode * vp
SceVfsPath * path
SceUInt32 flags

◆ SceVopMkdirArgs

struct SceVopMkdirArgs
Data Fields
SceVfsVnode * dvp
SceVfsVnode ** vpp
SceVfsPath * path
int mode

◆ SceVopRmdirArgs

struct SceVopRmdirArgs
Data Fields
SceVfsVnode * dvp
SceVfsVnode * vp
SceVfsPath * path

◆ SceVopDopenAgrs

struct SceVopDopenAgrs
Data Fields
SceVfsVnode * vp
SceVfsPath * path
SceVfsFile * file

◆ SceVopDcloseArgs

struct SceVopDcloseArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file

◆ SceVopDreadArgs

struct SceVopDreadArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
SceIoDirent * dir

◆ SceVopGetstatArgs

struct SceVopGetstatArgs
Data Fields
SceVfsVnode * vp
SceVfsPath * path
SceIoStat * stat

◆ SceVopChstatArgs

struct SceVopChstatArgs
Data Fields
SceVfsVnode * vp
SceVfsPath * path
SceIoStat * stat
int bit

◆ SceVopFchstatArgs

struct SceVopFchstatArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
SceIoStat * stat
SceUInt32 bit

◆ SceVopFgetstatArgs

struct SceVopFgetstatArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
SceIoStat * stat

◆ SceVopInactiveArgs

struct SceVopInactiveArgs
Data Fields
SceVfsVnode * vp

◆ SceVopLinkArgs

struct SceVopLinkArgs
Data Fields
SceVfsVnode * fvp
SceVfsVnode * tvp

◆ SceVopUnlinkArgs

struct SceVopUnlinkArgs
Data Fields
SceVfsVnode * fvp
SceVfsVnode * tvp

◆ SceVopSyncArgs

struct SceVopSyncArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
int flags

◆ SceVopRenameArgs

struct SceVopRenameArgs
Data Fields
SceVfsVnode * odvp
SceVfsVnode * ovp
SceVfsPath * old_path
SceVfsVnode * ndvp
SceVfsVnode ** nvpp
SceVfsPath * new_path

◆ SceVopPreadArgs

struct SceVopPreadArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
void * buf
SceSize nbyte
SceOff offset

◆ SceVopPwriteArgs

struct SceVopPwriteArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file
const void * buf
SceSize nbyte
SceOff offset

◆ SceVopWhiteoutArgs

struct SceVopWhiteoutArgs
Data Fields
SceVfsVnode * dvp
SceVfsVnode * vp
SceVfsPath * old_path
SceVfsPath * new_path

◆ SceVopCleanupArgs

struct SceVopCleanupArgs
Data Fields
SceVfsVnode * vp
SceVfsFile * file

◆ SceVopZerofillArgs

struct SceVopZerofillArgs
Data Fields
SceVfsVnode * vp
SceUInt64 unk
SceUInt64 unk1
SceUInt64 unk2

◆ SceVopTable

struct SceVopTable

Data Fields

int(* vop_open )(SceVopOpenArgs *argp)
 
int(* vop_create )(SceVopCreateArgs *argp)
 
int(* vop_close )(SceVopCloseArgs *argp)
 
int(* vop_lookup )(SceVopLookupArgs *argp)
 
SceSSize(* vop_read )(SceVopReadArgs *argp)
 
SceSSize(* vop_write )(SceVopWriteArgs *argp)
 
SceOff(* vop_lseek )(SceVopLseekArgs *argp)
 
int(* vop_ioctl )(SceVopIoctlArgs *argp)
 
int(* vop_remove )(SceVopRemoveArgs *argp)
 
int(* vop_mkdir )(SceVopMkdirArgs *argp)
 
int(* vop_rmdir )(SceVopRmdirArgs *argp)
 
int(* vop_dopen )(SceVopDopenAgrs *argp)
 
int(* vop_dclose )(SceVopDcloseArgs *argp)
 
int(* vop_dread )(SceVopDreadArgs *argp)
 
int(* vop_getstat )(SceVopGetstatArgs *argp)
 
int(* vop_chstat )(SceVopChstatArgs *argp)
 
int(* vop_rename )(SceVopRenameArgs *argp)
 
const void * reserved
 
SceSSize(* vop_pread )(SceVopPreadArgs *argp)
 
SceSSize(* vop_pwrite )(SceVopPwriteArgs *argp)
 
int(* vop_inactive )(SceVopInactiveArgs *argp)
 
int(* vop_link )(SceVopLinkArgs *argp)
 
int(* vop_unlink )(SceVopUnlinkArgs *argp)
 
int(* vop_sync )(SceVopSyncArgs *argp)
 
int(* vop_fgetstat )(SceVopFgetstatArgs *argp)
 
int(* vop_fchstat )(SceVopFchstatArgs *argp)
 
int(* vop_whiteout )(SceVopWhiteoutArgs *argp)
 
int(* vop_cleanup )(SceVopCleanupArgs *argp)
 
int(* vop_verofill )(SceVopZerofillArgs *argp)
 

◆ SceVfsMountParam

struct SceVfsMountParam

Parameters for vfsMount and vfsMountForPFS.

Data Fields
const char * root_path This is the internal root path of the mountpoint. (example: /ux/exfat for ux0:)
const char * blockdev_name Overrides blockdevName in misc->blockdevName.
SceUInt8 fs_type One of SCE_VFS_FS_TYPE_*.
SceUInt16 opt Used to identify the IO Scheduler queue to use for the mountpoint.
SceUInt32 mnt_flags ORed together SCE_VFS_MOUNT_FLAG_* flags.
const char * vfs_name Name of the VFS to use for the mountpoint.
void * data To be passed to the created mountpoint.
SceVfsMountData * misc
SceVopTable * vops Overrides defaultVops in the VFS Info for the root vnode of the VFS.

◆ SceVfsUmountParam

struct SceVfsUmountParam

Parameters for vfsUmount and vfsUmountForPFS.

Data Fields
const char * assign_name Assigned name of the mountpoint to unmount.
int flag One of SCE_VFS_UMOUNT_FLAG_*.

◆ SceVfsVnode.vdlock

struct SceVfsVnode.vdlock
Data Fields
SceUInt32 waiter
SceUID owner_id
SceUInt32 recursive_count
SceUID wait_id
SceUInt32 wait_pattern

◆ SceVfsVnode.core

struct SceVfsVnode.core
Data Fields
SceVopTable * ops
SceUInt32 node_inf Field for private VFS vnode info.
void * node_data Pointer for private VFS data.
SceVfsMount * mnt
SceVfsVnode * dd Parent vnode.
SceVfsVnode * next
SceUInt32 ref_count
struct BuffCache * bc
SceUInt32 fid[2]
struct Flock * flock
SceUID allocator
struct Ncache * ncache
SceUInt32 state One of SCE_VNODE_STATE_*.
SceUInt32 type ORed together SCE_VNODE_TYPE_* flags.
SceVopTable * vop_tbl Internal use only.
SceUInt64 size
SceUInt32 acl_data[2] Typically holds st_attr in acl_data[0].
SceVfsFile * fd_list
SceUInt32 fd_num
SceVfsVnode * link_to
SceUInt32 linked_num
SceUInt8 unused[48]
SceUInt32 mnt_opt
SceUInt32 unk_0xd4

Macro Definition Documentation

◆ SCE_VFS_TYPE_FS

#define SCE_VFS_TYPE_FS   (0x00000000)

◆ SCE_VFS_TYPE_DEVFS

#define SCE_VFS_TYPE_DEVFS   (0x00000010)

◆ SCE_VFS_FS_TYPE_FS

#define SCE_VFS_FS_TYPE_FS   (0x01)

All exfat mounts.

◆ SCE_VFS_FS_TYPE_PFS

#define SCE_VFS_FS_TYPE_PFS   (0x03)

PFS mounts.

◆ SCE_VFS_FS_TYPE_HOSTFS

#define SCE_VFS_FS_TYPE_HOSTFS   (0x04)

host0:

◆ SCE_VFS_FS_TYPE_BLKDEV

#define SCE_VFS_FS_TYPE_BLKDEV   (0x10)

sdstor0:, md0:

◆ SCE_VFS_FS_TYPE_CHRDEV

#define SCE_VFS_FS_TYPE_CHRDEV   (0x20)

tty0:

◆ SCE_VFS_MOUNT_TYPE_PFS

#define SCE_VFS_MOUNT_TYPE_PFS   (0x00000001)

PFS mounts.

◆ SCE_VFS_MOUNT_TYPE_FSROOT

#define SCE_VFS_MOUNT_TYPE_FSROOT   (0x00000002)

Standard Root File System.

◆ SCE_VFS_MOUNT_TYPE_DEVFS

#define SCE_VFS_MOUNT_TYPE_DEVFS   (0x00000003)

Device File System.

◆ SCE_VFS_MOUNT_TYPE_STACKFS

#define SCE_VFS_MOUNT_TYPE_STACKFS   (0x00000005)

Loop File System (File system mounted from a file)

◆ SCE_VFS_MOUNT_TYPE_HOSTFS

#define SCE_VFS_MOUNT_TYPE_HOSTFS   (0x00000006)

Hostfs.

◆ SCE_VFS_MOUNT_FLAG_TYPE_MASK

#define SCE_VFS_MOUNT_FLAG_TYPE_MASK   (0x000000FF)

◆ SCE_VFS_MOUNT_FLAG_RDONLY

#define SCE_VFS_MOUNT_FLAG_RDONLY   (0x00001000)

Read-only mount.

◆ SCE_VFS_MOUNT_FLAG_NOBUF

#define SCE_VFS_MOUNT_FLAG_NOBUF   (0x00002000)

Disables VFS Buffer Cache.

◆ SCE_VFS_MOUNT_FLAG_NUMBERED

#define SCE_VFS_MOUNT_FLAG_NUMBERED   (0x00004000)

Files for this mountpoint are treated as numbered extensions of the assignName.

Example: tty mountpoint devices (tty0:, tty1:) internally are handled /tty/tty0:

◆ SCE_VFS_MOUNT_FLAG_REMOTE

#define SCE_VFS_MOUNT_FLAG_REMOTE   (0x00008000)

Prevents ncache entry of failed lookups. Used on host0:

◆ SCE_VFS_MOUNT_FLAG_INTERNAL

#define SCE_VFS_MOUNT_FLAG_INTERNAL   (0x00010000)

◆ SCE_VFS_MOUNT_FLAG_EXTERNAL

#define SCE_VFS_MOUNT_FLAG_EXTERNAL   (0x00020000)

◆ SCE_VFS_MOUNT_FLAG_WRITE_CACHE

#define SCE_VFS_MOUNT_FLAG_WRITE_CACHE   (0x00040000)

Allow write-caching. Default behavior is to flush buffer cache after write.

◆ SCE_VFS_MOUNT_FLAG_NO_RECLAIM

#define SCE_VFS_MOUNT_FLAG_NO_RECLAIM   (0x00100000)

Prevents Vnodes from being reclaimed. Only set internally for devfs.

◆ SCE_VNODE_TYPE_REG

#define SCE_VNODE_TYPE_REG   (0x00000001)

Regular file.

◆ SCE_VNODE_TYPE_DIR

#define SCE_VNODE_TYPE_DIR   (0x00000002)

Regular directory.

◆ SCE_VNODE_TYPE_CHR

#define SCE_VNODE_TYPE_CHR   (0x00000010)

Character file.

◆ SCE_VNODE_TYPE_ROOT

#define SCE_VNODE_TYPE_ROOT   (0x00001000)

Root vnode.

◆ SCE_VNODE_TYPE_DEV

#define SCE_VNODE_TYPE_DEV   (0x00002000)

Device vnode.

◆ SCE_VNODE_TYPE_MOUNTED

#define SCE_VNODE_TYPE_MOUNTED   (0x00004000)

Vnode used as a backing for a mountpoint.

◆ SCE_VNODE_TYPE_CHRDEV

#define SCE_VNODE_TYPE_CHRDEV   (SCE_VNODE_TYPE_DEV | SCE_VNODE_TYPE_CHR)

◆ SCE_VNODE_TYPE_ROOTDIR

#define SCE_VNODE_TYPE_ROOTDIR   (SCE_VNODE_TYPE_ROOT | SCE_VNODE_TYPE_DIR)

Root directory.

◆ SCE_VNODE_TYPE_ROOTDIR_DEVFS

#define SCE_VNODE_TYPE_ROOTDIR_DEVFS   (0x10000 | 0x20)

Root directory on devfs mountpoints.

◆ SCE_VNODE_STATE_ACTIVE

#define SCE_VNODE_STATE_ACTIVE   (0x00000001)

Vnode is active and valid for all operations.

◆ SCE_VNODE_STATE_INACTIVE

#define SCE_VNODE_STATE_INACTIVE   (0x00000100)

Vnode is inactive and may be pending deletion or otherwise.

◆ SCE_VNODE_STATE_UNMOUNTED

#define SCE_VNODE_STATE_UNMOUNTED   (0x00000200)

◆ SCE_VNODE_STATE_DELETED

#define SCE_VNODE_STATE_DELETED   (0x00000400)

◆ SCE_VNODE_STATE_RECLAIMED

#define SCE_VNODE_STATE_RECLAIMED   (0x00002000)

◆ SCE_VNODE_STATE_NEW

#define SCE_VNODE_STATE_NEW   (0x00008000)

◆ SCE_VFS_FILE_STATE_OPEN

#define SCE_VFS_FILE_STATE_OPEN   (0x00000001)

File is open.

◆ SCE_VFS_FILE_STATE_CLOSED

#define SCE_VFS_FILE_STATE_CLOSED   (0x00000200)

File is closed.

◆ SCE_VFS_FILE_STATE_UNK

#define SCE_VFS_FILE_STATE_UNK   (0x00000800)

Unknown status.

◆ SCE_VFS_FILE_STATE_DUMMY

#define SCE_VFS_FILE_STATE_DUMMY   (0x00010000)

Dummy file.

◆ SCE_VFS_UMOUNT_FLAG_FORCE

#define SCE_VFS_UMOUNT_FLAG_FORCE   (0x1)

Force unmount.

Function Documentation

◆ VITASDK_BUILD_ASSERT_EQ() [1/47]

VITASDK_BUILD_ASSERT_EQ ( 0x20  ,
SceVfsInfo   
)

◆ VITASDK_BUILD_ASSERT_EQ() [2/47]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceVfsPath   
)

◆ VITASDK_BUILD_ASSERT_EQ() [3/47]

VITASDK_BUILD_ASSERT_EQ ( 0x14  ,
SceVfsMountData   
)

◆ VITASDK_BUILD_ASSERT_EQ() [4/47]

VITASDK_BUILD_ASSERT_EQ ( 0x100  ,
SceVfsMount   
)

◆ VITASDK_BUILD_ASSERT_EQ() [5/47]

VITASDK_BUILD_ASSERT_EQ ( 0x100  ,
SceVfsVnode   
)

◆ VITASDK_BUILD_ASSERT_EQ() [6/47]

VITASDK_BUILD_ASSERT_EQ ( 0x40  ,
SceVfsFile   
)

◆ VITASDK_BUILD_ASSERT_EQ() [7/47]

VITASDK_BUILD_ASSERT_EQ ( 0x8  ,
SceVfsOpMountArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [8/47]

VITASDK_BUILD_ASSERT_EQ ( 0x8  ,
SceVfsOpUmountArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [9/47]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceVfsOpSetRootArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [10/47]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceVfsOpGetRootArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [11/47]

VITASDK_BUILD_ASSERT_EQ ( 0x8  ,
SceVfsOpSyncArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [12/47]

VITASDK_BUILD_ASSERT_EQ ( 0x4  ,
SceVfsOpInitArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [13/47]

VITASDK_BUILD_ASSERT_EQ ( 0x4  ,
SceVfsOpFiniArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [14/47]

VITASDK_BUILD_ASSERT_EQ ( 0x1C  ,
SceVfsOpDevctlArg   
)

◆ VITASDK_BUILD_ASSERT_EQ() [15/47]

VITASDK_BUILD_ASSERT_EQ ( 0x1C  ,
SceVfsOpDecodePathElemArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [16/47]

VITASDK_BUILD_ASSERT_EQ ( 0x34  ,
SceVfsOpTable   
)

◆ VITASDK_BUILD_ASSERT_EQ() [17/47]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceVopOpenArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [18/47]

VITASDK_BUILD_ASSERT_EQ ( 0x14  ,
SceVopCreateArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [19/47]

VITASDK_BUILD_ASSERT_EQ ( 0x8  ,
SceVopCloseArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [20/47]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceVopLookupArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [21/47]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceVopReadArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [22/47]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceVopWriteArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [23/47]

VITASDK_BUILD_ASSERT_EQ ( 0x18  ,
SceVopLseekArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [24/47]

VITASDK_BUILD_ASSERT_EQ ( 0x1C  ,
SceVopIoctlArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [25/47]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceVopRemoveArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [26/47]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceVopMkdirArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [27/47]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceVopRmdirArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [28/47]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceVopDopenAgrs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [29/47]

VITASDK_BUILD_ASSERT_EQ ( 0x8  ,
SceVopDcloseArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [30/47]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceVopDreadArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [31/47]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceVopGetstatArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [32/47]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceVopChstatArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [33/47]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceVopFchstatArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [34/47]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceVopFgetstatArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [35/47]

VITASDK_BUILD_ASSERT_EQ ( 0x4  ,
SceVopInactiveArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [36/47]

VITASDK_BUILD_ASSERT_EQ ( 0x8  ,
SceVopLinkArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [37/47]

VITASDK_BUILD_ASSERT_EQ ( 0x8  ,
SceVopUnlinkArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [38/47]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceVopSyncArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [39/47]

VITASDK_BUILD_ASSERT_EQ ( 0x18  ,
SceVopRenameArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [40/47]

VITASDK_BUILD_ASSERT_EQ ( 0x18  ,
SceVopPreadArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [41/47]

VITASDK_BUILD_ASSERT_EQ ( 0x18  ,
SceVopPwriteArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [42/47]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceVopWhiteoutArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [43/47]

VITASDK_BUILD_ASSERT_EQ ( 0x8  ,
SceVopCleanupArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [44/47]

VITASDK_BUILD_ASSERT_EQ ( 0x20  ,
SceVopZerofillArgs   
)

◆ VITASDK_BUILD_ASSERT_EQ() [45/47]

VITASDK_BUILD_ASSERT_EQ ( 0x74  ,
SceVopTable   
)

◆ VITASDK_BUILD_ASSERT_EQ() [46/47]

VITASDK_BUILD_ASSERT_EQ ( 0x20  ,
SceVfsMountParam   
)

◆ VITASDK_BUILD_ASSERT_EQ() [47/47]

VITASDK_BUILD_ASSERT_EQ ( 0x8  ,
SceVfsUmountParam   
)

◆ ksceVfsAddVfs()

int ksceVfsAddVfs ( SceVfsInfo vfs_info)

Register a VFS implementation.

Parameters
vfs_info- The VFS Info structure for the VFS. (This pointer should remain persistent until the VFS is deleted)
Returns
0 on success, < 0 on error

◆ ksceVfsDeleteVfs()

int ksceVfsDeleteVfs ( const char *  name,
SceVfsInfo **  vfs_info 
)

Unegister a VFS implementation.

Parameters
name- The name of the VFS implementation to unregister
vfs_info- The VFS Info structure for the VFS. (This pointer should remain persistent until the VFS is deleted)
Returns
0 on success, < 0 on error

◆ vfsMount()

int vfsMount ( SceVfsMountParam param)

Mount a drive.

Parameters
param- The mount parameters
Returns
0 on success, < 0 on error

◆ vfsUmount()

int vfsUmount ( SceVfsUmountParam param)

Unmount a drive.

Parameters
param- The unmount parameters
Returns
0 on success, < 0 on error

◆ vfsMountForPFS()

int vfsMountForPFS ( SceVfsMountParam param)

Mount a drive via the mount daemon.

Parameters
param- The mount parameters
Returns
0 on success, < 0 on error

◆ vfsUmountForPFS()

int vfsUmountForPFS ( SceVfsUmountParam param,
int  unk,
int  unk2 
)

Unmount a drive via the mount daemon.

Parameters
param- The unmount parameters
Returns
0 on success, < 0 on error

◆ vfsLockMnt()

int vfsLockMnt ( SceVfsMount mnt)

Lock the mnt.

Parameters
mnt- The mountpoint to lock
Returns
0 on success, < 0 on error

◆ vfsUnlockMnt()

int vfsUnlockMnt ( SceVfsMount mnt)

Unlock the mnt.

Parameters
mnt- The mountpoint to unlock
Returns
0 on success, < 0 on error

◆ vfsIsLockedMnt()

SceBool vfsIsLockedMnt ( SceVfsMount mnt)

Is the mnt lock held by the current thread ?

Parameters
mnt- The mount point to query
Returns
SCE_TRUE if the lock is held, SCE_FALSE if it is not, and < 0 on error

◆ vfsAllocateFile()

SceUID vfsAllocateFile ( SceVfsVnode vp,
SceVfsFile **  file,
const char *  name 
)

Allocate a new VFS file object.

Parameters
vp- The vnode the file should be referencing
file- The pointer reference the file will be returned to
name- The name of the file
Returns
The UID of the file object on success, < 0 on error

◆ vfsFreeFile()

int vfsFreeFile ( SceVfsVnode vp,
SceUID  fd 
)

Free a File object.

Parameters
vp- Vnode for the file handle being freed
fd- UID of the file being freed
Returns
0 on success, < 0 on error

◆ vfsGetNewVnode()

int vfsGetNewVnode ( SceVfsMount mnt,
SceVopTable vops,
int  unk,
SceVfsVnode **  vpp 
)

Get a new vnode from the pool.

Parameters
mnt- The mountpoint the vnode will be attached to
vops- The vnode vop table for executing VFS Vops
unk- Must be 0
vpp- The pointer reference to return the vnode to
Returns
0 on success, < 0 on error

◆ vfsFreeVnode()

int vfsFreeVnode ( SceVfsVnode vp)

Return a vnode to the pool.

Parameters
vp- The vnode to return
Returns
0 on success, < 0 on error

◆ vfsLockVnode()

int vfsLockVnode ( SceVfsVnode vp)

Lock a vnode.

Parameters
vp- Target vnode
Returns
0 on success, < 0 on error

◆ vfsUnlockVnode()

int vfsUnlockVnode ( SceVfsVnode vp)

Unlock a vnode.

Parameters
vp- Target vnode
Returns
0 on success, < 0 on error

◆ vfsIsOwnerVnode()

SceBool vfsIsOwnerVnode ( SceVfsVnode vp)

Does the current thread own the vnode lock.

Parameters
vp- Target vnode
Returns
SCE_TRUE if the lock is owned, SCE_FALSE if it is not, and < 0 on error

◆ vfsGetVnodeName()

int vfsGetVnodeName ( SceVfsVnode vp,
char *  name,
SceSize  n,
SceSize result 
)

Get the name of a vnode.

Parameters
vp- Target vnode
name- Buffer for the name
n- Buffer size
result- Length of the returned name
Returns
0 on success, < 0 on error

◆ ksceVopOpen()

int ksceVopOpen ( SceVfsVnode vp,
SceVfsPath path,
int  flags,
SceVfsFile file 
)

◆ ksceVopCreate()

int ksceVopCreate ( SceVfsVnode dvp,
SceVfsVnode **  vpp,
SceVfsPath path,
int  flags,
int  mode 
)

◆ ksceVopClose()

int ksceVopClose ( SceVfsVnode vp,
SceVfsFile file 
)

◆ ksceVopLookup()

int ksceVopLookup ( SceVfsVnode dvp,
SceVfsVnode **  vpp,
SceVfsPath path,
SceUInt32  flags 
)

◆ ksceVopRead()

int ksceVopRead ( SceVfsVnode vp,
SceVfsFile file,
void *  data,
SceSize  nbyte,
SceSize result 
)

◆ ksceVopWrite()

int ksceVopWrite ( SceVfsVnode vp,
SceVfsFile file,
const void *  data,
SceSize  nbyte,
SceSize result 
)

◆ ksceVopLseek()

SceOff ksceVopLseek ( SceVfsVnode vp,
SceVfsFile file,
SceOff  offset,
int  whence 
)

◆ ksceVopIoctl()

int ksceVopIoctl ( SceVfsVnode vp,
SceVfsFile file,
int  cmd,
const void *  in_data,
SceSize  in_len,
void *  out_data,
SceSize  out_len 
)

◆ ksceVopRemove()

int ksceVopRemove ( SceVfsVnode dvp,
SceVfsVnode vp,
SceVfsPath path,
SceUInt32  flags 
)

◆ ksceVopMkdir()

int ksceVopMkdir ( SceVfsVnode dvp,
SceVfsVnode **  vpp,
SceVfsPath path,
int  mode 
)

◆ ksceVopRmdir()

int ksceVopRmdir ( SceVfsVnode dvp,
SceVfsVnode vp,
SceVfsPath path 
)

◆ ksceVopDopen()

int ksceVopDopen ( SceVfsVnode vp,
SceVfsPath path,
SceVfsFile file 
)

◆ ksceVopDclose()

int ksceVopDclose ( SceVfsVnode vp,
SceVfsFile file 
)

◆ ksceVopDread()

int ksceVopDread ( SceVfsVnode vp,
SceVfsFile file,
SceIoDirent dir 
)

◆ ksceVopGetstat()

int ksceVopGetstat ( SceVfsVnode vp,
SceVfsPath path,
SceIoStat stat 
)

◆ ksceVopChstat()

int ksceVopChstat ( SceVfsVnode vp,
SceVfsPath path,
SceIoStat stat,
int  bit 
)

◆ ksceVopRename()

int ksceVopRename ( SceVfsVnode odvp,
SceVfsVnode ovp,
SceVfsPath old_path,
SceVfsVnode ndvp,
SceVfsVnode **  nvpp,
SceVfsPath new_path 
)

◆ ksceVopPread()

int ksceVopPread ( SceVfsVnode vp,
SceVfsFile file,
void *  data,
SceSize  nbyte,
SceOff  offset,
SceSize pResult 
)

◆ ksceVopPwrite()

int ksceVopPwrite ( SceVfsVnode vp,
SceVfsFile file,
const void *  data,
SceSize  nbyte,
SceOff  offset,
SceSize result 
)

◆ ksceVopInactive()

int ksceVopInactive ( SceVfsVnode vp)

◆ ksceVopSync()

int ksceVopSync ( SceVfsVnode vp,
SceVfsFile file,
int  flags 
)

◆ ksceVopFgetstat()

int ksceVopFgetstat ( SceVfsVnode vp,
SceVfsFile file,
SceIoStat stat 
)

◆ ksceVopFchstat()

int ksceVopFchstat ( SceVfsVnode vp,
SceVfsFile file,
SceIoStat stat,
int  bit 
)

◆ ksceVopLink()

int ksceVopLink ( SceVfsVnode fvp,
SceVfsVnode tvp 
)

◆ ksceVopUnlink()

int ksceVopUnlink ( SceVfsVnode fvp,
SceVfsVnode tvp 
)

◆ ksceVopWhiteout()

int ksceVopWhiteout ( SceVfsVnode dvp,
SceVfsVnode vp,
SceVfsPath old_path,
SceVfsPath new_path 
)

◆ ksceVopCleanup()

int ksceVopCleanup ( SceVfsVnode vp,
SceVfsFile file 
)

◆ ksceVopZerofill()

int ksceVopZerofill ( SceVfsVnode vp,
SceUInt64  unk,
SceUInt64  unk1,
SceUInt64  unk2 
)