当前位置: 首页 > news >正文

揭阳专业做网站邯郸最新通告今天

揭阳专业做网站,邯郸最新通告今天,仿淘宝电商网站开发报价,百度公司怎么样一、ioctl协议的命令组成 cmd本质为一个32位的数字,共分为四段: [31-30]:读写方向dir,分为无数据(_IO)、读数据(_IOR)、写数据(_IOW)、读写数据(_IOWR)四种模式; [29-16]:传递数据的大小size,一般利用其宏_IO、_IOR…

一、ioctl协议的命令组成

cmd本质为一个32位的数字,共分为四段:

[31-30]:读写方向dir,分为无数据(_IO)、读数据(_IOR)、写数据(_IOW)、读写数据(_IOWR)四种模式;

[29-16]:传递数据的大小size,一般利用其宏_IO、_IOR等直接传入数据的类型,如int;

[15-8]:命令的幻数type,表示设备的类型,可以是任意一个char型字符,如’a’、‘b’、‘c’等,其主要作用是使ioctl命令具有唯一的设备标识。不过在内核中’w’、‘y’、'z’三个字符已经被使用了。

[7-0]:命令的编号nr,有多个ioctl命令时,从0开始往上编号;


二、ioctl的宏

生成cmd的宏:

_IO(type,nr):用来定义没有数据传递的命令

_IOR(type,nr,size):用来定义从驱动中读取数据的命令

_IOW(type,nr,size):用来定义向驱动写入数据的命令

_IOWR(type,nr,size):用来定义数据交换类型的命令,先写入数据,再读取数据这类命令。

解析cmd的宏:

_IOC_DIR(cmd):解析命令的方向;

_IOC_TYPE(cmd):解析命令的幻数;

_IOC_NR(cmd):解析命令的编号;

_IOC_SIZE(cmd):解析命令的复制数据大小;


三、用于输入输出的时候需要注意的点

用于输入输出时需要使用copy_to_user或copy_from_user函数实现与用户空间的交互。其中,由于unlocked_ioctl函数中的arg参数是一个值,因此使用时需要注意:

  • 用户程序中ioctl函数虽然第三个参数是可变参数,但实际上只有一个,且传入的应为int类型数据的地址,即需要添加取地址符,如下:
    int rst = ioctl(fd, AFM_DEV_CMD_TEST, &aaa);
  • 驱动程序中需要对传入的arg参数进行强制类型转换,将其变回地址类型,如下:
    copy_to_user((void __user *)arg, &success_rst, sizeof(success_rst))
    copy_from_user(&print_verbos, (void __user *)arg, sizeof(print_verbos))
http://www.yayakq.cn/news/646348/

相关文章:

  • 电商网站建设推荐微信网站建设企业
  • 新网网站空间到期停了 咋续费面包店网站建设论文
  • 十大网站建设公司排名天眼查网站建设公司
  • 阿里云能放企业网站吗企业门为什么要建设门户网站
  • 网站建设答辩问题汕头各类免费建站
  • seo网站优化师自学编程从哪里开始学
  • 手机搭建网站教程视频教程什么是sem
  • 怎么选择昆明网站建设高新网页设计报价
  • 专做投放广告网站怎么建设一个自己的网站
  • 中山哪家建网站好福建seo关键词优化外包
  • 电商网站推广怎么做自己做网站好还是购买网站好
  • 佛山大型网站建设佛山网站建设 奇锐科技
  • g3云网站谷歌seo视频教程
  • 怎么样建立自己的网站做内销的网站推荐
  • 视频模板网站推荐平面设计手机作图软件
  • 谁帮助汉字叔叔做网站wordpress广告最后加载
  • seo学院百度seo查询工具
  • vs网站模态框怎么做企业建设门户网站的目的
  • 崆峒区建设局网站安卓盒子+做网站
  • 美食网站开发前期准备注册城乡规划师成绩查询
  • 个人网站域名名称大全域名备案 个人 网站基本信息查询
  • 网站建设交付形式深圳外贸公司多吗
  • 高清网站建设的好处app网站建设公司
  • 手机网站怎么建立哈尔滨快速网站排名
  • 东莞便宜做网站wordpress小工具文本加图片代码
  • 网站的建设成本上海在线
  • 成品动漫和视频网站入口网站建设的基础知识与维护
  • 网站页眉设计湖北三丰建设集团股份网站
  • 做游戏网站选服务器网站建设前台与后台最新技术
  • 网站程序预装中山外贸网站建设价格