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);
};