PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
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
26typedef s32 HDEV;
28#define DEVFS_MAX_SUBDEVS 16
30#define DEVFS_MAX_DEVNAME_LENGTH 32
32#define DEVFS_MAX_DESC_LENGTH 256
33
46
59
61#define DEVFS_IOCTL_TYPE_1 1
63#define DEVFS_IOCTL_TYPE_2 2
64
66#define DEVFS_IOCTL_GETDESC 0
67
69typedef union
70
71{
73 u32 loc32[2];
75 u64 loc64;
77
79typedef struct
80
81{
83 void *data;
85 s32 subdev;
89 u32 mode;
93
95typedef s32 (*read_handler)(const devfs_info_t *dev, u8 *buf, s32 len);
97typedef s32 (*write_handler)(const devfs_info_t *dev, u8 *buf, s32 len);
99typedef 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
120
126extern HDEV DevFSAddDevice(const devfs_node_t *node);
133extern int DevFSDelDevice(HDEV hDev);
134
142extern int DevFSAddSubDevice(HDEV hDev, u32 subdev_no, s32 mode, devfs_loc_t extent, void *data);
143
149extern 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
char * name
Definition devfs.h:106
char * desc
Definition devfs.h:108
void * data
Definition devfs.h:83
u32 mode
Definition devfs.h:89
s32 subdev
Definition devfs.h:85
read_handler read
Definition devfs.h:114
ioctl_handler ioctl
Definition devfs.h:118
s32 devtype
Definition devfs.h:110
u64 loc64
Definition devfs.h:75
write_handler write
Definition devfs.h:116
u32 blocksize
Definition devfs.h:112
devfs_loc_t loc
Definition devfs.h:91
HDEV DevFSAddDevice(const devfs_node_t *node)
Definition devfs.c:1109
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
s32(* write_handler)(const devfs_info_t *dev, u8 *buf, s32 len)
Definition devfs.h:97
int DevFSAddSubDevice(HDEV hDev, u32 subdev_no, s32 mode, devfs_loc_t extent, void *data)
Definition devfs.c:1213
s32 HDEV
Definition devfs.h:26
int DevFSDelDevice(HDEV hDev)
Definition devfs.c:1162
devfs_devtypes
Definition devfs.h:51
devfs_subdev_modes
Definition devfs.h:36
s32(* read_handler)(const devfs_info_t *dev, u8 *buf, s32 len)
Definition devfs.h:95
int DevFSDelSubDevice(HDEV hDev, u32 subdev_no)
Definition devfs.c:1251
@ DEVFS_DEVTYPE_BLOCK
Definition devfs.h:55
@ DEVFS_DEVTYPE_STREAM
Definition devfs.h:57
@ DEVFS_DEVTYPE_CHAR
Definition devfs.h:53
@ DEVFS_MODE_RW
Definition devfs.h:44
@ DEVFS_MODE_R
Definition devfs.h:42
@ DEVFS_MODE_EX
Definition devfs.h:38
@ DEVFS_MODE_W
Definition devfs.h:40