В${kernel_root}/fs/ioctl.c
(в 4.13 )есть:
SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd, unsigned long, arg)
Это SYSCALL_DEFINE3
— это макрос, который принимает эти параметры и расширяет их до соответствующей подписи для системного вызова. Эта функция является логической точкой входа для системного вызова ioctl
из пространства пользователя. Эта функция, в свою очередь, ищет struct fd
, соответствующий данному дескриптору файла, и вызывает do_vfs_ioctl
, передавая struct file
, связанный с struct fd
. Вызов пройдет через уровень VFS, прежде чем достигнет драйвера, но это должно дать вам место для начала поиска.
Просто проверьте mount
вывод ?
Например, учитывая ~/tmpfile
файл, в котором я создал файловую систему ext4:
~$ sudo mount -t ext4 -o defaults tmpfile /media/cdrom
~$ mount|grep /media/cdrom
tmpfile on /media/cdrom0 type ext4 (rw,relatime)