vitasdk
Documentation of the vitasdk

Exports for Kernel. More...

Data Structures

struct  SceVfsInfo
 VFS Info defining a VFS Implementation. More...
 
struct  SceVfsPath
 VFS Path for vnode. More...
 
struct  SceVfsMountData
 Mountpoint Data. More...
 
struct  SceVfsMount
 
struct  SceVfsVnode
 VFS Vnode. More...
 
struct  SceVfsFile
 VFS File. More...
 
struct  SceVfsOpMountArgs
 
struct  SceVfsOpUmountArgs
 
struct  SceVfsOpSetRootArgs
 
struct  SceVfsOpGetRootArgs
 
struct  SceVfsOpSyncArgs
 
struct  SceVfsOpInitArgs
 
struct  SceVfsOpFiniArgs
 
struct  SceVfsOpDevctlArg
 
struct  SceVfsOpDecodePathElemArgs
 
struct  SceVfsOpTable
 
struct  SceVopOpenArgs
 
struct  SceVopCreateArgs
 
struct  SceVopCloseArgs
 
struct  SceVopLookupArgs
 
struct  SceVopReadArgs
 
struct  SceVopWriteArgs
 
struct  SceVopLseekArgs
 
struct  SceVopIoctlArgs
 
struct  SceVopRemoveArgs
 
struct  SceVopMkdirArgs
 
struct  SceVopRmdirArgs
 
struct  SceVopDopenAgrs
 
struct  SceVopDcloseArgs
 
struct  SceVopDreadArgs
 
struct  SceVopGetstatArgs
 
struct  SceVopChstatArgs
 
struct  SceVopFchstatArgs
 
struct  SceVopFgetstatArgs
 
struct  SceVopInactiveArgs
 
struct  SceVopLinkArgs
 
struct  SceVopUnlinkArgs
 
struct  SceVopSyncArgs
 
struct  SceVopRenameArgs
 
struct  SceVopPreadArgs
 
struct  SceVopPwriteArgs
 
struct  SceVopWhiteoutArgs
 
struct  SceVopCleanupArgs
 
struct  SceVopZerofillArgs
 
struct  SceVopTable
 
struct  SceVfsMountParam
 Parameters for vfsMount and vfsMountForPFS. More...
 
struct  SceVfsUmountParam
 Parameters for vfsUmount and vfsUmountForPFS. More...
 
struct  SceVfsVnode.vdlock
 
struct  SceVfsVnode.core
 

Variables

const SceVfsOpTableSceVfsInfo::vfs_ops
 VFS Implementation operations for mountpoint actions.
 
const char * SceVfsInfo::vfs_name
 Name of the VFS implementation (Must be unique, used to identify the VFS)
 
SceSize SceVfsInfo::vfs_name_len
 Length of vfs_name plus null-terminator.
 
SceUInt32 SceVfsInfo::ref_count
 Internal use only.
 
SceUInt32 SceVfsInfo::type
 One of SCE_VFS_TYPE_*.
 
const SceVopTableSceVfsInfo::default_vops
 Default vop table for the vnodes.
 
void * SceVfsInfo::vfs_data
 Optional data that can be passed to the vfs_init callback.
 
struct SceVfsInfoSceVfsInfo::next
 Internal use only.
 
const char * SceVfsPath::name
 Name of vnode.
 
SceSize SceVfsPath::name_length
 Length of name.
 
const char * SceVfsPath::path
 Full path name is from.
 
const char * SceVfsMountData::assign_name
 Assigned name for the mount point. Must end with ':', typically in format <mnt>0:
 
const char * SceVfsMountData::fs_name
 Name of the FS being mounted.
 
const char * SceVfsMountData::blockdev_name
 Path to the block device.
 
const char * SceVfsMountData::blockdev_name_no_part
 Path to the block device without a partition specified (used as a fallback if blockdev_name isn't found)
 
SceUInt32 SceVfsMountData::mnt_id
 Mountpoint ID (example: 0xF00 for uma0:)
 
SceKernelFastMutex SceVfsMount::fast_mutex
 
SceVfsVnodeSceVfsMount::mnt_vnode
 
SceUID SceVfsMount::allocator
 
SceUInt32 SceVfsMount::state
 
SceUInt8 SceVfsMount::fs_type
 One of SCE_VFS_FS_TYPE_*.
 
SceUInt16 SceVfsMount::opt
 
SceUInt32 SceVfsMount::mnt_flags
 ORed together SCE_VFS_MOUNT_FLAG_* flags.
 
SceVfsVnodeSceVfsMount::vnode_list
 
SceUInt32 SceVfsMount::vnode_num
 
SceVfsInfoSceVfsMount::mnt_vfs_inf
 
SceUInt32 SceVfsMount::mnt_ref_count
 
SceUInt32 SceVfsMount::opened_entry_num
 
SceUInt32 SceVfsMount::available_entry_num
 
SceUID SceVfsMount::pid
 
SceVfsMountSceVfsMount::mnted_on_list
 
SceVfsMountSceVfsMount::mnted_on_list_prev
 
SceVfsMountSceVfsMount::mnt_list_next
 
SceVfsMountDataSceVfsMount::mnt_data
 
char SceVfsMount::path [64]
 
SceUInt32 SceVfsMount::default_io_cache_size
 
void * SceVfsMount::data
 VFS Implementation defined mount point data.
 
struct FdLock * SceVfsMount::fd_lock
 
struct Fumount * SceVfsMount::fumount
 
SceUInt32 SceVfsMount::opaque [4]
 
SceUInt32 SceVfsMount::opaque2 [4]
 
SceUInt8 SceVfsMount::padding [16]
 
SceUInt32 SceVfsVnode::waiter
 
SceUID SceVfsVnode::owner_id
 
SceUInt32 SceVfsVnode::recursive_count
 
SceUID SceVfsVnode::wait_id
 
SceUInt32 SceVfsVnode::wait_pattern
 
struct { 
 
SceUInt32 waiter
 
SceUID owner_id
 
SceUInt32 recursive_count
 
SceUID wait_id
 
SceUInt32 wait_pattern
 
SceVfsVnode::vdlock 
 
SceUInt8 SceVfsVnode::padding [44]
 
SceVopTableSceVfsVnode::ops
 
SceUInt32 SceVfsVnode::node_inf
 Field for private VFS vnode info.
 
void * SceVfsVnode::node_data
 Pointer for private VFS data.
 
SceVfsMountSceVfsVnode::mnt
 
SceVfsVnodeSceVfsVnode::dd
 Parent vnode.
 
SceVfsVnodeSceVfsVnode::next
 
SceUInt32 SceVfsVnode::ref_count
 
struct BuffCache * SceVfsVnode::bc
 
SceUInt32 SceVfsVnode::fid [2]
 
struct Flock * SceVfsVnode::flock
 
SceUID SceVfsVnode::allocator
 
struct Ncache * SceVfsVnode::ncache
 
SceUInt32 SceVfsVnode::state
 One of SCE_VNODE_STATE_*.
 
SceUInt32 SceVfsVnode::type
 ORed together SCE_VNODE_TYPE_* flags.
 
SceVopTableSceVfsVnode::vop_tbl
 Internal use only.
 
SceUInt64 SceVfsVnode::size
 
SceUInt32 SceVfsVnode::acl_data [2]
 Typically holds st_attr in acl_data[0].
 
SceVfsFileSceVfsVnode::fd_list
 
SceUInt32 SceVfsVnode::fd_num
 
SceVfsVnodeSceVfsVnode::link_to
 
SceUInt32 SceVfsVnode::linked_num
 
SceUInt8 SceVfsVnode::unused [48]
 
SceUInt32 SceVfsVnode::mnt_opt
 
SceUInt32 SceVfsVnode::unk_0xd4
 
struct { 
 
SceVopTableops
 
SceUInt32 node_inf
 Field for private VFS vnode info.
 
void * node_data
 Pointer for private VFS data.
 
SceVfsMountmnt
 
SceVfsVnodedd
 Parent vnode.
 
SceVfsVnodenext
 
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.
 
SceVopTablevop_tbl
 Internal use only.
 
SceUInt64 size
 
SceUInt32 acl_data [2]
 Typically holds st_attr in acl_data[0].
 
SceVfsFilefd_list
 
SceUInt32 fd_num
 
SceVfsVnodelink_to
 
SceUInt32 linked_num
 
SceUInt8 unused [48]
 
SceUInt32 mnt_opt
 
SceUInt32 unk_0xd4
 
SceVfsVnode::core 
 
SceUInt8 SceVfsVnode::padding2 [40]
 
SceUInt32 SceVfsFile::is_dir
 
SceUInt32 SceVfsFile::flags
 
SceOff SceVfsFile::position
 
SceUInt32 SceVfsFile::state
 
SceUID SceVfsFile::pid
 
SceVfsVnodeSceVfsFile::vp
 
SceVfsFileSceVfsFile::next
 
SceUInt32 SceVfsFile::fd
 File descriptor provided and used by VFS implementation.
 
SceUInt16 SceVfsFile::flock_busy_count
 
SceUInt8 SceVfsFile::is_locked
 
SceUInt8 SceVfsFile::has_flock_ent
 
struct FdLock * SceVfsFile::fd_lock
 
SceUInt32 SceVfsFile::idata
 
struct DebugPath * SceVfsFile::debug_path
 
SceUInt32 SceVfsFile::ioSchedData [3]
 
SceVfsMountSceVfsOpMountArgs::mnt
 
SceVfsPathSceVfsOpMountArgs::dev_file_path
 Path to the device file.
 
SceVfsMountSceVfsOpUmountArgs::mnt
 
int SceVfsOpUmountArgs::flags
 
SceVfsMountSceVfsOpSetRootArgs::mnt
 
int SceVfsOpSetRootArgs::unk
 
struct SceVfsVnodeSceVfsOpSetRootArgs::vp
 
SceVfsMountSceVfsOpGetRootArgs::mnt
 
int SceVfsOpGetRootArgs::unk
 
struct SceVfsVnode ** SceVfsOpGetRootArgs::vpp
 
SceVfsMountSceVfsOpSyncArgs::mnt
 
int SceVfsOpSyncArgs::flags
 
SceVfsInfoSceVfsOpInitArgs::vfs_inf
 
SceVfsInfoSceVfsOpFiniArgs::vfs_inf
 
SceVfsMountSceVfsOpDevctlArg::mnt
 
const char * SceVfsOpDevctlArg::dev
 
unsigned int SceVfsOpDevctlArg::cmd
 
const void * SceVfsOpDevctlArg::arg
 
SceSize SceVfsOpDevctlArg::arg_len
 
void * SceVfsOpDevctlArg::buf
 
SceSize SceVfsOpDevctlArg::buf_len
 
SceVfsMountSceVfsOpDecodePathElemArgs::mnt
 
const char * SceVfsOpDecodePathElemArgs::path
 
const char ** SceVfsOpDecodePathElemArgs::path2
 
const char ** SceVfsOpDecodePathElemArgs::path3
 
char * SceVfsOpDecodePathElemArgs::buf
 
SceSize SceVfsOpDecodePathElemArgs::buf_len
 
SceSizeSceVfsOpDecodePathElemArgs::decode_len
 
int(* SceVfsOpTable::vfs_mount )(SceVfsOpMountArgs *argp)
 
int(* SceVfsOpTable::vfs_umount )(SceVfsOpUmountArgs *argp)
 
int(* SceVfsOpTable::vfs_set_root )(SceVfsOpSetRootArgs *argp)
 
int(* SceVfsOpTable::vfs_get_root )(SceVfsOpGetRootArgs *argp)
 
void * SceVfsOpTable::reserved [2]
 
int(* SceVfsOpTable::vfs_sync )(SceVfsOpSyncArgs *argp)
 
void * SceVfsOpTable::reserved2
 
int(* SceVfsOpTable::vfs_init )(SceVfsOpInitArgs *argp)
 
int(* SceVfsOpTable::vfs_fini )(SceVfsOpFiniArgs *argp)
 
void * SceVfsOpTable::reserved3
 
int(* SceVfsOpTable::vfs_devctl )(SceVfsOpDevctlArg *arg)
 
int(* SceVfsOpTable::vfs_decode_path_elem )(SceVfsOpDecodePathElemArgs *argp)
 
SceVfsVnodeSceVopOpenArgs::vp
 
SceVfsPathSceVopOpenArgs::path
 
int SceVopOpenArgs::flags
 
SceVfsFileSceVopOpenArgs::file
 
SceVfsVnodeSceVopCreateArgs::dvp
 
SceVfsVnode ** SceVopCreateArgs::vpp
 
SceVfsPathSceVopCreateArgs::path
 
int SceVopCreateArgs::flags
 
int SceVopCreateArgs::mode
 
SceVfsVnodeSceVopCloseArgs::vp
 
SceVfsFileSceVopCloseArgs::file
 
SceVfsVnodeSceVopLookupArgs::dvp
 
SceVfsVnode ** SceVopLookupArgs::vpp
 
SceVfsPathSceVopLookupArgs::path
 
SceUInt32 SceVopLookupArgs::flags
 
SceVfsVnodeSceVopReadArgs::vp
 
SceVfsFileSceVopReadArgs::file
 
void * SceVopReadArgs::buf
 
SceSize SceVopReadArgs::nbyte
 
SceVfsVnodeSceVopWriteArgs::vp
 
SceVfsFileSceVopWriteArgs::file
 
const void * SceVopWriteArgs::buf
 
SceSize SceVopWriteArgs::nbyte
 
SceVfsVnodeSceVopLseekArgs::vp
 
SceVfsFileSceVopLseekArgs::file
 
SceOff SceVopLseekArgs::offset
 
int SceVopLseekArgs::whence
 
SceVfsVnodeSceVopIoctlArgs::vp
 
SceVfsFileSceVopIoctlArgs::file
 
int SceVopIoctlArgs::cmd
 
const void * SceVopIoctlArgs::in_data
 
SceSize SceVopIoctlArgs::in_len
 
void * SceVopIoctlArgs::out_data
 
SceSize SceVopIoctlArgs::out_len
 
SceVfsVnodeSceVopRemoveArgs::dvp
 
SceVfsVnodeSceVopRemoveArgs::vp
 
SceVfsPathSceVopRemoveArgs::path
 
SceUInt32 SceVopRemoveArgs::flags
 
SceVfsVnodeSceVopMkdirArgs::dvp
 
SceVfsVnode ** SceVopMkdirArgs::vpp
 
SceVfsPathSceVopMkdirArgs::path
 
int SceVopMkdirArgs::mode
 
SceVfsVnodeSceVopRmdirArgs::dvp
 
SceVfsVnodeSceVopRmdirArgs::vp
 
SceVfsPathSceVopRmdirArgs::path
 
SceVfsVnodeSceVopDopenAgrs::vp
 
SceVfsPathSceVopDopenAgrs::path
 
SceVfsFileSceVopDopenAgrs::file
 
SceVfsVnodeSceVopDcloseArgs::vp
 
SceVfsFileSceVopDcloseArgs::file
 
SceVfsVnodeSceVopDreadArgs::vp
 
SceVfsFileSceVopDreadArgs::file
 
SceIoDirentSceVopDreadArgs::dir
 
SceVfsVnodeSceVopGetstatArgs::vp
 
SceVfsPathSceVopGetstatArgs::path
 
SceIoStatSceVopGetstatArgs::stat
 
SceVfsVnodeSceVopChstatArgs::vp
 
SceVfsPathSceVopChstatArgs::path
 
SceIoStatSceVopChstatArgs::stat
 
int SceVopChstatArgs::bit
 
SceVfsVnodeSceVopFchstatArgs::vp
 
SceVfsFileSceVopFchstatArgs::file
 
SceIoStatSceVopFchstatArgs::stat
 
SceUInt32 SceVopFchstatArgs::bit
 
SceVfsVnodeSceVopFgetstatArgs::vp
 
SceVfsFileSceVopFgetstatArgs::file
 
SceIoStatSceVopFgetstatArgs::stat
 
SceVfsVnodeSceVopInactiveArgs::vp
 
SceVfsVnodeSceVopLinkArgs::fvp
 
SceVfsVnodeSceVopLinkArgs::tvp
 
SceVfsVnodeSceVopUnlinkArgs::fvp
 
SceVfsVnodeSceVopUnlinkArgs::tvp
 
SceVfsVnodeSceVopSyncArgs::vp
 
SceVfsFileSceVopSyncArgs::file
 
int SceVopSyncArgs::flags
 
SceVfsVnodeSceVopRenameArgs::odvp
 
SceVfsVnodeSceVopRenameArgs::ovp
 
SceVfsPathSceVopRenameArgs::old_path
 
SceVfsVnodeSceVopRenameArgs::ndvp
 
SceVfsVnode ** SceVopRenameArgs::nvpp
 
SceVfsPathSceVopRenameArgs::new_path
 
SceVfsVnodeSceVopPreadArgs::vp
 
SceVfsFileSceVopPreadArgs::file
 
void * SceVopPreadArgs::buf
 
SceSize SceVopPreadArgs::nbyte
 
SceOff SceVopPreadArgs::offset
 
SceVfsVnodeSceVopPwriteArgs::vp
 
SceVfsFileSceVopPwriteArgs::file
 
const void * SceVopPwriteArgs::buf
 
SceSize SceVopPwriteArgs::nbyte
 
SceOff SceVopPwriteArgs::offset
 
SceVfsVnodeSceVopWhiteoutArgs::dvp
 
SceVfsVnodeSceVopWhiteoutArgs::vp
 
SceVfsPathSceVopWhiteoutArgs::old_path
 
SceVfsPathSceVopWhiteoutArgs::new_path
 
SceVfsVnodeSceVopCleanupArgs::vp
 
SceVfsFileSceVopCleanupArgs::file
 
SceVfsVnodeSceVopZerofillArgs::vp
 
SceUInt64 SceVopZerofillArgs::unk
 
SceUInt64 SceVopZerofillArgs::unk1
 
SceUInt64 SceVopZerofillArgs::unk2
 
int(* SceVopTable::vop_open )(SceVopOpenArgs *argp)
 
int(* SceVopTable::vop_create )(SceVopCreateArgs *argp)
 
int(* SceVopTable::vop_close )(SceVopCloseArgs *argp)
 
int(* SceVopTable::vop_lookup )(SceVopLookupArgs *argp)
 
SceSSize(* SceVopTable::vop_read )(SceVopReadArgs *argp)
 
SceSSize(* SceVopTable::vop_write )(SceVopWriteArgs *argp)
 
SceOff(* SceVopTable::vop_lseek )(SceVopLseekArgs *argp)
 
int(* SceVopTable::vop_ioctl )(SceVopIoctlArgs *argp)
 
int(* SceVopTable::vop_remove )(SceVopRemoveArgs *argp)
 
int(* SceVopTable::vop_mkdir )(SceVopMkdirArgs *argp)
 
int(* SceVopTable::vop_rmdir )(SceVopRmdirArgs *argp)
 
int(* SceVopTable::vop_dopen )(SceVopDopenAgrs *argp)
 
int(* SceVopTable::vop_dclose )(SceVopDcloseArgs *argp)
 
int(* SceVopTable::vop_dread )(SceVopDreadArgs *argp)
 
int(* SceVopTable::vop_getstat )(SceVopGetstatArgs *argp)
 
int(* SceVopTable::vop_chstat )(SceVopChstatArgs *argp)
 
int(* SceVopTable::vop_rename )(SceVopRenameArgs *argp)
 
const void * SceVopTable::reserved
 
SceSSize(* SceVopTable::vop_pread )(SceVopPreadArgs *argp)
 
SceSSize(* SceVopTable::vop_pwrite )(SceVopPwriteArgs *argp)
 
int(* SceVopTable::vop_inactive )(SceVopInactiveArgs *argp)
 
int(* SceVopTable::vop_link )(SceVopLinkArgs *argp)
 
int(* SceVopTable::vop_unlink )(SceVopUnlinkArgs *argp)
 
int(* SceVopTable::vop_sync )(SceVopSyncArgs *argp)
 
int(* SceVopTable::vop_fgetstat )(SceVopFgetstatArgs *argp)
 
int(* SceVopTable::vop_fchstat )(SceVopFchstatArgs *argp)
 
int(* SceVopTable::vop_whiteout )(SceVopWhiteoutArgs *argp)
 
int(* SceVopTable::vop_cleanup )(SceVopCleanupArgs *argp)
 
int(* SceVopTable::vop_verofill )(SceVopZerofillArgs *argp)
 
const char * SceVfsMountParam::root_path
 This is the internal root path of the mountpoint. (example: /ux/exfat for ux0:)
 
const char * SceVfsMountParam::blockdev_name
 Overrides blockdevName in misc->blockdevName.
 
SceUInt8 SceVfsMountParam::fs_type
 One of SCE_VFS_FS_TYPE_*.
 
SceUInt16 SceVfsMountParam::opt
 Used to identify the IO Scheduler queue to use for the mountpoint.
 
SceUInt32 SceVfsMountParam::mnt_flags
 ORed together SCE_VFS_MOUNT_FLAG_* flags.
 
const char * SceVfsMountParam::vfs_name
 Name of the VFS to use for the mountpoint.
 
void * SceVfsMountParam::data
 To be passed to the created mountpoint.
 
SceVfsMountDataSceVfsMountParam::misc
 
SceVopTableSceVfsMountParam::vops
 Overrides defaultVops in the VFS Info for the root vnode of the VFS.
 
const char * SceVfsUmountParam::assign_name
 Assigned name of the mountpoint to unmount.
 
int SceVfsUmountParam::flag
 One of SCE_VFS_UMOUNT_FLAG_*.
 

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)
 

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




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 
)

Variable Documentation

◆ vfs_ops

const SceVfsOpTable* SceVfsInfo::vfs_ops

VFS Implementation operations for mountpoint actions.

◆ vfs_name [1/2]

const char* SceVfsInfo::vfs_name

Name of the VFS implementation (Must be unique, used to identify the VFS)

◆ vfs_name_len

SceSize SceVfsInfo::vfs_name_len

Length of vfs_name plus null-terminator.

◆ ref_count [1/2]

SceUInt32 SceVfsInfo::ref_count

Internal use only.

◆ type [1/2]

SceUInt32 SceVfsInfo::type

One of SCE_VFS_TYPE_*.

◆ default_vops

const SceVopTable* SceVfsInfo::default_vops

Default vop table for the vnodes.

◆ vfs_data

void* SceVfsInfo::vfs_data

Optional data that can be passed to the vfs_init callback.

◆ next [1/3]

struct SceVfsInfo* SceVfsInfo::next

Internal use only.

◆ name

const char* SceVfsPath::name

Name of vnode.

◆ name_length

SceSize SceVfsPath::name_length

Length of name.

◆ path [1/12]

const char* SceVfsPath::path

Full path name is from.

◆ assign_name [1/2]

const char* SceVfsMountData::assign_name

Assigned name for the mount point. Must end with ':', typically in format <mnt>0:

◆ fs_name

const char* SceVfsMountData::fs_name

Name of the FS being mounted.

◆ blockdev_name [1/2]

const char* SceVfsMountData::blockdev_name

Path to the block device.

◆ blockdev_name_no_part

const char* SceVfsMountData::blockdev_name_no_part

Path to the block device without a partition specified (used as a fallback if blockdev_name isn't found)

◆ mnt_id

SceUInt32 SceVfsMountData::mnt_id

Mountpoint ID (example: 0xF00 for uma0:)

◆ fast_mutex

SceKernelFastMutex SceVfsMount::fast_mutex

◆ mnt_vnode

SceVfsVnode* SceVfsMount::mnt_vnode

◆ allocator [1/2]

SceUID SceVfsMount::allocator

◆ state [1/3]

SceUInt32 SceVfsMount::state

◆ fs_type [1/2]

SceUInt8 SceVfsMount::fs_type

One of SCE_VFS_FS_TYPE_*.

◆ opt [1/2]

SceUInt16 SceVfsMount::opt

◆ mnt_flags [1/2]

SceUInt32 SceVfsMount::mnt_flags

ORed together SCE_VFS_MOUNT_FLAG_* flags.

◆ vnode_list

SceVfsVnode* SceVfsMount::vnode_list

◆ vnode_num

SceUInt32 SceVfsMount::vnode_num

◆ mnt_vfs_inf

SceVfsInfo* SceVfsMount::mnt_vfs_inf

◆ mnt_ref_count

SceUInt32 SceVfsMount::mnt_ref_count

◆ opened_entry_num

SceUInt32 SceVfsMount::opened_entry_num

◆ available_entry_num

SceUInt32 SceVfsMount::available_entry_num

◆ pid [1/2]

SceUID SceVfsMount::pid

◆ mnted_on_list

SceVfsMount* SceVfsMount::mnted_on_list

◆ mnted_on_list_prev

SceVfsMount* SceVfsMount::mnted_on_list_prev

◆ mnt_list_next

SceVfsMount* SceVfsMount::mnt_list_next

◆ mnt_data

SceVfsMountData* SceVfsMount::mnt_data

◆ path [2/12]

char SceVfsMount::path[64]

◆ default_io_cache_size

SceUInt32 SceVfsMount::default_io_cache_size

◆ data [1/2]

void* SceVfsMount::data

VFS Implementation defined mount point data.

◆ fd_lock [1/2]

struct FdLock* SceVfsMount::fd_lock

◆ fumount

struct Fumount* SceVfsMount::fumount

◆ opaque

SceUInt32 SceVfsMount::opaque[4]

◆ opaque2

SceUInt32 SceVfsMount::opaque2[4]

◆ padding [1/2]

SceUInt8 SceVfsMount::padding[16]

◆ []

SceUInt32 { ... } ::waiter

◆ []

SceUID { ... } ::owner_id

◆ []

SceUInt32 { ... } ::recursive_count

◆ []

SceUID { ... } ::wait_id

◆ []

SceUInt32 { ... } ::wait_pattern

◆ [struct]

struct { ... } SceVfsVnode::vdlock

◆ padding [2/2]

SceUInt8 SceVfsVnode::padding[44]

◆ []

SceVopTable* { ... } ::ops

◆ []

SceUInt32 { ... } ::node_inf

Field for private VFS vnode info.

◆ []

void* { ... } ::node_data

Pointer for private VFS data.

◆ [] [1/8]

SceVfsMount* { ... } ::mnt

◆ []

SceVfsVnode* { ... } ::dd

Parent vnode.

◆ [] [2/3]

SceVfsVnode* { ... } ::next

◆ [] [2/2]

SceUInt32 { ... } ::ref_count

◆ []

struct BuffCache* { ... } ::bc

◆ []

SceUInt32 { ... } ::fid[2]

◆ []

struct Flock* { ... } ::flock

◆ [] [2/2]

SceUID { ... } ::allocator

◆ []

struct Ncache* { ... } ::ncache

◆ [] [2/3]

SceUInt32 { ... } ::state

One of SCE_VNODE_STATE_*.

◆ [] [2/2]

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

◆ [struct]

struct { ... } SceVfsVnode::core

◆ padding2

SceUInt8 SceVfsVnode::padding2[40]

◆ is_dir

SceUInt32 SceVfsFile::is_dir

◆ flags [1/8]

SceUInt32 SceVfsFile::flags

◆ position

SceOff SceVfsFile::position

◆ state [3/3]

SceUInt32 SceVfsFile::state

◆ pid [2/2]

SceUID SceVfsFile::pid

◆ vp [1/24]

SceVfsVnode* SceVfsFile::vp

◆ next [3/3]

SceVfsFile* SceVfsFile::next

◆ fd

SceUInt32 SceVfsFile::fd

File descriptor provided and used by VFS implementation.

◆ flock_busy_count

SceUInt16 SceVfsFile::flock_busy_count

◆ is_locked

SceUInt8 SceVfsFile::is_locked

◆ has_flock_ent

SceUInt8 SceVfsFile::has_flock_ent

◆ fd_lock [2/2]

struct FdLock* SceVfsFile::fd_lock

◆ idata

SceUInt32 SceVfsFile::idata

◆ debug_path

struct DebugPath* SceVfsFile::debug_path

◆ ioSchedData

SceUInt32 SceVfsFile::ioSchedData[3]

◆ mnt [2/8]

SceVfsMount* SceVfsOpMountArgs::mnt

◆ dev_file_path

SceVfsPath* SceVfsOpMountArgs::dev_file_path

Path to the device file.

◆ mnt [3/8]

SceVfsMount* SceVfsOpUmountArgs::mnt

◆ flags [2/8]

int SceVfsOpUmountArgs::flags

◆ mnt [4/8]

SceVfsMount* SceVfsOpSetRootArgs::mnt

◆ unk [1/3]

int SceVfsOpSetRootArgs::unk

◆ vp [2/24]

struct SceVfsVnode* SceVfsOpSetRootArgs::vp

◆ mnt [5/8]

SceVfsMount* SceVfsOpGetRootArgs::mnt

◆ unk [2/3]

int SceVfsOpGetRootArgs::unk

◆ vpp [1/4]

struct SceVfsVnode** SceVfsOpGetRootArgs::vpp

◆ mnt [6/8]

SceVfsMount* SceVfsOpSyncArgs::mnt

◆ flags [3/8]

int SceVfsOpSyncArgs::flags

◆ vfs_inf [1/2]

SceVfsInfo* SceVfsOpInitArgs::vfs_inf

◆ vfs_inf [2/2]

SceVfsInfo* SceVfsOpFiniArgs::vfs_inf

◆ mnt [7/8]

SceVfsMount* SceVfsOpDevctlArg::mnt

◆ dev

const char* SceVfsOpDevctlArg::dev

◆ cmd [1/2]

unsigned int SceVfsOpDevctlArg::cmd

◆ arg

const void* SceVfsOpDevctlArg::arg

◆ arg_len

SceSize SceVfsOpDevctlArg::arg_len

◆ buf [1/6]

void* SceVfsOpDevctlArg::buf

◆ buf_len [1/2]

SceSize SceVfsOpDevctlArg::buf_len

◆ mnt [8/8]

SceVfsMount* SceVfsOpDecodePathElemArgs::mnt

◆ path [3/12]

const char* SceVfsOpDecodePathElemArgs::path

◆ path2

const char** SceVfsOpDecodePathElemArgs::path2

◆ path3

const char** SceVfsOpDecodePathElemArgs::path3

◆ buf [2/6]

char* SceVfsOpDecodePathElemArgs::buf

◆ buf_len [2/2]

SceSize SceVfsOpDecodePathElemArgs::buf_len

◆ decode_len

SceSize* SceVfsOpDecodePathElemArgs::decode_len

◆ vfs_mount

int(* SceVfsOpTable::vfs_mount) (SceVfsOpMountArgs *argp)

◆ vfs_umount

int(* SceVfsOpTable::vfs_umount) (SceVfsOpUmountArgs *argp)

◆ vfs_set_root

int(* SceVfsOpTable::vfs_set_root) (SceVfsOpSetRootArgs *argp)

◆ vfs_get_root

int(* SceVfsOpTable::vfs_get_root) (SceVfsOpGetRootArgs *argp)

◆ reserved [1/2]

void* SceVfsOpTable::reserved[2]

◆ vfs_sync

int(* SceVfsOpTable::vfs_sync) (SceVfsOpSyncArgs *argp)

◆ reserved2

void* SceVfsOpTable::reserved2

◆ vfs_init

int(* SceVfsOpTable::vfs_init) (SceVfsOpInitArgs *argp)

◆ vfs_fini

int(* SceVfsOpTable::vfs_fini) (SceVfsOpFiniArgs *argp)

◆ reserved3

void* SceVfsOpTable::reserved3

◆ vfs_devctl

int(* SceVfsOpTable::vfs_devctl) (SceVfsOpDevctlArg *arg)

◆ vfs_decode_path_elem

int(* SceVfsOpTable::vfs_decode_path_elem) (SceVfsOpDecodePathElemArgs *argp)

◆ vp [3/24]

SceVfsVnode* SceVopOpenArgs::vp

◆ path [4/12]

SceVfsPath* SceVopOpenArgs::path

◆ flags [4/8]

int SceVopOpenArgs::flags

◆ file [1/15]

SceVfsFile* SceVopOpenArgs::file

◆ dvp [1/6]

SceVfsVnode* SceVopCreateArgs::dvp

◆ vpp [2/4]

SceVfsVnode** SceVopCreateArgs::vpp

◆ path [5/12]

SceVfsPath* SceVopCreateArgs::path

◆ flags [5/8]

int SceVopCreateArgs::flags

◆ mode [1/2]

int SceVopCreateArgs::mode

◆ vp [4/24]

SceVfsVnode* SceVopCloseArgs::vp

◆ file [2/15]

SceVfsFile* SceVopCloseArgs::file

◆ dvp [2/6]

SceVfsVnode* SceVopLookupArgs::dvp

◆ vpp [3/4]

SceVfsVnode** SceVopLookupArgs::vpp

◆ path [6/12]

SceVfsPath* SceVopLookupArgs::path

◆ flags [6/8]

SceUInt32 SceVopLookupArgs::flags

◆ vp [5/24]

SceVfsVnode* SceVopReadArgs::vp

◆ file [3/15]

SceVfsFile* SceVopReadArgs::file

◆ buf [3/6]

void* SceVopReadArgs::buf

◆ nbyte [1/4]

SceSize SceVopReadArgs::nbyte

◆ vp [6/24]

SceVfsVnode* SceVopWriteArgs::vp

◆ file [4/15]

SceVfsFile* SceVopWriteArgs::file

◆ buf [4/6]

const void* SceVopWriteArgs::buf

◆ nbyte [2/4]

SceSize SceVopWriteArgs::nbyte

◆ vp [7/24]

SceVfsVnode* SceVopLseekArgs::vp

◆ file [5/15]

SceVfsFile* SceVopLseekArgs::file

◆ offset [1/3]

SceOff SceVopLseekArgs::offset

◆ whence

int SceVopLseekArgs::whence

◆ vp [8/24]

SceVfsVnode* SceVopIoctlArgs::vp

◆ file [6/15]

SceVfsFile* SceVopIoctlArgs::file

◆ cmd [2/2]

int SceVopIoctlArgs::cmd

◆ in_data

const void* SceVopIoctlArgs::in_data

◆ in_len

SceSize SceVopIoctlArgs::in_len

◆ out_data

void* SceVopIoctlArgs::out_data

◆ out_len

SceSize SceVopIoctlArgs::out_len

◆ dvp [3/6]

SceVfsVnode* SceVopRemoveArgs::dvp

◆ vp [9/24]

SceVfsVnode* SceVopRemoveArgs::vp

◆ path [7/12]

SceVfsPath* SceVopRemoveArgs::path

◆ flags [7/8]

SceUInt32 SceVopRemoveArgs::flags

◆ dvp [4/6]

SceVfsVnode* SceVopMkdirArgs::dvp

◆ vpp [4/4]

SceVfsVnode** SceVopMkdirArgs::vpp

◆ path [8/12]

SceVfsPath* SceVopMkdirArgs::path

◆ mode [2/2]

int SceVopMkdirArgs::mode

◆ dvp [5/6]

SceVfsVnode* SceVopRmdirArgs::dvp

◆ vp [10/24]

SceVfsVnode* SceVopRmdirArgs::vp

◆ path [9/12]

SceVfsPath* SceVopRmdirArgs::path

◆ vp [11/24]

SceVfsVnode* SceVopDopenAgrs::vp

◆ path [10/12]

SceVfsPath* SceVopDopenAgrs::path

◆ file [7/15]

SceVfsFile* SceVopDopenAgrs::file

◆ vp [12/24]

SceVfsVnode* SceVopDcloseArgs::vp

◆ file [8/15]

SceVfsFile* SceVopDcloseArgs::file

◆ vp [13/24]

SceVfsVnode* SceVopDreadArgs::vp

◆ file [9/15]

SceVfsFile* SceVopDreadArgs::file

◆ dir

SceIoDirent* SceVopDreadArgs::dir

◆ vp [14/24]

SceVfsVnode* SceVopGetstatArgs::vp

◆ path [11/12]

SceVfsPath* SceVopGetstatArgs::path

◆ stat [1/4]

SceIoStat* SceVopGetstatArgs::stat

◆ vp [15/24]

SceVfsVnode* SceVopChstatArgs::vp

◆ path [12/12]

SceVfsPath* SceVopChstatArgs::path

◆ stat [2/4]

SceIoStat* SceVopChstatArgs::stat

◆ bit [1/2]

int SceVopChstatArgs::bit

◆ vp [16/24]

SceVfsVnode* SceVopFchstatArgs::vp

◆ file [10/15]

SceVfsFile* SceVopFchstatArgs::file

◆ stat [3/4]

SceIoStat* SceVopFchstatArgs::stat

◆ bit [2/2]

SceUInt32 SceVopFchstatArgs::bit

◆ vp [17/24]

SceVfsVnode* SceVopFgetstatArgs::vp

◆ file [11/15]

SceVfsFile* SceVopFgetstatArgs::file

◆ stat [4/4]

SceIoStat* SceVopFgetstatArgs::stat

◆ vp [18/24]

SceVfsVnode* SceVopInactiveArgs::vp

◆ fvp [1/2]

SceVfsVnode* SceVopLinkArgs::fvp

◆ tvp [1/2]

SceVfsVnode* SceVopLinkArgs::tvp

◆ fvp [2/2]

SceVfsVnode* SceVopUnlinkArgs::fvp

◆ tvp [2/2]

SceVfsVnode* SceVopUnlinkArgs::tvp

◆ vp [19/24]

SceVfsVnode* SceVopSyncArgs::vp

◆ file [12/15]

SceVfsFile* SceVopSyncArgs::file

◆ flags [8/8]

int SceVopSyncArgs::flags

◆ odvp

SceVfsVnode* SceVopRenameArgs::odvp

◆ ovp

SceVfsVnode* SceVopRenameArgs::ovp

◆ old_path [1/2]

SceVfsPath* SceVopRenameArgs::old_path

◆ ndvp

SceVfsVnode* SceVopRenameArgs::ndvp

◆ nvpp

SceVfsVnode** SceVopRenameArgs::nvpp

◆ new_path [1/2]

SceVfsPath* SceVopRenameArgs::new_path

◆ vp [20/24]

SceVfsVnode* SceVopPreadArgs::vp

◆ file [13/15]

SceVfsFile* SceVopPreadArgs::file

◆ buf [5/6]

void* SceVopPreadArgs::buf

◆ nbyte [3/4]

SceSize SceVopPreadArgs::nbyte

◆ offset [2/3]

SceOff SceVopPreadArgs::offset

◆ vp [21/24]

SceVfsVnode* SceVopPwriteArgs::vp

◆ file [14/15]

SceVfsFile* SceVopPwriteArgs::file

◆ buf [6/6]

const void* SceVopPwriteArgs::buf

◆ nbyte [4/4]

SceSize SceVopPwriteArgs::nbyte

◆ offset [3/3]

SceOff SceVopPwriteArgs::offset

◆ dvp [6/6]

SceVfsVnode* SceVopWhiteoutArgs::dvp

◆ vp [22/24]

SceVfsVnode* SceVopWhiteoutArgs::vp

◆ old_path [2/2]

SceVfsPath* SceVopWhiteoutArgs::old_path

◆ new_path [2/2]

SceVfsPath* SceVopWhiteoutArgs::new_path

◆ vp [23/24]

SceVfsVnode* SceVopCleanupArgs::vp

◆ file [15/15]

SceVfsFile* SceVopCleanupArgs::file

◆ vp [24/24]

SceVfsVnode* SceVopZerofillArgs::vp

◆ unk [3/3]

SceUInt64 SceVopZerofillArgs::unk

◆ unk1

SceUInt64 SceVopZerofillArgs::unk1

◆ unk2

SceUInt64 SceVopZerofillArgs::unk2

◆ vop_open

int(* SceVopTable::vop_open) (SceVopOpenArgs *argp)

◆ vop_create

int(* SceVopTable::vop_create) (SceVopCreateArgs *argp)

◆ vop_close

int(* SceVopTable::vop_close) (SceVopCloseArgs *argp)

◆ vop_lookup

int(* SceVopTable::vop_lookup) (SceVopLookupArgs *argp)

◆ vop_read

SceSSize(* SceVopTable::vop_read) (SceVopReadArgs *argp)

◆ vop_write

SceSSize(* SceVopTable::vop_write) (SceVopWriteArgs *argp)

◆ vop_lseek

SceOff(* SceVopTable::vop_lseek) (SceVopLseekArgs *argp)

◆ vop_ioctl

int(* SceVopTable::vop_ioctl) (SceVopIoctlArgs *argp)

◆ vop_remove

int(* SceVopTable::vop_remove) (SceVopRemoveArgs *argp)

◆ vop_mkdir

int(* SceVopTable::vop_mkdir) (SceVopMkdirArgs *argp)

◆ vop_rmdir

int(* SceVopTable::vop_rmdir) (SceVopRmdirArgs *argp)

◆ vop_dopen

int(* SceVopTable::vop_dopen) (SceVopDopenAgrs *argp)

◆ vop_dclose

int(* SceVopTable::vop_dclose) (SceVopDcloseArgs *argp)

◆ vop_dread

int(* SceVopTable::vop_dread) (SceVopDreadArgs *argp)

◆ vop_getstat

int(* SceVopTable::vop_getstat) (SceVopGetstatArgs *argp)

◆ vop_chstat

int(* SceVopTable::vop_chstat) (SceVopChstatArgs *argp)

◆ vop_rename

int(* SceVopTable::vop_rename) (SceVopRenameArgs *argp)

◆ reserved [2/2]

const void* SceVopTable::reserved

◆ vop_pread

SceSSize(* SceVopTable::vop_pread) (SceVopPreadArgs *argp)

◆ vop_pwrite

SceSSize(* SceVopTable::vop_pwrite) (SceVopPwriteArgs *argp)

◆ vop_inactive

int(* SceVopTable::vop_inactive) (SceVopInactiveArgs *argp)

◆ vop_link

int(* SceVopTable::vop_link) (SceVopLinkArgs *argp)

◆ vop_unlink

int(* SceVopTable::vop_unlink) (SceVopUnlinkArgs *argp)

◆ vop_sync

int(* SceVopTable::vop_sync) (SceVopSyncArgs *argp)

◆ vop_fgetstat

int(* SceVopTable::vop_fgetstat) (SceVopFgetstatArgs *argp)

◆ vop_fchstat

int(* SceVopTable::vop_fchstat) (SceVopFchstatArgs *argp)

◆ vop_whiteout

int(* SceVopTable::vop_whiteout) (SceVopWhiteoutArgs *argp)

◆ vop_cleanup

int(* SceVopTable::vop_cleanup) (SceVopCleanupArgs *argp)

◆ vop_verofill

int(* SceVopTable::vop_verofill) (SceVopZerofillArgs *argp)

◆ root_path

const char* SceVfsMountParam::root_path

This is the internal root path of the mountpoint. (example: /ux/exfat for ux0:)

◆ blockdev_name [2/2]

const char* SceVfsMountParam::blockdev_name

Overrides blockdevName in misc->blockdevName.

◆ fs_type [2/2]

SceUInt8 SceVfsMountParam::fs_type

One of SCE_VFS_FS_TYPE_*.

◆ opt [2/2]

SceUInt16 SceVfsMountParam::opt

Used to identify the IO Scheduler queue to use for the mountpoint.

◆ mnt_flags [2/2]

SceUInt32 SceVfsMountParam::mnt_flags

ORed together SCE_VFS_MOUNT_FLAG_* flags.

◆ vfs_name [2/2]

const char* SceVfsMountParam::vfs_name

Name of the VFS to use for the mountpoint.

◆ data [2/2]

void* SceVfsMountParam::data

To be passed to the created mountpoint.

◆ misc

SceVfsMountData* SceVfsMountParam::misc

◆ vops

SceVopTable* SceVfsMountParam::vops

Overrides defaultVops in the VFS Info for the root vnode of the VFS.

◆ assign_name [2/2]

const char* SceVfsUmountParam::assign_name

Assigned name of the mountpoint to unmount.

◆ flag

int SceVfsUmountParam::flag

One of SCE_VFS_UMOUNT_FLAG_*.