Я работаю над драйвером устройства Linux в первый раз. Я использую книгу ldd3 и некоторые примеры кодов, которые я нашел в Интернете. Итак,
Я нашел
device_lseek(struct file *file, loff_t offset, int orig)
device_write(struct file *fp, const char *buff, size_t length, loff_t *ppos)
device_read(struct file *fp, char *buff, size_t length, loff_t *ppos)
lseek
, возвращаю loff_t
(позицию) и также записываю позицию в file->f_pos
read,write
используйте ppos
, который кажется позицией.
Я хочу знать, откуда берется значение ppos
?
Имеет ли это какое-либо отношение к f_pos
в file
передано write,read
?
Какая часть действий, связанных с позицией, обрабатывается системой ядра?
Какую роль должен взять на себя разработчик устройства?
И, наконец, где находится документ, описывающий эти вещи?
Спасибо