PSPSDK 2025-02-06
Loading...
Searching...
No Matches
pspiofilemgr_kernel.h
Go to the documentation of this file.
1/*
2 * PSP Software Development Kit - https://github.com/pspdev
3 * -----------------------------------------------------------------------
4 * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
5 *
6 * pspiofilemgr_kernel.h - Interface to the kernel mode library for IoFileMgr.
7 *
8 * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
9 * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
10 * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
11 *
12 */
13
14#ifndef PSPIOFILEMGR_KERNEL_H
15#define PSPIOFILEMGR_KERNEL_H
16
17#include <psptypes.h>
18#include <pspkerneltypes.h>
19#include <pspiofilemgr.h>
20
25#ifdef __cplusplus
26extern "C" {
27#endif
28
32struct PspIoDrv;
33
35typedef struct PspIoDrvArg
36{
38 struct PspIoDrv *drv;
40 void *arg;
42
57
59typedef struct PspIoDrvFuncs
60{
61 int (*IoInit)(PspIoDrvArg* arg);
62 int (*IoExit)(PspIoDrvArg* arg);
63 int (*IoOpen)(PspIoDrvFileArg *arg, char *file, int flags, SceMode mode);
64 int (*IoClose)(PspIoDrvFileArg *arg);
65 int (*IoRead)(PspIoDrvFileArg *arg, char *data, int len);
66 int (*IoWrite)(PspIoDrvFileArg *arg, const char *data, int len);
67 SceOff (*IoLseek)(PspIoDrvFileArg *arg, SceOff ofs, int whence);
68 int (*IoIoctl)(PspIoDrvFileArg *arg, unsigned int cmd, void *indata, int inlen, void *outdata, int outlen);
69 int (*IoRemove)(PspIoDrvFileArg *arg, const char *name);
70 int (*IoMkdir)(PspIoDrvFileArg *arg, const char *name, SceMode mode);
71 int (*IoRmdir)(PspIoDrvFileArg *arg, const char *name);
72 int (*IoDopen)(PspIoDrvFileArg *arg, const char *dirname);
75 int (*IoGetstat)(PspIoDrvFileArg *arg, const char *file, SceIoStat *stat);
76 int (*IoChstat)(PspIoDrvFileArg *arg, const char *file, SceIoStat *stat, int bits);
77 int (*IoRename)(PspIoDrvFileArg *arg, const char *oldname, const char *newname);
78 int (*IoChdir)(PspIoDrvFileArg *arg, const char *dir);
79 int (*IoMount)(PspIoDrvFileArg *arg);
81 int (*IoDevctl)(PspIoDrvFileArg *arg, const char *devname, unsigned int cmd, void *indata, int inlen, void *outdata, int outlen);
82 int (*IoUnk21)(PspIoDrvFileArg *arg);
84
85typedef struct PspIoDrv
86{
88 const char *name;
94 const char *name2;
98
115
123int sceIoDelDrv(const char *drv_name);
124
135int sceIoReopen(const char *file, int flags, SceMode mode, SceUID fd);
136
147int sceIoGetThreadCwd(SceUID uid, char *dir, int len);
148
157int sceIoChangeThreadCwd(SceUID uid, char *dir);
158
161#ifdef __cplusplus
162}
163#endif
164
165#endif /* PSPIOFILEMGR_KERNEL_H */
u32 flags
Definition fixup.c:1
struct PspIoDrvFuncs PspIoDrvFuncs
Structure to maintain the file driver pointers.
int sceIoGetThreadCwd(SceUID uid, char *dir, int len)
Get the current working directory for a thread.
int sceIoAddDrv(PspIoDrv *drv)
Adds a new IO driver to the system.
struct PspIoDrvFileArg PspIoDrvFileArg
Structure passed to the file functions of the io driver system.
struct PspIoDrv PspIoDrv
struct PspIoDrvArg PspIoDrvArg
Structure passed to the init and exit functions of the io driver system.
int sceIoDelDrv(const char *drv_name)
Deletes a IO driver from the system.
int sceIoReopen(const char *file, int flags, SceMode mode, SceUID fd)
Reopens an existing file descriptor.
int sceIoChangeThreadCwd(SceUID uid, char *dir)
Set the current working directory for a thread.
int SceUID
UIDs are used to describe many different kernel objects.
Definition pspkerneltypes.h:24
SceInt64 SceOff
Definition pspkerneltypes.h:35
int SceMode
Definition pspkerneltypes.h:34
char * name
Definition pspsysmem_kernel.h:4
uint32_t u32
Definition psptypes.h:41
Structure passed to the init and exit functions of the io driver system.
Definition pspiofilemgr_kernel.h:36
void * arg
Pointer to a user defined argument (if written by the driver will preseve across calls.
Definition pspiofilemgr_kernel.h:40
struct PspIoDrv * drv
Pointer to the original driver which was added.
Definition pspiofilemgr_kernel.h:38
Structure passed to the file functions of the io driver system.
Definition pspiofilemgr_kernel.h:45
u32 unk1
Unknown.
Definition pspiofilemgr_kernel.h:47
u32 fs_num
The file system number, e.g.
Definition pspiofilemgr_kernel.h:49
void * arg
Pointer to a user defined argument, this is preserved on a per file basis.
Definition pspiofilemgr_kernel.h:55
PspIoDrvArg * drv
Pointer to the driver structure.
Definition pspiofilemgr_kernel.h:51
u32 unk2
Unknown, again.
Definition pspiofilemgr_kernel.h:53
Structure to maintain the file driver pointers.
Definition pspiofilemgr_kernel.h:60
int(* IoUmount)(PspIoDrvFileArg *arg)
Definition pspiofilemgr_kernel.h:80
int(* IoChdir)(PspIoDrvFileArg *arg, const char *dir)
Definition pspiofilemgr_kernel.h:78
int(* IoExit)(PspIoDrvArg *arg)
Definition pspiofilemgr_kernel.h:62
int(* IoMkdir)(PspIoDrvFileArg *arg, const char *name, SceMode mode)
Definition pspiofilemgr_kernel.h:70
int(* IoGetstat)(PspIoDrvFileArg *arg, const char *file, SceIoStat *stat)
Definition pspiofilemgr_kernel.h:75
int(* IoWrite)(PspIoDrvFileArg *arg, const char *data, int len)
Definition pspiofilemgr_kernel.h:66
int(* IoDclose)(PspIoDrvFileArg *arg)
Definition pspiofilemgr_kernel.h:73
int(* IoUnk21)(PspIoDrvFileArg *arg)
Definition pspiofilemgr_kernel.h:82
int(* IoInit)(PspIoDrvArg *arg)
Definition pspiofilemgr_kernel.h:61
int(* IoMount)(PspIoDrvFileArg *arg)
Definition pspiofilemgr_kernel.h:79
int(* IoChstat)(PspIoDrvFileArg *arg, const char *file, SceIoStat *stat, int bits)
Definition pspiofilemgr_kernel.h:76
int(* IoIoctl)(PspIoDrvFileArg *arg, unsigned int cmd, void *indata, int inlen, void *outdata, int outlen)
Definition pspiofilemgr_kernel.h:68
int(* IoRemove)(PspIoDrvFileArg *arg, const char *name)
Definition pspiofilemgr_kernel.h:69
int(* IoDevctl)(PspIoDrvFileArg *arg, const char *devname, unsigned int cmd, void *indata, int inlen, void *outdata, int outlen)
Definition pspiofilemgr_kernel.h:81
int(* IoRead)(PspIoDrvFileArg *arg, char *data, int len)
Definition pspiofilemgr_kernel.h:65
int(* IoDread)(PspIoDrvFileArg *arg, SceIoDirent *dir)
Definition pspiofilemgr_kernel.h:74
SceOff(* IoLseek)(PspIoDrvFileArg *arg, SceOff ofs, int whence)
Definition pspiofilemgr_kernel.h:67
int(* IoRmdir)(PspIoDrvFileArg *arg, const char *name)
Definition pspiofilemgr_kernel.h:71
int(* IoClose)(PspIoDrvFileArg *arg)
Definition pspiofilemgr_kernel.h:64
int(* IoOpen)(PspIoDrvFileArg *arg, char *file, int flags, SceMode mode)
Definition pspiofilemgr_kernel.h:63
int(* IoDopen)(PspIoDrvFileArg *arg, const char *dirname)
Definition pspiofilemgr_kernel.h:72
int(* IoRename)(PspIoDrvFileArg *arg, const char *oldname, const char *newname)
Definition pspiofilemgr_kernel.h:77
Definition pspiofilemgr_kernel.h:86
PspIoDrvFuncs * funcs
Pointer to a filled out functions table.
Definition pspiofilemgr_kernel.h:96
u32 dev_type
Device type, this 0x10 is for a filesystem driver.
Definition pspiofilemgr_kernel.h:90
const char * name2
This seems to be the same as name but capitalised :/.
Definition pspiofilemgr_kernel.h:94
const char * name
The name of the device to add.
Definition pspiofilemgr_kernel.h:88
u32 unk2
Unknown, set to 0x800.
Definition pspiofilemgr_kernel.h:92
Describes a single directory entry.
Definition pspiofilemgr_dirent.h:24
Structure to hold the status information about a file.
Definition pspiofilemgr_stat.h:102