Ioctl设备方法学习中遇到的一些问题

在学习Ioctl设备方法时,遇到了编译错误,包括'kmalloc'和'kfree'的隐式声明,以及'ioctl'字段未知的错误。这些问题分别通过引入<linux/slab.h>头文件和更新为'unlocked_ioctl'函数来解决。在新的内核中,'ioctl'被'unlocked_ioctl'和'compat_ioctl'取代。由于CONFIG_COMPAT宏的依赖,需要正确配置才能使compat_ioctl编译进内核。最后,选择使用'unlocked_ioctl'解决了测试程序调用的问题。
摘要由CSDN通过智能技术生成

Ioctl设备方法

执行make后显示

error: implicit declaration of function'kmalloc'

error: implicit declaration of function'kfree'

经查到是缺少头文件#include <linux/slab.h>

然后再make后显示:错误:初始值设定项里有未知的字段‘ioctl’

这个错误原来是新的内核里面已经删除了ioctl函数,取代的是

long (*unlocked_ioctl) (struct file *,unsigned int, unsigned long);
long (*compat_ioctl) (struct file *, unsigned int,unsigned long);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值