Listing 4. The file_operations Structure
struct file_operations {
int (*lseek) (struct inode *, struct file *,
off_t, int);
int (*read) (struct inode *, struct file *,
char *, int);
int (*write) (struct inode *, struct file *,
const char *, int);
int (*readdir) (struct inode *, struct file *,
void *, filldir_t);
int (*select) (struct inode *, struct file *,
int, select_table *);
int (*ioctl) (struct inode *, struct file *,
unsigned int, unsigned long);
int (*mmap) (struct inode *, struct file *,
struct vm_area_struct *);
int (*open) (struct inode *, struct file *);
void (*release) (struct inode *,
struct file *);
int (*fsync) (struct inode *, struct file *);
int (*fasync) (struct inode *, struct file *,
int);
int (*check_media_change) (kdev_t dev);
int (*revalidate) (kdev_t dev);
};