2011-05-03 52 views
17

我想使用ioctl与我的内核模块进行通信。我已经编写了两个用于内核模块的c程序,其他用于用户模式。我得到这个错误在编译内核模块:在内核模式和用户模式之间使用ioctl通信

错误:在此行中初始化

指定未知领域“的ioctl”:

struct file_operations Fops = { 
.read = device_read, 
.write = device_write, 
.ioctl = device_ioctl, ------> at this point error is occuring. 
.open = device_open, 
.release = device_release, 
}; 

任何想法,为什么这种情况正在发生。

感谢

回答

23

在较新的内核中,优选的方法是使用.unlocked_ioctl.compat_ioctl字段。原.ioctlstruct file_operations中删除。 This discussion可能会澄清发生了什么以及如何处理。

+0

这个帮助。谢谢。 – Dalchand 2011-05-04 07:12:24

4

在较新的内核中,使用.unlocked_ioctl代替.ioctl。它工作正常。

相关问题