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