我正在向现有的 FreeBSD 设备驱动程序添加一些代码,并且我正在尝试将char*
用户空间的 a 传递给驱动程序。我已经使用宏实现了一个自定义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
语句中。