Задать вопрос
@Kamikadze1024

Почему не проходит системный вызов ioctl?

Если зарегистрировать обработчик ioctl в поле unlocked_ioctl структуры file_operations, то обработчик ioctl вызывается, если пользовательский процесс подключился к драйверу через ноды 0,1, ...
Если же пользовательский процесс подключается через конфигурационный нод 0хff, то обработчик ioctl не вызывается ядром. Пользователю возвращается -1. Но операции open, close, mmap и другие исполняются корректно.

Регистрация ioctl в поле compat_ioctl приводит к тому, что работа через любые ноды не получается. Обработчик не вызывается, а пользователю возвращается -1.

Как сделать возможной работу обработчика через все ноды?
  • Вопрос задан
  • 2649 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя vreitech К ответам на вопрос (3)
fzfx
@fzfx
18,5 дм