Mientras exista el archivo, habrá un número de inodo correspondiente único y habrá una estructura de inodo de estructura correspondiente. Abrir un archivo de dispositivo a través de open() en la capa de aplicación generará un número de inodo, y la estructura de inodo del archivo se puede encontrar a través del número de inodo
Encuentre la estructura del objeto del controlador de acuerdo con el puntero de la estructura del objeto del controlador correspondiente al archivo en la estructura del inodo
Encuentre el puntero de estructura del método de operación en la estructura del objeto del controlador, defina e inicialice una variable de estructura del método de operación en el programa del controlador y realice funciones específicas como abrir y cerrar, leer y escribir, etc.
La ruta de la devolución de llamada de función abierta al método de operación abierta en el controlador:
open()--->sys_open()--->struct inode estructura--->struct cdev estructura--->struct archivo_operaciones estructura--->mycdev_open
Proceso de Registro y Cancelación
static int __init mycdev_init(void)
{ // 1. Asignar espacio de objeto // 2. Inicializar objeto // 3. Solicitar número de dispositivo // 4. Registrar objeto de controlador de dispositivo de carácter // 5. Enviar directorio arriba // 6. Arriba
static void __exit mycdev_exit(void)
{ // 1. Destruir el nodo del dispositivo // 2. Liberar el espacio del directorio // 3. Cerrar sesión en el objeto del controlador del dispositivo de caracteres // 4. Liberar el número de dispositivo // 5. Liberar el dispositivo espacio }
Enviar información de nodo de dispositivo