About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / ioctl / ioctl-decoding.txt


Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST.

1	To decode a hex IOCTL code:
2	
3	Most architectures use this generic format, but check
4	include/ARCH/ioctl.h for specifics, e.g. powerpc
5	uses 3 bits to encode read/write and 13 bits for size.
6	
7	 bits    meaning
8	 31-30	00 - no parameters: uses _IO macro
9		10 - read: _IOR
10		01 - write: _IOW
11		11 - read/write: _IOWR
12	
13	 29-16	size of arguments
14	
15	 15-8	ascii character supposedly
16		unique to each driver
17	
18	 7-0	function #
19	
20	
21	So for example 0x82187201 is a read with arg length of 0x218,
22	character 'r' function 1. Grepping the source reveals this is:
23	
24	#define VFAT_IOCTL_READDIR_BOTH         _IOR('r', 1, struct dirent [2])
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog