PS2SDK
PS2 Homebrew Libraries
devfs.h File Reference
#include <types.h>
#include <irx.h>
+ Include dependency graph for devfs.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  devfs_loc_t
 
struct  devfs_info_t
 
struct  devfs_node_t
 

Macros

#define DEVFS_MAX_SUBDEVS   16
 
#define DEVFS_MAX_DEVNAME_LENGTH   32
 
#define DEVFS_MAX_DESC_LENGTH   256
 
#define DEVFS_IOCTL_TYPE_1   1
 
#define DEVFS_IOCTL_TYPE_2   2
 
#define DEVFS_IOCTL_GETDESC   0
 
#define INVALID_HDEV   -1
 
#define devfs_IMPORTS_start   DECLARE_IMPORT_TABLE(devfs, 1, 1)
 
#define devfs_IMPORTS_end   END_IMPORT_TABLE
 
#define I_DevFSAddDevice   DECLARE_IMPORT(4, DevFSAddDevice)
 
#define I_DevFSDelDevice   DECLARE_IMPORT(5, DevFSDelDevice)
 
#define I_DevFSAddSubDevice   DECLARE_IMPORT(6, DevFSAddSubDevice)
 
#define I_DevFSDelSubDevice   DECLARE_IMPORT(7, DevFSDelSubDevice)
 

Typedefs

typedef s32 HDEV
 
typedef s32(* read_handler) (const devfs_info_t *dev, u8 *buf, s32 len)
 
typedef s32(* write_handler) (const devfs_info_t *dev, u8 *buf, s32 len)
 
typedef s32(* ioctl_handler) (const devfs_info_t *dev, int ioctl_type, int cmd, void *arg, size_t arglen, void *buf, size_t buflen)
 

Enumerations

enum  devfs_subdev_modes { DEVFS_MODE_EX = (1 << 0), DEVFS_MODE_W = (1 << 1), DEVFS_MODE_R = (1 << 2), DEVFS_MODE_RW = (DEVFS_MODE_R | DEVFS_MODE_W) }
 
enum  devfs_devtypes { DEVFS_DEVTYPE_CHAR = 1, DEVFS_DEVTYPE_BLOCK = 2, DEVFS_DEVTYPE_STREAM = 3 }
 

Functions

HDEV DevFSAddDevice (const devfs_node_t *node)
 
int DevFSDelDevice (HDEV hDev)
 
int DevFSAddSubDevice (HDEV hDev, u32 subdev_no, s32 mode, devfs_loc_t extent, void *data)
 
int DevFSDelSubDevice (HDEV hDev, u32 subdev_no)
 

Detailed Description

DevFS header file

Definition in file devfs.h.


Data Structure Documentation

◆ devfs_loc_t

union devfs_loc_t

A union to make it easy to access the 32bit elements of a 64bit integer

Definition at line 69 of file devfs.h.

Data Fields
u32 loc32[2]

Array of two 32bit values

u64 loc64

The 64bit integer

◆ devfs_info_t

struct devfs_info_t

Structure passed to the application when an event occurs

Definition at line 79 of file devfs.h.

+ Collaboration diagram for devfs_info_t:
Data Fields
void * data

The sub devices data pointer as set by DevFSAddSubDevice

s32 subdev

The sub device number

u32 mode

The open mode.

Note
This is actually the posix mode bit fields as passed to open
devfs_loc_t loc

The current seek location

◆ devfs_node_t

struct devfs_node_t

Structure defining a device node for passing to DevFSAddDevice()

Definition at line 103 of file devfs.h.

+ Collaboration diagram for devfs_node_t:
Data Fields
char * name

Name of the device

char * desc

A textual description

s32 devtype

The type of device, possible values in devfs_devtypes

u32 blocksize

The block size of the device. Not currently used

read_handler read

Pointer to a read handler. Can be NULL

write_handler write

Pointer to a write handler. Can be NULL

ioctl_handler ioctl

Pointer to a ioctl handler. Can be NULL