ioctl命令构建
来源:互联网 发布:淘宝店招商 编辑:程序博客网 时间:2024/05/01 17:09
/*用如下宏来组建命令,保证命令唯一性*/
//一个命令组建的时候包含以下几个部分,有些命令可以带数据
方向类型序列数据
#define _IOC(dir,type,nr,size) \
(((dir) << _IOC_DIRSHIFT) | \
((type) << _IOC_TYPESHIFT) | \
((nr) << _IOC_NRSHIFT) | \
((size) << _IOC_SIZESHIFT))
/*不带数据的命令组建宏*/
#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
/*带数据的读命令组建宏*/
#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size)))
/*带数据的写命令组建宏*/
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
/*带命令的可读可写组建宏*/
#define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
例如:
#define LED_ON 1
#define LED_OFF 0
可以改为如下组建方法:
#define MAGIC 'L'
#define LED_ON _IO(MAGIC,1)
#define LED_OFF _IO(MAGIC,0)
//一个命令组建的时候包含以下几个部分,有些命令可以带数据
方向类型序列数据
#define _IOC(dir,type,nr,size) \
(((dir) << _IOC_DIRSHIFT) | \
((type) << _IOC_TYPESHIFT) | \
((nr) << _IOC_NRSHIFT) | \
((size) << _IOC_SIZESHIFT))
/*不带数据的命令组建宏*/
#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
/*带数据的读命令组建宏*/
#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size)))
/*带数据的写命令组建宏*/
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
/*带命令的可读可写组建宏*/
#define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
例如:
#define LED_ON 1
#define LED_OFF 0
可以改为如下组建方法:
#define MAGIC 'L'
#define LED_ON _IO(MAGIC,1)
#define LED_OFF _IO(MAGIC,0)
0 0
- ioctl命令构建
- ioctl 命令
- ioctl参数命令设置
- 套接字 ioctl 命令
- HID ioctl 命令详解
- ioctl命令编号分析
- HID ioctl 命令详解 .
- IOCTL命令号
- ioctl命令详解
- v412的ioctl命令
- [内核文档]ioctl 命令号
- ioctl命令及参数传递
- ioctl函数用的命令
- 24 ioctl的自定义命令
- 构建ioctl的方法的讨论
- ioctl
- ioctl
- ioctl
- [Android开发] SlidingMenu侧滑剩余的位置添加阴影淡入淡出
- unity 一个人物越跑越快的例子
- 【u026】房间最短路问题
- uva11384帮助DEXTER
- 函数调用约定与名字修饰约定
- ioctl命令构建
- spark 集群部署可用方法
- linux学习
- 排序算法(3)—优先队列,堆排序
- Poj 1966 Cable TV Network【点连通度------最大流Dinic】
- PHP中分隔符与连接符的效率对比
- Ubuntu下Tomcat8的安装与配置
- 编程之美读书笔记-1的数目
- theano学习指南--深度置信网络(DBN)(源码)