iotcl函数
来源:互联网 发布:查看知乎匿名用户 编辑:程序博客网 时间:2024/06/14 02:54
Linux系统建议以如图方式定义ioctl()的命令码。
设备类型(type)
序列号(nr)
方向
数据尺寸(size)
8bit
8bit
2bit
13/14bit
命令码的设备类型字段为一个“幻数”,可以是0~0xff之间的值,命令码的序列号也是8位宽,命令码的方向字段为2位,该字段表示数据传送的方向,可能的值是_IOC_NONE(无数据传输)、_IOC_READ(读)、_IOC_WRITE(写)和_IOC_READ | _IOC_WRITE(双向)。数据传输的方向是从应用程序的角度来看的。
命令码的数据长度字段表示涉及的用户数据的大小,这个成员的宽度依赖于体系结构,通常是13位或者14位。
内核还定义了_IO()、_IOR()、_IOW()和_IOWR()这4个宏来辅助生成命令,这4个宏的通用定义代码如下:
#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_WRITE, (type), (nr), (_IOC_TYPECHECK(size)))#define _IOC(dir, type, nr, size) \ (((dir) << _IOC_DIRSHIFT) |\((type) << _IOC_TYPESHIFT) | \((nr) << _IOC_NRSHIFT) | \((size) << _IOC_SIZESHIFT))
- iotcl函数
- iotcl函数
- iotcl函数与网络接口
- iotcl函数(转自http://blog.csdn.net/shanshanpt/article/details/19897897)
- linux网络编程中iotcl的用法
- Linux-文件操作(open、write、read、close、iotcl)
- S3C6410 GPIO 驱动(四) --- 内核当中关于iotcl()的改动
- Linux设备驱动第六篇:高级字符驱动操作之iotcl
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- HDU 1251 统计难题(很基础的Trie)
- Hibernate4实战 之 第四部分:关系映射
- Hibernate4实战 之第五部分:Hibernate的事务和并发
- Miscellaneous Character Drivers
- 从一个activity跳转到另一个activity,利用intent传递数据
- iotcl函数
- 关于webservice服务器接收不到Android传递过来的参数的问题
- C# 如何线程安全的操作控件
- 做事的优先顺序
- [Java I/O系统]FileReader类
- 查询mysql当前连接数
- Hibernate4实战 之第六部分:基本实现原理
- 最近的日子
- UTF-8 GBK UTF16 GB2312 之间的区别和关系