Em ${kernel_root}/fs/ioctl.c (em 4.13), há:
SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd, unsigned long, arg)
Esse SYSCALL_DEFINE3 é uma macro que pega esses parâmetros e os expande para a assinatura apropriada para a chamada do sistema. Essa função é o ponto de entrada lógico para a chamada do sistema ioctl do espaço do usuário. Essa função, por sua vez, procura o struct fd correspondente ao descritor de arquivo fornecido e chama do_vfs_ioctl passando o struct file associado ao struct fd . A chamada passará pela camada VFS antes de chegar ao driver, mas isso deve dar a você um lugar para começar a procurar.