Добавление новых IOCTL в ядро ​​(диапазон номеров) - PullRequest
3 голосов
/ 19 января 2012

Я пишу новый модуль ядра и добавляю новые IOCTL.
Есть ли какое-либо правило, которому я должен следовать с нумерацией IOCTL?
Может быть, есть какой-то "диапазон пользователей"?

Я работаю с ядром 2.6.21 на встроенной платформе.

1 Ответ

3 голосов
/ 19 января 2012

IOCTL определены как зависимые от устройства - если бы существовали «стандартные» ioctl для реализации, это были бы системные вызовы, такие как read и write.

Существует несколько соглашений для ioctlчисла:

  • направление параметра (in, out, оба) кодируется в число ioctl в два бита.Это не обязательно, если только вы не используете общий код копирования от пользователя / копирования пользователю, который рекомендуется.
  • есть магическое число, чтобы избежать конфликтов.Нет никакого реального вреда, если два устройства определяют один и тот же ioctl, но использование разных номеров дает дополнительную возможность для выявления ошибок.
...