Я добавляю некоторый код в существующий драйвер устройства FreeBSD и пытаюсь передать char*
из пространства пользователя драйверу. Я реализовал пользовательскую команду ioctl()
, используя макрос _IOW
, например: #define TIBLOOMFILTER _IOW(0,253,char*)
Мой звонок выглядит примерно так:
int file_desc = open("/dev/ti0", O_RDWR);
ioctl(file_desc, TIBLOOMFILTER, (*filter).getBitArray());
close(file_desc);
Когда я звоню ioctl()
, я получаю: Inappropriate ioctl for device
как сообщение об ошибке. Есть предположения о том, что может быть не так? Я определил тот же макрос в своем драйвере устройства и добавил его в оператор case
.