Использование связи ioctl между режимом ядра и режимом пользователя



Я хочу общаться со своим модулем ядра с помощью ioctl. Я написал две программы на языке Си, одну для модуля ядра, а другую для пользовательского режима. Я получаю эту ошибку при компиляции модуля ядра:



Ошибка: неизвестное поле 'ioctl', указанное в инициализаторе



В этой строке:



struct file_operations Fops = {
.read = device_read,
.write = device_write,
.ioctl = device_ioctl, ------> at this point error is occuring.
.open = device_open,
.release = device_release,
};


Любая идея, почему это происходит.



Спасибо

389   2  

2 ответов:

В более новых ядрах предпочтительным способом является использование полей .unlocked_ioctl или .compat_ioctl. Равнина .ioctl была удалена из struct file_operations. Эта дискуссия может прояснить, что произошло и как с этим бороться.

В новых ядрах вместо .ioctl Используйте .unlocked_ioctl. Это прекрасно работает.

Comments

    Ничего не найдено.