4 typedef struct _iop_ext_device
{
7 unsigned int version
; /* Not so sure about this one. */
9 struct _iop_ext_device_ops
*ops
;
12 typedef struct _iop_ext_device_ops
{
13 int (*init
)(iop_device_t
*);
14 int (*deinit
)(iop_device_t
*);
15 int (*format
)(iop_file_t
*);
16 int (*open
)(iop_file_t
*, const char *, int);
17 int (*close
)(iop_file_t
*);
18 int (*read
)(iop_file_t
*, void *, int);
19 int (*write
)(iop_file_t
*, void *, int);
20 int (*lseek
)(iop_file_t
*, unsigned long, int);
21 int (*ioctl
)(iop_file_t
*, unsigned long, void *);
22 int (*remove
)(iop_file_t
*, const char *);
23 int (*mkdir
)(iop_file_t
*, const char *);
24 int (*rmdir
)(iop_file_t
*, const char *);
25 int (*dopen
)(iop_file_t
*, const char *);
26 int (*dclose
)(iop_file_t
*);
27 int (*dread
)(iop_file_t
*, fio_dirent_t
*);
28 int (*getstat
)(iop_file_t
*, const char *, fio_stat_t
*);
29 int (*chstat
)(iop_file_t
*, const char *, fio_stat_t
*, unsigned int);
30 /* Extended ops start here. */
31 int (*rename
)(iop_file_t
*, const char *, const char *);
32 int (*chdir
)(iop_file_t
*, const char *);
33 int (*sync
)(iop_file_t
*, const char *, int);
34 int (*mount
)(iop_file_t
*, const char *, const char *, int, void *, unsigned int);
35 int (*umount
)(iop_file_t
*, const char *);
36 int (*lseek64
)(iop_file_t
*, long long, int);
37 int (*devctl
)(iop_file_t
*, const char *, int, void *, unsigned int, void *, unsigned int);
38 int (*symlink
)(iop_file_t
*, const char *, const char *);
39 int (*readlink
)(iop_file_t
*, const char *, char *, unsigned int);
40 int (*ioctl2
)(iop_file_t
*, int, void *, unsigned int, void *, unsigned int);
42 } iop_ext_device_ops_t
;