PS2SDK
PS2 Homebrew Libraries
devfs.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 __DEVFS_H__
20
#define __DEVFS_H__
21
22
#include <types.h>
23
#include <
irx.h
>
24
26
typedef
s32
HDEV
;
28
#define DEVFS_MAX_SUBDEVS 16
29
30
#define DEVFS_MAX_DEVNAME_LENGTH 32
31
32
#define DEVFS_MAX_DESC_LENGTH 256
33
35
enum
devfs_subdev_modes
36
{
38
DEVFS_MODE_EX
= (1 << 0),
40
DEVFS_MODE_W
= (1 << 1),
42
DEVFS_MODE_R
= (1 << 2),
44
DEVFS_MODE_RW
= (
DEVFS_MODE_R
|
DEVFS_MODE_W
)
45
};
46
50
enum
devfs_devtypes
51
{
53
DEVFS_DEVTYPE_CHAR
= 1,
55
DEVFS_DEVTYPE_BLOCK
= 2,
57
DEVFS_DEVTYPE_STREAM
= 3
58
};
59
61
#define DEVFS_IOCTL_TYPE_1 1
62
63
#define DEVFS_IOCTL_TYPE_2 2
64
66
#define DEVFS_IOCTL_GETDESC 0
67
69
typedef
union
70
71
{
73
u32 loc32[2];
75
u64
loc64
;
76
}
devfs_loc_t
;
77
79
typedef
struct
80
81
{
83
void
*
data
;
85
s32
subdev
;
89
u32
mode
;
91
devfs_loc_t
loc
;
92
}
devfs_info_t
;
93
95
typedef
s32 (*
read_handler
)(
const
devfs_info_t
*dev, u8 *buf, s32 len);
97
typedef
s32 (*
write_handler
)(
const
devfs_info_t
*dev, u8 *buf, s32 len);
99
typedef
s32 (*
ioctl_handler
)(
const
devfs_info_t
*dev,
int
ioctl_type,
int
cmd,
void
*arg,
100
size_t
arglen,
void
*buf,
size_t
buflen);
101
103
typedef
struct
104
{
106
char
*
name
;
108
char
*
desc
;
110
s32
devtype
;
112
u32
blocksize
;
114
read_handler
read
;
116
write_handler
write
;
118
ioctl_handler
ioctl
;
119
}
devfs_node_t
;
120
126
extern
HDEV
DevFSAddDevice
(
const
devfs_node_t
*node);
133
extern
int
DevFSDelDevice
(
HDEV
hDev);
134
142
extern
int
DevFSAddSubDevice
(
HDEV
hDev, u32 subdev_no, s32 mode,
devfs_loc_t
extent,
void
*data);
143
149
extern
int
DevFSDelSubDevice
(
HDEV
hDev, u32 subdev_no);
150
152
#define INVALID_HDEV -1
153
154
#define devfs_IMPORTS_start DECLARE_IMPORT_TABLE(devfs, 1, 1)
155
#define devfs_IMPORTS_end END_IMPORT_TABLE
156
157
#define I_DevFSAddDevice DECLARE_IMPORT(4, DevFSAddDevice)
158
#define I_DevFSDelDevice DECLARE_IMPORT(5, DevFSDelDevice)
159
#define I_DevFSAddSubDevice DECLARE_IMPORT(6, DevFSAddSubDevice)
160
#define I_DevFSDelSubDevice DECLARE_IMPORT(7, DevFSDelSubDevice)
161
162
#endif
/* __DEVFS_H__ */
163
devfs_devtypes
devfs_devtypes
Definition:
devfs.h:50
DEVFS_MODE_EX
@ DEVFS_MODE_EX
Definition:
devfs.h:38
devfs_node_t::blocksize
u32 blocksize
Definition:
devfs.h:112
devfs_info_t::mode
u32 mode
Definition:
devfs.h:89
HDEV
s32 HDEV
Definition:
devfs.h:26
devfs_info_t::loc
devfs_loc_t loc
Definition:
devfs.h:91
devfs_node_t::devtype
s32 devtype
Definition:
devfs.h:110
devfs_info_t::data
void * data
Definition:
devfs.h:83
ioctl_handler
s32(* ioctl_handler)(const devfs_info_t *dev, int ioctl_type, int cmd, void *arg, size_t arglen, void *buf, size_t buflen)
Definition:
devfs.h:99
DEVFS_MODE_R
@ DEVFS_MODE_R
Definition:
devfs.h:42
DEVFS_DEVTYPE_CHAR
@ DEVFS_DEVTYPE_CHAR
Definition:
devfs.h:53
devfs_node_t::ioctl
ioctl_handler ioctl
Definition:
devfs.h:118
devfs_loc_t::loc64
u64 loc64
Definition:
devfs.h:75
irx.h
devfs_node_t::read
read_handler read
Definition:
devfs.h:114
DevFSAddSubDevice
int DevFSAddSubDevice(HDEV hDev, u32 subdev_no, s32 mode, devfs_loc_t extent, void *data)
Definition:
devfs.c:1213
devfs_info_t
Definition:
devfs.h:79
DevFSDelSubDevice
int DevFSDelSubDevice(HDEV hDev, u32 subdev_no)
Definition:
devfs.c:1251
DEVFS_MODE_W
@ DEVFS_MODE_W
Definition:
devfs.h:40
DEVFS_MODE_RW
@ DEVFS_MODE_RW
Definition:
devfs.h:44
devfs_node_t::desc
char * desc
Definition:
devfs.h:108
devfs_loc_t
Definition:
devfs.h:69
DevFSAddDevice
HDEV DevFSAddDevice(const devfs_node_t *node)
Definition:
devfs.c:1109
DEVFS_DEVTYPE_BLOCK
@ DEVFS_DEVTYPE_BLOCK
Definition:
devfs.h:55
devfs_info_t::subdev
s32 subdev
Definition:
devfs.h:85
write_handler
s32(* write_handler)(const devfs_info_t *dev, u8 *buf, s32 len)
Definition:
devfs.h:97
devfs_node_t::name
char * name
Definition:
devfs.h:106
devfs_node_t
Definition:
devfs.h:103
devfs_subdev_modes
devfs_subdev_modes
Definition:
devfs.h:35
read_handler
s32(* read_handler)(const devfs_info_t *dev, u8 *buf, s32 len)
Definition:
devfs.h:95
DEVFS_DEVTYPE_STREAM
@ DEVFS_DEVTYPE_STREAM
Definition:
devfs.h:57
DevFSDelDevice
int DevFSDelDevice(HDEV hDev)
Definition:
devfs.c:1162
devfs_node_t::write
write_handler write
Definition:
devfs.h:116
iop
fs
devfs
include
devfs.h
Generated on Mon May 25 2026 03:28:06 for PS2SDK by
1.8.17