文档路径:linux-imx-4.1.15\Documentation\ioctl\ioctl-decoding.txt
。
要解码十六进制 IOCTL 代码:
大多数架构使用这种通用格式,但请检查 include/ARCH/ioctl.h 以了解具体情况,例如 powerpc 使用 3 位编码读/写和 13 位大小。
bits meaning
31-30 00 - 无参数:使用 _IO 宏
10 - 读:_IOR
01 - 写:_IOW
11 - 读/写:_IOWR
29-16 参数大小
15-8 每个驱动程序都是独一无二的 ascii 字符
7-0 命令
因此,例如 0x82187201 是 arg 长度为 0x218 的读取,字符 ‘r’ ,命令 1。Grepping 源显示这是:
#define VFAT_IOCTL_READDIR_BOTH _IOR('r', 1, struct dirent [2])