поток вызовов ioctl в linux ядре - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь понять поток вызовов вызова ioctl в linux ядре, и у меня возникает вопрос - когда мы вызываем ioctl из пространства пользователя, какая функция или модуль в linux ядре отвечает за преобразование этого вызова ioctl в соответствующий вызов ioctl в драйвере. Я знаю, что ioctl для драйвера не будет вызываться напрямую из пространства пользователя. Сначала вызов должен go через некоторый API ядра, и этот API в свою очередь вызовет драйвер ioctl. Пожалуйста, помогите мне указать, что API ядра, который передает ioctl в подходящий драйвер.

1 Ответ

0 голосов
/ 07 апреля 2020

Сначала мы находим struct file из пути на open вызов здесь или более как здесь .

Затем дескриптор файла переводится из номер struct file здесь и здесь .

Тогда вы просто позвоните ioctl из file_operations, как здесь , но в целом ioctl. c Полагаю, должно стоить всего oop.

...