解码 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])