Commit cf1b939e41c28a31f2052e5c0a6619b5711ad7d0

Authored by Chuck Ebbert
Committed by Linus Torvalds
1 parent 0dd4e5b8e1

[PATCH] Document how to decode an IOCTL number

Document how to decode a binary IOCTL number.

Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 1 changed file with 24 additions and 0 deletions Side-by-side Diff

Documentation/ioctl/ioctl-decoding.txt
  1 +To decode a hex IOCTL code:
  2 +
  3 +Most architecures 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])