请问linux ioctl怎么确定使用的magic是不是唯一的呢?

温小二的徐凤年 2016-09-10 02:57:31
各位大神,请问ioctl怎么确定使用的magic是不是唯一的呢?自己想定义magic,但是怕重复了,怎么确认还有哪些没有用呢?另外,其magic定义只支持26个单个字母吗?其范围是多少呢?谢谢。
...全文
699 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 3 楼 woshidahuaidan2011 的回复:
有现成的宏,为啥要自己去定义?
自己添加的硬件,就需要去用magic啊。。。
bigPillow 2016-09-30
  • 打赏
  • 举报
回复
有现成的宏,为啥要自己去定义?
猪头三小队长 2016-09-25
  • 打赏
  • 举报
回复
这就要根据各个字段的不同含义,利用linux系统提供的各种宏进行精心管理。 ioctl的这些问题,也是导致内核开发者不甚喜欢它的原因,在一个成熟的驱动中,如果能够少用ioctl控制字就尽量少用。
xuwang_ly 2016-09-25
  • 打赏
  • 举报
回复
bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。 bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送的内存大小。 bit20~bit08 8位为 “魔数"(也称为"幻数")区,这个值用以与其它设备驱动程序的 ioctl 命令进行区别。 bit07~bit00 8位为 "区别序号" 区,是区分命令的命令顺序序号。 很明显magic可以有256个不同数值

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧