Драйвер “memory”: запись в устройство |
Предыдущая Содержание Следующая |
Для записи на устройство с помощью пользовательской функции 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.
Таблица 8. События драйвера устройства и связанные с ними интерфейсные функции в пространстве ядра и пользовательском пространстве.
| |||||||||||||||||||||
Предыдущая Содержание Следующая |