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.

¿Fue útil?

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
scroll top