博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOCTL错误
阅读量:5098 次
发布时间:2019-06-13

本文共 1375 字,大约阅读时间需要 4 分钟。

 gpiodevice.c:97:3: error: unknown field ‘ioctl’ specified in initializer
   .ioctl = gpio_ioctl,
内核版本是3.10.x,编写一个gpio 模块,调用ioctl,报错,网上查了查是现在不支持ioctl了····技术果然也在更新换代啊···自己参照网上的用法用了unlocked_ioctl,另外参数也少了一个需要注意,
引用http://blog.chinaunix.net/uid-24943863-id-3191465.html 下的说法。“
/home/jqzeng/workSpace/ldd3/ldd3-samples-1.0.0/scull/main.c:556:2: error: unknown field 'ioctl' specified in initializer
 
ioctl是未知域,查看file_operations结构体,在build/inlcude/linux/fs.h中的1603行定义,前面有两句话
 /* These macros are for out of kernel modules to test that
  * the kernel supports the unlocked_ioctl and compat_ioctl
  * fields in struct file_operations. */
根据开发者的意见,ioctl使用了大内核锁,这个是不安全的,新的kerne将l不再支持ioctl方法,而应该使用 unlocked_ioctl或者compat_ioctl。修改main.c中556行的.ioctl为unlocked_ioctl,这个错误不会出现了。同时,这个函数指针的原型也改变了!
long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); 
与原来的ioctl函数原型相比少传递了struct inode *inode 这个变量,因此我们的实现scull_ioctl需要变为
main.c
394  int scull_ioctl(struct file *filp,
395                        unsigned int cmd, unsigned long arg)
scull.h
131 int     scull_ioctl(struct file *filp,
132                     unsigned int cmd, unsigned long arg);
 
接着,出现另外一个问题:
/home/jqzeng/workSpace/ldd3/ldd3-samples-1.0.0/scull/main.c:652:3: error: implicit declaration of function 'init_MUTEX
 
与前一个错误来源一样,init_MUTEX(&sem)在新内核里也被弃用了。用sema_init(&sem,1)进行替换可解决此问题。
好了,main.c的问题解决了,pipe.c编译的时候出现了一大堆问题了。 ”

转载于:https://www.cnblogs.com/yinseyingji/p/7550085.html

你可能感兴趣的文章
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
python3 生成器与迭代器
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
cer证书签名验证
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
QML学习笔记之一
查看>>
App右上角数字
查看>>
小算法
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>