2011-05-03 9 views
17

Deseo comunicarme con mi módulo kernel usando ioctl. He escrito dos c programa uno para el módulo kernel y otro para el modo usuario. Estoy consiguiendo este error al compilar el módulo del kernel:Uso de la comunicación ioctl entre el modo Kernel y el modo de usuario

de error: desconocido campo ‘ioctl’ se especifica en inicializador

en esta línea:

struct file_operations Fops = { 
.read = device_read, 
.write = device_write, 
.ioctl = device_ioctl, ------> at this point error is occuring. 
.open = device_open, 
.release = device_release, 
}; 

alguna idea de por qué ocurre esto.

gracias

Respuesta

23

En los núcleos nuevos, la forma preferida es el uso de .unlocked_ioctl o .compat_ioctl campos. El plano .ioctl se eliminó de struct file_operations. This discussion puede aclarar qué sucedió y cómo lidiar con eso.

+0

esto ayudó. Gracias. – Dalchand

4

En los núcleos más nuevos, use .unlocked_ioctl en el lugar de .ioctl. Funciona bien.

Cuestiones relacionadas