4

我正在向现有的 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语句中。

4

1 回答 1

2

你注册了你的 ioctl 处理程序

.d_ioctl  = ioctl_handler

在 ?devsw(字符/块设备切换表)中?

于 2010-03-22T02:02:46.387 回答