Использование связи ioctl между режимом ядра и режимом пользователя - PullRequest
17 голосов
/ 03 мая 2011

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

ошибка: неизвестное поле '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,
};

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

спасибо

Ответы [ 2 ]

23 голосов
/ 04 мая 2011

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

4 голосов
/ 16 октября 2012

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

...