Next: Abriendo dispositivos.
Up: Un módulo algo más
Previous: Operaciones sobre el dispositivo,
  Índice General
  Índice de Materias
La estructura file.
Esta es otra de las estructuras más importantes del kernel, al igual que
file_operations es necesario conocer algunos de sus campos a fondo.
Está definida en linux/fs.h en la linea 418 y es recomendable que el alumno se
familiarice con ella antes de seguir leyendo.
- loff_t
f_pos
: La posición actual para la
lectura-escritura en el dispositivo. El método lseek, entre otros, de
file_operations se encarga de modificar este valor.
- struct dentry
*f_dentry
: Uno de los campos de esta estructura es el
inodo del fichero.
- struct inode
*d_inode
: El inodo asociado al fichero abierto, en el
podemos encontrar algunos datos útiles, como por ejemplo el campo
i_dev
, del tipo
kdev_t
, que contiene la información sobre el
número mayor y el número menor del dispositivo accedido. Generalmente no es
necesario acceder a inode desde file, pues suele ser el
primer argumento para casi todas las funciones de file_operations,
pero para read y write, nos puede ser útil.
- struct file_operations
*f_op
: Las operaciones asociadas al
dispositivo; nuestro módulo es el encargado de implementarlas. Esta estructura
está explicada en la sección 4.2.2, pág. .
- void
*private_data
: La llamada al sistema open se encarga
de apuntar esto a
null
. El método open de nuestro módulo será
el encargado de reservarle memoria o simplemente ignorarlo. Es muy útil para
almacenar información referente al estado del módulo entre llamadas al
sistema. En caso de que se use es necesario acordarse de liberar la memoria en
el método release de nuestro módulo.
Next: Abriendo dispositivos.
Up: Un módulo algo más
Previous: Operaciones sobre el dispositivo,
  Índice General
  Índice de Materias
Alberto Cortés
2001-03-26