历史上的今天
今天是:2025年01月17日(星期五)
2019年01月17日 | 2416开发记录四: ioctl与unlocked_ioctl区别
2019-01-17 来源:eefocus
ioctl函数的实现
首先说明在2.6.36以后ioctl函数已经不再存在了,而是用unlocked_ioctl和compat_ioctl两个函数实现以前版本的ioctl函数。同时在参数方面也发生了一定程度的改变,去除了原来ioctl中的struct inode参数,同时改变了返回值。
但是驱动设计过程中存在的问题变化并不是很大,**同样在应用程序设计中我们还是采用ioctl实现访问,而并不是unlocked_ioctl函数,因此我们还可以称之为ioctl函数的实现。
原来的驱动程序
static const struct file_operations globalmem_fops=
{
.owner=THIS_MODULE,
.llseek=globalmem_llseek,
.open=globalmem_open,
.read=globalmem_read,
.write=globalmem_write,
.ioctl=globalmem_ioctl,
.release=globalmem_release,
};
int globalmem_ioctl(struct inode* inode,struct file* filp, unsigned int cmd,unsigned long arg)
{
switch (cmd)
{
case:XXX: ...
……
}
}
改变后的
static const struct file_operations globalmem_fops=
{
.owner=THIS_MODULE,
.llseek=globalmem_llseek,
.open=globalmem_open,
.read=globalmem_read,
.write=globalmem_write,
.unlocked_ioctl=globalmem_ioctl,
.release=globalmem_release,
};
int globalmem_ioctl(struct file* filp, unsigned int cmd,unsigned long arg)//没有inode参数!
{
switch (cmd)
{
case:XXX: ...
……
}
}
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:17 编辑 求高手帮忙画个!EDA或其他的!电气图! 截图发我! 原理图 看附件!谢谢 ! xiongyaqi@126.com … 查看全部问答> |
|
板子是在TAOBAO上买的!当然自己买玩具来改的话也不错! 可以买线控的挖土机来改! 这是装好之后反面的样子!(上图是反面) 这是正面! 不过这个样子是没办法焊元件的,因为轮子什么的.都怕热,所以全拆了! 这是装好元件的样子,网上买的小车, ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 美国科学家正在研发一种超级电池,只需花10秒钟就可为手机充电,预计可立刻为电动车加速,或在数分钟内为手提电脑充电,并有助发展新一代超轻便手机。 目前的磷酸铁锂电池(LiFePO4)可储存 ...… 查看全部问答> |
|
我要将NK.bin下载至硬件,使用以太网口,目前遇到问题是: 通过超级终端控制设备发送bootme信息,使用sniffer抓包可以见到发来的bootme包。 但是在pb上就是建立不上连接,而且我以前还正常地下载过,这次不知道怎么不行了 是否和build options ...… 查看全部问答> |
|
最近一直忙着答辩,好久没来了。今天登陆论坛,看到有朋友发帖子,问找工作最看重什么,还列了5个选项:公司薪资福利待遇、公司企业文化、公司发展前景、公司工作环境、个人发展前景?就俺的个人经验看来:找工作,别的什么都不重要,薪酬待遇永远 ...… 查看全部问答> |
|
急招LTE modem /RF/GNSS方向技术牛人、SW Manager、Linux AE、Test等职位,地点上海 急招:1、技术大牛: LTE modem 、RF、GNSS方向均可 2、Multimedia and Graphic Manager. 3、Linux AE,音视频方向 4、Test Engineer,Multimedia、Connectivity、Android方向均可 。地点均在上海 ,微信 170810425,QQ:2872128376,Email:287212 ...… 查看全部问答> |




