ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
fileXio.h
Go to the documentation of this file.
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # Copyright 2001-2004, ps2dev - http://www.ps2dev.org
7 # Licenced under Academic Free License version 2.0
8 # Review ps2sdk README & LICENSE files for further details.
9 */
10 
19 #ifndef __FILEXIO_H__
20 #define __FILEXIO_H__
21 
22 #include <tamtypes.h>
23 #include <iox_stat.h>
24 
25 #ifdef _EE
26 #ifndef NEWLIB_PORT_AWARE
27 #error "Using fio/fileXio functions directly in the newlib port will lead to problems."
28 #error "Use posix function calls instead."
29 #endif
30 #endif
31 
32 #define FILEXIO_IRX 0xb0b0b00
34  FILEXIO_DOPEN = 0x01,
66 };
67 
69 typedef struct {
70  int ssize;
71  int esize;
72  void *sbuf;
73  void *ebuf;
74  u8 sbuffer[64];
75  u8 ebuffer[64];
76 } rests_pkt; // sizeof = 144
77 
78 #define FILEXIO_MOUNTFLAG_NORMAL 0
79 #define FILEXIO_MOUNTFLAG_READONLY 1
80 #define FILEXIO_MOUNTFLAG_ROBUST 2
81 
82 #define FILEXIO_DIRFLAGS_DIR 0xa0
83 #define FILEXIO_DIRFLAGS_FILE 0x80
84 
85 #define CTL_BUF_SIZE 2048
86 #define IOCTL_BUF_SIZE 1024
87 
88 #define FILEXIO_MAX_DEVICES 32
89 
90 #define FILEXIO_DT_CHAR 0x01
91 #define FILEXIO_DT_CONS 0x02
92 #define FILEXIO_DT_BLOCK 0x04
93 #define FILEXIO_DT_RAW 0x08
94 #define FILEXIO_DT_FS 0x10
96 #define FILEXIO_DT_FSEXT 0x10000000
97 
99 {
102  char filename[128+1];
103 } __attribute__((aligned(64)));
104 
106 {
107  char name[16];
108  unsigned int type;
110  unsigned int version;
111  char desc[128];
112 } __attribute__((aligned(64)));
113 
116  unsigned int reqEntries;
117 };
118 
120  char pathname[512];
122  unsigned int reqEntries;
123 };
124 
126  char blockdevice[512];
127  char mountpoint[512];
128  int flags;
129 };
130 
132  char mountpoint[512];
133 };
134 
136  char source[512];
137  char dest[512];
138  int mode;
139 };
140 
142  char pathname[512];
143  int mode;
144 };
145 
148  char pathname[512];
149 };
150 
153  char source[512];
154  char dest[512];
155 };
156 
158  char source[512];
159  void *buffer;
160  unsigned int buflen;
161 };
162 
164  char pathname[512];
165  int flags, mode;
166 };
167 
170  int fd;
171 };
172 
174  int fd;
175  void *buffer;
176  int size;
177  void *intrData;
178 };
179 
181  int fd;
182  const void *buffer;
183  int size;
184  unsigned int unalignedDataLen;
185  unsigned char unalignedData[64];
186 };
187 
189  int fd;
191  int whence;
192 };
193 
195  int fd;
198  int whence;
199 };
200 
202  char pathname[512];
204  int mask;
205 };
206 
208  char pathname[512];
210 };
211 
213  char device[128];
214  char blockDevice[512];
215  char args[512];
216  int arglen;
217 };
218 
220  char device[512];
221  int flags;
222 };
223 
225  int fd;
227 };
228 
232  int cmd;
233  int arglen;
234  void *buf;
235  int buflen;
236  void *intr_data;
237 };
238 
240  int fd;
242  int cmd;
243 };
244 
246  int fd;
248  int cmd;
249  int arglen;
250  void *buf;
251  int buflen;
252  void *intr_data;
253 };
254 
256  void *dest;
257  int len;
259  int padding[2];
260 };
261 
264 };
265 
266 struct fxio_rwbuff{
267  int size;
268 };
269 
270 #endif /* __FILEXIO_H__ */
#define IOCTL_BUF_SIZE
Definition: fileXio.h:86
#define CTL_BUF_SIZE
Definition: fileXio.h:85
FILEXIO_CMDS
Definition: fileXio.h:33
@ FILEXIO_MOUNT
Definition: fileXio.h:37
@ FILEXIO_MKDIR
Definition: fileXio.h:62
@ FILEXIO_GETDIR
Definition: fileXio.h:39
@ FILEXIO_ADDDRV
Definition: fileXio.h:52
@ FILEXIO_RENAME
Definition: fileXio.h:54
@ FILEXIO_IOCTL2
Definition: fileXio.h:60
@ FILEXIO_OPEN
Definition: fileXio.h:42
@ FILEXIO_GETDEVICELIST
Definition: fileXio.h:64
@ FILEXIO_SYNC
Definition: fileXio.h:56
@ FILEXIO_CHDIR
Definition: fileXio.h:55
@ FILEXIO_READ
Definition: fileXio.h:44
@ FILEXIO_DEVCTL
Definition: fileXio.h:57
@ FILEXIO_READLINK
Definition: fileXio.h:59
@ FILEXIO_FORMAT
Definition: fileXio.h:51
@ FILEXIO_STOP
Definition: fileXio.h:40
@ FILEXIO_COPYFILE
Definition: fileXio.h:41
@ FILEXIO_SYMLINK
Definition: fileXio.h:58
@ FILEXIO_GETSTAT
Definition: fileXio.h:49
@ FILEXIO_DREAD
Definition: fileXio.h:35
@ FILEXIO_DCLOSE
Definition: fileXio.h:36
@ FILEXIO_LSEEK
Definition: fileXio.h:46
@ FILEXIO_WRITE
Definition: fileXio.h:45
@ FILEXIO_REMOVE
Definition: fileXio.h:63
@ FILEXIO_RMDIR
Definition: fileXio.h:48
@ FILEXIO_LSEEK64
Definition: fileXio.h:61
@ FILEXIO_UMOUNT
Definition: fileXio.h:38
@ FILEXIO_SETRWBUFFSIZE
Definition: fileXio.h:65
@ FILEXIO_DOPEN
Definition: fileXio.h:34
@ FILEXIO_CLOSE
Definition: fileXio.h:43
@ FILEXIO_IOCTL
Definition: fileXio.h:47
@ FILEXIO_CHSTAT
Definition: fileXio.h:50
@ FILEXIO_DELDRV
Definition: fileXio.h:53
char name[16]
Definition: fileXio.h:107
unsigned int type
Definition: fileXio.h:108
unsigned int version
Definition: fileXio.h:110
char desc[128]
Definition: fileXio.h:111
char filename[128+1]
Definition: fileXio.h:102
char pathname[512]
Definition: fileXio.h:202
iox_stat_t * stat
Definition: fileXio.h:203
char source[512]
Definition: fileXio.h:136
char dest[512]
Definition: fileXio.h:137
u8 buf[CTL_BUF_SIZE]
Definition: fileXio.h:258
u8 arg[CTL_BUF_SIZE]
Definition: fileXio.h:231
void * intr_data
Definition: fileXio.h:236
char name[CTL_BUF_SIZE]
Definition: fileXio.h:230
struct fileXioDevice * deviceEntry
Definition: fileXio.h:115
unsigned int reqEntries
Definition: fileXio.h:116
iox_dirent_t * dirent
Definition: fileXio.h:226
char blockDevice[512]
Definition: fileXio.h:214
char args[512]
Definition: fileXio.h:215
char device[128]
Definition: fileXio.h:213
char pathname[512]
Definition: fileXio.h:120
unsigned int reqEntries
Definition: fileXio.h:122
struct fileXioDirEntry * dirEntry
Definition: fileXio.h:121
char pathname[512]
Definition: fileXio.h:208
iox_stat_t * stat
Definition: fileXio.h:209
void * intr_data
Definition: fileXio.h:252
u8 arg[CTL_BUF_SIZE]
Definition: fileXio.h:247
u8 arg[IOCTL_BUF_SIZE]
Definition: fileXio.h:241
char pathname[512]
Definition: fileXio.h:142
char mountpoint[512]
Definition: fileXio.h:127
char blockdevice[512]
Definition: fileXio.h:126
char pathname[512]
Definition: fileXio.h:164
char pathname[512]
Definition: fileXio.h:148
void * buffer
Definition: fileXio.h:175
void * intrData
Definition: fileXio.h:177
char source[512]
Definition: fileXio.h:153
char dest[512]
Definition: fileXio.h:154
int size
Definition: fileXio.h:267
char device[512]
Definition: fileXio.h:220
char mountpoint[512]
Definition: fileXio.h:132
unsigned char unalignedData[64]
Definition: fileXio.h:185
const void * buffer
Definition: fileXio.h:182
unsigned int unalignedDataLen
Definition: fileXio.h:184
void * sbuf
Definition: fileXio.h:72
int ssize
Definition: fileXio.h:70
void * ebuf
Definition: fileXio.h:73
int esize
Definition: fileXio.h:71
unsigned int u32
Definition: tamtypes.h:30
unsigned char u8
Definition: tamtypes.h:23