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
33
enum
FILEXIO_CMDS
{
34
FILEXIO_DOPEN
= 0x01,
35
FILEXIO_DREAD
,
36
FILEXIO_DCLOSE
,
37
FILEXIO_MOUNT
,
38
FILEXIO_UMOUNT
,
39
FILEXIO_GETDIR
,
40
FILEXIO_STOP
,
41
FILEXIO_COPYFILE
,
42
FILEXIO_OPEN
,
43
FILEXIO_CLOSE
,
44
FILEXIO_READ
,
45
FILEXIO_WRITE
,
46
FILEXIO_LSEEK
,
47
FILEXIO_IOCTL
,
48
FILEXIO_RMDIR
,
49
FILEXIO_GETSTAT
,
50
FILEXIO_CHSTAT
,
51
FILEXIO_FORMAT
,
52
FILEXIO_ADDDRV
,
53
FILEXIO_DELDRV
,
54
FILEXIO_RENAME
,
55
FILEXIO_CHDIR
,
56
FILEXIO_SYNC
,
57
FILEXIO_DEVCTL
,
58
FILEXIO_SYMLINK
,
59
FILEXIO_READLINK
,
60
FILEXIO_IOCTL2
,
61
FILEXIO_LSEEK64
,
62
FILEXIO_MKDIR
,
63
FILEXIO_REMOVE
,
64
FILEXIO_GETDEVICELIST
,
65
FILEXIO_SETRWBUFFSIZE
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
98
struct
fileXioDirEntry
99
{
100
u32
fileSize
;
101
u8
fileProperties
;
102
char
filename
[128+1];
103
} __attribute__((aligned(64)));
104
105
struct
fileXioDevice
106
{
107
char
name
[16];
108
unsigned
int
type
;
110
unsigned
int
version
;
111
char
desc
[128];
112
} __attribute__((aligned(64)));
113
114
struct
fxio_devlist_packet
{
115
struct
fileXioDevice
*
deviceEntry
;
116
unsigned
int
reqEntries
;
117
};
118
119
struct
fxio_getdir_packet
{
120
char
pathname
[512];
121
struct
fileXioDirEntry
*
dirEntry
;
122
unsigned
int
reqEntries
;
123
};
124
125
struct
fxio_mount_packet
{
126
char
blockdevice
[512];
127
char
mountpoint
[512];
128
int
flags
;
129
};
130
131
struct
fxio_unmount_packet
{
132
char
mountpoint
[512];
133
};
134
135
struct
fxio_copyfile_packet
{
136
char
source
[512];
137
char
dest
[512];
138
int
mode
;
139
};
140
141
struct
fxio_mkdir_packet
{
142
char
pathname
[512];
143
int
mode
;
144
};
145
147
struct
fxio_pathsel_packet
{
148
char
pathname
[512];
149
};
150
152
struct
fxio_rename_packet
{
153
char
source
[512];
154
char
dest
[512];
155
};
156
157
struct
fxio_readlink_packet
{
158
char
source
[512];
159
void
*
buffer
;
160
unsigned
int
buflen
;
161
};
162
163
struct
fxio_open_packet
{
164
char
pathname
[512];
165
int
flags
,
mode
;
166
};
167
169
struct
fxio_close_packet
{
170
int
fd
;
171
};
172
173
struct
fxio_read_packet
{
174
int
fd
;
175
void
*
buffer
;
176
int
size
;
177
void
*
intrData
;
178
};
179
180
struct
fxio_write_packet
{
181
int
fd
;
182
const
void
*
buffer
;
183
int
size
;
184
unsigned
int
unalignedDataLen
;
185
unsigned
char
unalignedData
[64];
186
};
187
188
struct
fxio_lseek_packet
{
189
int
fd
;
190
u32
offset
;
191
int
whence
;
192
};
193
194
struct
fxio_lseek64_packet
{
195
int
fd
;
196
u32
offset_lo
;
197
u32
offset_hi
;
198
int
whence
;
199
};
200
201
struct
fxio_chstat_packet
{
202
char
pathname
[512];
203
iox_stat_t
*
stat
;
204
int
mask
;
205
};
206
207
struct
fxio_getstat_packet
{
208
char
pathname
[512];
209
iox_stat_t
*
stat
;
210
};
211
212
struct
fxio_format_packet
{
213
char
device
[128];
214
char
blockDevice
[512];
215
char
args
[512];
216
int
arglen
;
217
};
218
219
struct
fxio_sync_packet
{
220
char
device
[512];
221
int
flags
;
222
};
223
224
struct
fxio_dread_packet
{
225
int
fd
;
226
iox_dirent_t
*
dirent
;
227
};
228
229
struct
fxio_devctl_packet
{
230
char
name
[
CTL_BUF_SIZE
];
231
u8
arg
[
CTL_BUF_SIZE
];
232
int
cmd
;
233
int
arglen
;
234
void
*
buf
;
235
int
buflen
;
236
void
*
intr_data
;
237
};
238
239
struct
fxio_ioctl_packet
{
240
int
fd
;
241
u8
arg
[
IOCTL_BUF_SIZE
];
242
int
cmd
;
243
};
244
245
struct
fxio_ioctl2_packet
{
246
int
fd
;
247
u8
arg
[
CTL_BUF_SIZE
];
248
int
cmd
;
249
int
arglen
;
250
void
*
buf
;
251
int
buflen
;
252
void
*
intr_data
;
253
};
254
255
struct
fxio_ctl_return_pkt
{
256
void
*
dest
;
257
int
len
;
258
u8
buf
[
CTL_BUF_SIZE
];
259
int
padding
[2];
260
};
261
262
struct
fxio_lseek64_return_pkt
{
263
u32
pos_lo
,
pos_hi
;
264
};
265
266
struct
fxio_rwbuff
{
267
int
size
;
268
};
269
270
#endif
/* __FILEXIO_H__ */
IOCTL_BUF_SIZE
#define IOCTL_BUF_SIZE
Definition:
fileXio.h:86
CTL_BUF_SIZE
#define CTL_BUF_SIZE
Definition:
fileXio.h:85
FILEXIO_CMDS
FILEXIO_CMDS
Definition:
fileXio.h:33
FILEXIO_MOUNT
@ FILEXIO_MOUNT
Definition:
fileXio.h:37
FILEXIO_MKDIR
@ FILEXIO_MKDIR
Definition:
fileXio.h:62
FILEXIO_GETDIR
@ FILEXIO_GETDIR
Definition:
fileXio.h:39
FILEXIO_ADDDRV
@ FILEXIO_ADDDRV
Definition:
fileXio.h:52
FILEXIO_RENAME
@ FILEXIO_RENAME
Definition:
fileXio.h:54
FILEXIO_IOCTL2
@ FILEXIO_IOCTL2
Definition:
fileXio.h:60
FILEXIO_OPEN
@ FILEXIO_OPEN
Definition:
fileXio.h:42
FILEXIO_GETDEVICELIST
@ FILEXIO_GETDEVICELIST
Definition:
fileXio.h:64
FILEXIO_SYNC
@ FILEXIO_SYNC
Definition:
fileXio.h:56
FILEXIO_CHDIR
@ FILEXIO_CHDIR
Definition:
fileXio.h:55
FILEXIO_READ
@ FILEXIO_READ
Definition:
fileXio.h:44
FILEXIO_DEVCTL
@ FILEXIO_DEVCTL
Definition:
fileXio.h:57
FILEXIO_READLINK
@ FILEXIO_READLINK
Definition:
fileXio.h:59
FILEXIO_FORMAT
@ FILEXIO_FORMAT
Definition:
fileXio.h:51
FILEXIO_STOP
@ FILEXIO_STOP
Definition:
fileXio.h:40
FILEXIO_COPYFILE
@ FILEXIO_COPYFILE
Definition:
fileXio.h:41
FILEXIO_SYMLINK
@ FILEXIO_SYMLINK
Definition:
fileXio.h:58
FILEXIO_GETSTAT
@ FILEXIO_GETSTAT
Definition:
fileXio.h:49
FILEXIO_DREAD
@ FILEXIO_DREAD
Definition:
fileXio.h:35
FILEXIO_DCLOSE
@ FILEXIO_DCLOSE
Definition:
fileXio.h:36
FILEXIO_LSEEK
@ FILEXIO_LSEEK
Definition:
fileXio.h:46
FILEXIO_WRITE
@ FILEXIO_WRITE
Definition:
fileXio.h:45
FILEXIO_REMOVE
@ FILEXIO_REMOVE
Definition:
fileXio.h:63
FILEXIO_RMDIR
@ FILEXIO_RMDIR
Definition:
fileXio.h:48
FILEXIO_LSEEK64
@ FILEXIO_LSEEK64
Definition:
fileXio.h:61
FILEXIO_UMOUNT
@ FILEXIO_UMOUNT
Definition:
fileXio.h:38
FILEXIO_SETRWBUFFSIZE
@ FILEXIO_SETRWBUFFSIZE
Definition:
fileXio.h:65
FILEXIO_DOPEN
@ FILEXIO_DOPEN
Definition:
fileXio.h:34
FILEXIO_CLOSE
@ FILEXIO_CLOSE
Definition:
fileXio.h:43
FILEXIO_IOCTL
@ FILEXIO_IOCTL
Definition:
fileXio.h:47
FILEXIO_CHSTAT
@ FILEXIO_CHSTAT
Definition:
fileXio.h:50
FILEXIO_DELDRV
@ FILEXIO_DELDRV
Definition:
fileXio.h:53
iox_stat.h
fileXioDevice
Definition:
fileXio.h:106
fileXioDevice::name
char name[16]
Definition:
fileXio.h:107
fileXioDevice::type
unsigned int type
Definition:
fileXio.h:108
fileXioDevice::version
unsigned int version
Definition:
fileXio.h:110
fileXioDevice::desc
char desc[128]
Definition:
fileXio.h:111
fileXioDirEntry
Definition:
fileXio.h:99
fileXioDirEntry::filename
char filename[128+1]
Definition:
fileXio.h:102
fileXioDirEntry::fileSize
u32 fileSize
Definition:
fileXio.h:100
fileXioDirEntry::fileProperties
u8 fileProperties
Definition:
fileXio.h:101
fxio_chstat_packet
Definition:
fileXio.h:201
fxio_chstat_packet::mask
int mask
Definition:
fileXio.h:204
fxio_chstat_packet::pathname
char pathname[512]
Definition:
fileXio.h:202
fxio_chstat_packet::stat
iox_stat_t * stat
Definition:
fileXio.h:203
fxio_close_packet
Definition:
fileXio.h:169
fxio_close_packet::fd
int fd
Definition:
fileXio.h:170
fxio_copyfile_packet
Definition:
fileXio.h:135
fxio_copyfile_packet::mode
int mode
Definition:
fileXio.h:138
fxio_copyfile_packet::source
char source[512]
Definition:
fileXio.h:136
fxio_copyfile_packet::dest
char dest[512]
Definition:
fileXio.h:137
fxio_ctl_return_pkt
Definition:
fileXio.h:255
fxio_ctl_return_pkt::dest
void * dest
Definition:
fileXio.h:256
fxio_ctl_return_pkt::padding
int padding[2]
Definition:
fileXio.h:259
fxio_ctl_return_pkt::buf
u8 buf[CTL_BUF_SIZE]
Definition:
fileXio.h:258
fxio_ctl_return_pkt::len
int len
Definition:
fileXio.h:257
fxio_devctl_packet
Definition:
fileXio.h:229
fxio_devctl_packet::arg
u8 arg[CTL_BUF_SIZE]
Definition:
fileXio.h:231
fxio_devctl_packet::arglen
int arglen
Definition:
fileXio.h:233
fxio_devctl_packet::buf
void * buf
Definition:
fileXio.h:234
fxio_devctl_packet::cmd
int cmd
Definition:
fileXio.h:232
fxio_devctl_packet::intr_data
void * intr_data
Definition:
fileXio.h:236
fxio_devctl_packet::buflen
int buflen
Definition:
fileXio.h:235
fxio_devctl_packet::name
char name[CTL_BUF_SIZE]
Definition:
fileXio.h:230
fxio_devlist_packet
Definition:
fileXio.h:114
fxio_devlist_packet::deviceEntry
struct fileXioDevice * deviceEntry
Definition:
fileXio.h:115
fxio_devlist_packet::reqEntries
unsigned int reqEntries
Definition:
fileXio.h:116
fxio_dread_packet
Definition:
fileXio.h:224
fxio_dread_packet::fd
int fd
Definition:
fileXio.h:225
fxio_dread_packet::dirent
iox_dirent_t * dirent
Definition:
fileXio.h:226
fxio_format_packet
Definition:
fileXio.h:212
fxio_format_packet::blockDevice
char blockDevice[512]
Definition:
fileXio.h:214
fxio_format_packet::args
char args[512]
Definition:
fileXio.h:215
fxio_format_packet::device
char device[128]
Definition:
fileXio.h:213
fxio_format_packet::arglen
int arglen
Definition:
fileXio.h:216
fxio_getdir_packet
Definition:
fileXio.h:119
fxio_getdir_packet::pathname
char pathname[512]
Definition:
fileXio.h:120
fxio_getdir_packet::reqEntries
unsigned int reqEntries
Definition:
fileXio.h:122
fxio_getdir_packet::dirEntry
struct fileXioDirEntry * dirEntry
Definition:
fileXio.h:121
fxio_getstat_packet
Definition:
fileXio.h:207
fxio_getstat_packet::pathname
char pathname[512]
Definition:
fileXio.h:208
fxio_getstat_packet::stat
iox_stat_t * stat
Definition:
fileXio.h:209
fxio_ioctl2_packet
Definition:
fileXio.h:245
fxio_ioctl2_packet::cmd
int cmd
Definition:
fileXio.h:248
fxio_ioctl2_packet::intr_data
void * intr_data
Definition:
fileXio.h:252
fxio_ioctl2_packet::buflen
int buflen
Definition:
fileXio.h:251
fxio_ioctl2_packet::buf
void * buf
Definition:
fileXio.h:250
fxio_ioctl2_packet::arglen
int arglen
Definition:
fileXio.h:249
fxio_ioctl2_packet::arg
u8 arg[CTL_BUF_SIZE]
Definition:
fileXio.h:247
fxio_ioctl2_packet::fd
int fd
Definition:
fileXio.h:246
fxio_ioctl_packet
Definition:
fileXio.h:239
fxio_ioctl_packet::arg
u8 arg[IOCTL_BUF_SIZE]
Definition:
fileXio.h:241
fxio_ioctl_packet::fd
int fd
Definition:
fileXio.h:240
fxio_ioctl_packet::cmd
int cmd
Definition:
fileXio.h:242
fxio_lseek64_packet
Definition:
fileXio.h:194
fxio_lseek64_packet::offset_lo
u32 offset_lo
Definition:
fileXio.h:196
fxio_lseek64_packet::whence
int whence
Definition:
fileXio.h:198
fxio_lseek64_packet::fd
int fd
Definition:
fileXio.h:195
fxio_lseek64_packet::offset_hi
u32 offset_hi
Definition:
fileXio.h:197
fxio_lseek64_return_pkt
Definition:
fileXio.h:262
fxio_lseek64_return_pkt::pos_lo
u32 pos_lo
Definition:
fileXio.h:263
fxio_lseek64_return_pkt::pos_hi
u32 pos_hi
Definition:
fileXio.h:263
fxio_lseek_packet
Definition:
fileXio.h:188
fxio_lseek_packet::fd
int fd
Definition:
fileXio.h:189
fxio_lseek_packet::whence
int whence
Definition:
fileXio.h:191
fxio_lseek_packet::offset
u32 offset
Definition:
fileXio.h:190
fxio_mkdir_packet
Definition:
fileXio.h:141
fxio_mkdir_packet::pathname
char pathname[512]
Definition:
fileXio.h:142
fxio_mkdir_packet::mode
int mode
Definition:
fileXio.h:143
fxio_mount_packet
Definition:
fileXio.h:125
fxio_mount_packet::flags
int flags
Definition:
fileXio.h:128
fxio_mount_packet::mountpoint
char mountpoint[512]
Definition:
fileXio.h:127
fxio_mount_packet::blockdevice
char blockdevice[512]
Definition:
fileXio.h:126
fxio_open_packet
Definition:
fileXio.h:163
fxio_open_packet::flags
int flags
Definition:
fileXio.h:165
fxio_open_packet::pathname
char pathname[512]
Definition:
fileXio.h:164
fxio_open_packet::mode
int mode
Definition:
fileXio.h:165
fxio_pathsel_packet
Definition:
fileXio.h:147
fxio_pathsel_packet::pathname
char pathname[512]
Definition:
fileXio.h:148
fxio_read_packet
Definition:
fileXio.h:173
fxio_read_packet::buffer
void * buffer
Definition:
fileXio.h:175
fxio_read_packet::fd
int fd
Definition:
fileXio.h:174
fxio_read_packet::intrData
void * intrData
Definition:
fileXio.h:177
fxio_read_packet::size
int size
Definition:
fileXio.h:176
fxio_readlink_packet
Definition:
fileXio.h:157
fxio_readlink_packet::buflen
unsigned int buflen
Definition:
fileXio.h:160
fxio_readlink_packet::buffer
void * buffer
Definition:
fileXio.h:159
fxio_readlink_packet::source
char source[512]
Definition:
fileXio.h:158
fxio_rename_packet
Definition:
fileXio.h:152
fxio_rename_packet::source
char source[512]
Definition:
fileXio.h:153
fxio_rename_packet::dest
char dest[512]
Definition:
fileXio.h:154
fxio_rwbuff
Definition:
fileXio.h:266
fxio_rwbuff::size
int size
Definition:
fileXio.h:267
fxio_sync_packet
Definition:
fileXio.h:219
fxio_sync_packet::flags
int flags
Definition:
fileXio.h:221
fxio_sync_packet::device
char device[512]
Definition:
fileXio.h:220
fxio_unmount_packet
Definition:
fileXio.h:131
fxio_unmount_packet::mountpoint
char mountpoint[512]
Definition:
fileXio.h:132
fxio_write_packet
Definition:
fileXio.h:180
fxio_write_packet::fd
int fd
Definition:
fileXio.h:181
fxio_write_packet::unalignedData
unsigned char unalignedData[64]
Definition:
fileXio.h:185
fxio_write_packet::size
int size
Definition:
fileXio.h:183
fxio_write_packet::buffer
const void * buffer
Definition:
fileXio.h:182
fxio_write_packet::unalignedDataLen
unsigned int unalignedDataLen
Definition:
fileXio.h:184
iox_dirent_t
Definition:
iox_stat.h:110
iox_stat_t
Definition:
iox_stat.h:92
rests_pkt
Definition:
fileXio.h:69
rests_pkt::sbuf
void * sbuf
Definition:
fileXio.h:72
rests_pkt::ssize
int ssize
Definition:
fileXio.h:70
rests_pkt::ebuf
void * ebuf
Definition:
fileXio.h:73
rests_pkt::esize
int esize
Definition:
fileXio.h:71
tamtypes.h
u32
unsigned int u32
Definition:
tamtypes.h:30
u8
unsigned char u8
Definition:
tamtypes.h:23
common
include
fileXio.h
Generated on Thu Feb 11 2021 11:42:21 for ps2sdk by
1.9.2