The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Драйвер “memory”: запись в устройство

Драйвер “memory”: запись в устройство

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

Для записи на устройство с помощью пользовательской функции fwrite или аналогичный в вызове register_chrdev используется член write структуры file_operations. В данном конкретном примере это функция memory_write, которая имеет следующие аргументы: структура типа file; buf, буфер, в который будет писать функция пользовательского пространства (fwrite); count, счётчик с числом байт для передачи, который имеет то же значение, что и обычный счётчик в функции пользовательского пространства (fwrite); и наконец, f_pos, позиция начала записи в файл.

 

<memory write> =

 

ssize_t memory_write( struct file *filp, char *buf,

                      size_t count, loff_t *f_pos) {

 

    char *tmp;

 

    tmp=buf+count-1;

    copy_from_user(memory_buffer,tmp,1);

    return 1;

}

 

В этом случае данные из пользовательского пространства в пространство ядра передаёт функция copy_from_user.

 

Теперь эта функция добавлена в Таблицу 8.

 

События

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

Функции ядра

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

insmod

module_init()

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

fopen

file_operations: open

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

fread

file_operations: read

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

fwrite

file_operations: write

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

fclose

file_operations: release

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

rmmod

module_exit()

 

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

 

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