next up previous contents index
Next: La estructura file. Up: Un módulo algo más Previous: Asignación dinámica de números   Índice General   Índice de Materias


Operaciones sobre el dispositivo, file_operations.

Cuando queremos actuar sobre un dispositivo, estaremos ejecutando las funciones (file_operations) de su driver asociado. La estructura file_operations es una tabla de punteros a funciones que tendremos que rellenar con punteros a las funciones implementadas por nuestro módulo.

Presentamos aquí, por conveniencia, la estructura file_operations según está definida en linux/fs.h:

struct file_operations {
        loff_t (*llseek) (struct file *, loff_t, int);
        ssize_t (*read) (struct file *, char *, size_t, loff_t *);
        ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
        int (*readdir) (struct file *, void *, filldir_t);
        unsigned int (*poll) (struct file *, struct poll_table_struct *);
        int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
        int (*mmap) (struct file *, struct vm_area_struct *);
        int (*open) (struct inode *, struct file *);
        int (*flush) (struct file *);
        int (*release) (struct inode *, struct file *);
        int (*fsync) (struct file *, struct dentry *);
        int (*fasync) (int, struct file *, int);
        int (*check_media_change) (kdev_t dev);
        int (*revalidate) (kdev_t dev);
        int (*lock) (struct file *, int, struct file_lock *);
};


next up previous contents index
Next: La estructura file. Up: Un módulo algo más Previous: Asignación dinámica de números   Índice General   Índice de Materias
Alberto Cortés 2001-03-26