当前位置:  技术问答>linux和unix

ioctl设备控制

    来源: 互联网  发布时间:2017-01-15

    本文导语:  if(_IOC_DIR(cmd) & _IOC_READ)     err = !access_ok(VERIFY_WRITE,(void *)arg,_IOC_SIZE(cmd)); else if(_IOC_DIR(cmd) & _IOC_WRITE)     err = !access_ok(VERIFY_READ,(void *)arg,_IOC_SIZE(cmd)); if(err)    return -EFAULT; _IOC_READ _IOC_WRITE //表示什么意思 _IOC_SIZE(cm...


if(_IOC_DIR(cmd) & _IOC_READ)
    err = !access_ok(VERIFY_WRITE,(void *)arg,_IOC_SIZE(cmd));
else if(_IOC_DIR(cmd) & _IOC_WRITE)
    err = !access_ok(VERIFY_READ,(void *)arg,_IOC_SIZE(cmd));
if(err)
   return -EFAULT;
_IOC_READ
_IOC_WRITE //表示什么意思

_IOC_SIZE(cmd)//表示什么意思
逐行解释一下 谢谢!!!


|
宏而已,建议用source insight看Linux kernel source code.

|
access_ok:检查一个用户空间的指针是否是有效的。
@type:访问的类型:%VERIFY_READ或者%VERIFY_WRITE。注意%VERIFY_WRITE是%VERIFY_READ的一个超集(如果它是可写的一个块,它也是可以被读出来的)
@addr:所要坚持的用户空间的指针(指向的块开始部分)。
@size:所要坚持的块的大小。

检查一个用户空间的指针所指向的存储块是否有效,就是检查用户传入给驱动的设备指针是否有效

建议看一下 linux设备驱动开发 里面有介绍

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 内核执行ioctl时会被其他的ioctl打断吗
  • 用户程序的ioctl是怎么和驱动程序中的ioctl实现联系
  • win内核驱动漏洞挖掘 IOCTL Fuzzer
  • ioctl调用的问题
  • 菜鸟问题:Linux下 ioctl 函数到底在哪?
  • 求助:ioctl函数的命令参数
  • system()调用 与 ioctl()调用
  • ioctl() 到底有什么作用??
  • ioctl()函数
  • ioctl執行的奇怪問題
  • 关于linux内核的ioctl函数,请高手指点一下
  • 请教一个关于Makefile的问题。提示出错:make: *** 没有规则可以创建“ioctl”需要的目标“gcc”。 停止。
  • ioctl&fcntl 函数的区别
  • 关于ioctl
  • 请教一个ioctl函数的参数问题
  • ioctl返回的地址问题?初学者,高人指点。
  • 【求助】:如何用ioctl()函数调用一个驱动程序
  • 用ioctl修改网卡接口eth0的ip地址的问题,请~
  • ioctl函数的用法
  • 求ioctl的中文资料


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3