brintos

brintos / linux-shallow public Read only

0
0
Text · 830 B · 380d6bb Raw
32 lines · plain
1==============================2Decoding an IOCTL Magic Number3==============================4 5To decode a hex IOCTL code:6 7Most architectures use this generic format, but check8include/ARCH/ioctl.h for specifics, e.g. powerpc9uses 3 bits to encode read/write and 13 bits for size.10 11 ====== ==================================12 bits   meaning13 ====== ==================================14 31-30	00 - no parameters: uses _IO macro15	10 - read: _IOR16	01 - write: _IOW17	11 - read/write: _IOWR18 19 29-16	size of arguments20 21 15-8	ascii character supposedly22	unique to each driver23 24 7-0	function #25 ====== ==================================26 27 28So for example 0x82187201 is a read with arg length of 0x218,29character 'r' function 1. Grepping the source reveals this is::30 31	#define VFAT_IOCTL_READDIR_BOTH         _IOR('r', 1, struct dirent [2])32