Драйвер “memory”: закрытие устройства как файл

Предыдущая  Содержание  Следующая V*D*V

Функцией, соответствующей закрытию файла в пользовательском пространстве (fclose), является release: член структуры file_operations в вызове register_chrdev. В данном конкретном случае, это функция memory_release, которая имеет в качестве аргумента структуру inode и структуру file, как и прежде.

 

Когда файл закрывается, обычно необходимо освободить память и любые переменные, связанные с открытием устройства. Но, опять же, благодаря простоте этого примера, ни одна из этих операций не выполняется.

 

Ниже показана функция memory_release:

 

<memory release> =

 

int memory_release(struct inode *inode, struct file *filp) {

 

    /* Успешно */

    return 0;

}

 

Эта новая функция показана в Таблице 6.

 

События

Пользовательские функции

Функции ядра

Загрузка модуля

insmod

module_init()

Открытие устройства

fopen

file_operations: open

Чтение устройства

 

 

Запись в устройство

 

 

Закрытие устройства

fclose

file_operations: release

Удаление модуля

rmmod

module_exit()

 

Таблица 6. События драйвера устройства и связанные с ними интерфейсные функции в пространстве ядра и пользовательском пространстве.

 

Предыдущая  Содержание  Следующая