解码 IOCTL 魔术数字¶
解码十六进制 IOCTL 代码
大多数架构使用这种通用格式,但请检查 include/ARCH/ioctl.h 以了解具体信息,例如 powerpc 使用 3 位来编码读/写,使用 13 位来编码大小。
位
含义
31-30
00 - 无参数:使用 _IO 宏 10 - 读取:_IOR 01 - 写入:_IOW 11 - 读取/写入:_IOWR
29-16
参数大小
15-8
假定每个驱动程序唯一的 ASCII 字符
7-0
函数 #
因此,例如 0x82187201 是一个读取操作,参数长度为 0x218,字符为 'r',函数为 1。在源代码中搜索后发现它是
#define VFAT_IOCTL_READDIR_BOTH _IOR('r', 1, struct dirent [2])