在FreeBSD中实现ioctl()命令

时间:2010-03-22 01:40:33

标签: c++ posix freebsd ioctl

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

1 个答案:

答案 0 :(得分:2)

您是否使用

注册了ioctl处理程序?
.d_ioctl  = ioctl_handler

in?devsw(char / block device switch table)?