error: unknownfield ‘ioctl’ specified in initializer
异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序就根本不需要查询设备的状态, 这一点非常类似于硬件上的“中断”的概念,比较准确的称谓是“信号驱动的异步I/O”。信号是在软件层次上对中断机制的一种模拟,在原理上一个进程接收到一个信号与处理器接收到一个中断请求是一样的。 1)在把驱动从2.6.32 移植到2.6.36时 报错 /home/kernel_test/globalfifo/globalfifo.c:240:2:error: unknown field 'ioctl' specified in initializer 才发现2.6.36的file_operations结构发生了重大变化。(但基本的思想还是不变的) 取消了原有的ioctl成员,添加来新的成员
2)/home/kernel_test/globalfifo/globalfifo.c:245:2:warning: initialization from incompatible pointer type 出现此种warnning 的原因 “不兼容的指针类型初始化”是你定义的函数类型与接口函数的类型不一样如 把 把返回值 long 定义成了 int 其中:
少写const 也会引起 warning 因为在这里const所起的作用是避免函数使用指针去改变了传进来的值
|
|
来自: huihaoking > 《linux函数》