la implementación de ioctl () comandos en FreeBSD
Pregunta
Estoy añadiendo algo de código para un controlador de dispositivo existente de FreeBSD y yo estoy tratando de pasar una char*
desde el espacio de usuario para el conductor. He implementado un comando ioctl()
personalizado utilizando la macro _IOW
así: #define TIBLOOMFILTER _IOW(0,253,char*)
Mi llamado es como la siguiente:
int file_desc = open("/dev/ti0", O_RDWR);
ioctl(file_desc, TIBLOOMFILTER, (*filter).getBitArray());
close(file_desc);
Cuando llamo ioctl()
me sale: Inappropriate ioctl for device
como un mensaje de error. Cualquier conjetura en cuanto a lo que puede hacer el mal? He definido la misma macro en mi controlador de dispositivo, y añadí a la declaración case
.
Solución
¿Ha registrado su controlador ioctl con
.d_ioctl = ioctl_handler
en? Devsw (/ bloque de mesa de cambio de dispositivo char)?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow