Ioctl Numbers
19 October 1999
Michael Elizabeth Chastain
<mec@shout.net>

If you are adding new ioctl's to the kernel, you should use the _IO
macros defined in <linux/ioctl.h>:

    _IO    an ioctl with no parameters
    _IOW   an ioctl with write parameters (copy_from_user)
    _IOR   an ioctl with read parameters  (copy_to_user)
    _IOWR  an ioctl with both write and read parameters.

'Write' and 'read' are from the user's point of view, just like the
system calls 'write' and 'read'.  For example, a SET_FOO ioctl would
be _IOW, although the kernel would actually read data from user space;
a GET_FOO ioctl would be _IOR, although the kernel would actually write
data to user space.

The first argument to _IO, _IOW, _IOR, or _IOWR is an identifying letter
or number from the table below.  Because of the large number of drivers,
many drivers share a partial letter with other drivers.

If you are writing a driver for a new device and need a letter, pick an
unused block with enough room for expansion: 32 to 256 ioctl commands.
You can register the block by patching this file and submitting the
patch to Linus Torvalds.  Or you can e-mail me at <mec@shout.net> and
I'll register one for you.

The second argument to _IO, _IOW, _IOR, or _IOWR is a sequence number
to distinguish ioctls from each other.  The third argument to _IOW,
_IOR, or _IOWR is the type of the data going into the kernel or coming
out of the kernel (e.g.  'int' or 'struct foo').  NOTE!  Do NOT use
sizeof(arg) as the third argument as this results in your ioctl thinking
it passes an argument of type size_t.

Some devices use their major number as the identifier; this is OK, as
long as it is unique.  Some devices are irregular and don't follow any
convention at all.

Following this convention is good because:

(1) Keeping the ioctl's globally unique helps error checking:
    if a program calls an ioctl on the wrong device, it will get an
    error rather than some unexpected behaviour.

(2) The 'strace' build procedure automatically finds ioctl numbers
    defined with _IO, _IOW, _IOR, or _IOWR.

(3) 'strace' can decode numbers back into useful names when the
    numbers are unique.

(4) People looking for ioctls can grep for them more easily when
    this convention is used to define the ioctl numbers.

(5) When following the convention, the driver code can use generic
    code to copy the parameters between user and kernel space.

This table lists ioctls visible from user land for Linux/i386.  It contains
most drivers up to 2.3.14, but I know I am missing some.

Code	Seq#	Include File		Comments
========================================================
0x00	00-1F	linux/fs.h		conflict!
0x00	00-1F	scsi/scsi_ioctl.h	conflict!
0x00	00-1F	linux/fb.h		conflict!
0x00	00-1F	linux/wavefront.h	conflict!
0x02	all	linux/fd.h
0x03	all	linux/hdreg.h
0x04	D2-DC	linux/umsdos_fs.h	Dead since 2.6.11, but don't reuse these.
0x06	all	linux/lp.h
0x09	all	linux/md.h
0x12	all	linux/fs.h
		linux/blkpg.h
0x1b	all	InfiniBand Subsystem	<http://www.openib.org/>
0x20	all	drivers/cdrom/cm206.h
0x22	all	scsi/sg.h
'#'	00-3F	IEEE 1394 Subsystem	Block for the entire subsystem
'1'	00-1F	<linux/timepps.h>	PPS kit from Ulrich Windl
					<ftp://ftp.de.kernel.org/pub/linux/daemons/ntp/PPS/>
'8'	all				SNP8023 advanced NIC card
					<mailto:mcr@solidum.com>
'A'	00-1F	linux/apm_bios.h
'B'	C0-FF				advanced bbus
					<mailto:maassen@uni-freiburg.de>
'C'	all	linux/soundcard.h
'D'	all	asm-s390/dasd.h
'E'	all	linux/input.h
'F'	all	linux/fb.h
'H'	all	linux/hiddev.h
'I'	all	linux/isdn.h
'J'	00-1F	drivers/scsi/gdth_ioctl.h
'K'	all	linux/kd.h
'L'	00-1F	linux/loop.h
'L'	20-2F	driver/usb/misc/vstusb.h
'L'	E0-FF	linux/ppdd.h		encrypted disk device driver
					<http://linux01.gwdg.de/~alatham/ppdd.html>
'M'	all	linux/soundcard.h
'N'	00-1F	drivers/usb/scanner.h
'O'     00-02   include/mtd/ubi-user.h UBI
'P'	all	linux/soundcard.h
'Q'	all	linux/soundcard.h
'R'	00-1F	linux/random.h
'S'	all	linux/cdrom.h		conflict!
'S'	80-81	scsi/scsi_ioctl.h	conflict!
'S'	82-FF	scsi/scsi.h		conflict!
'T'	all	linux/soundcard.h	conflict!
'T'	all	asm-i386/ioctls.h	conflict!
'U'	00-EF	linux/drivers/usb/usb.h
'V'	all	linux/vt.h
'W'	00-1F	linux/watchdog.h	conflict!
'W'	00-1F	linux/wanrouter.h	conflict!
'X'	all	linux/xfs_fs.h
'Y'	all	linux/cyclades.h
'['	00-07	linux/usb/usbtmc.h	USB Test and Measurement Devices
					<mailto:gregkh@suse.de>
'a'	all				ATM on linux
					<http://lrcwww.epfl.ch/linux-atm/magic.html>
'b'	00-FF				bit3 vme host bridge
					<mailto:natalia@nikhefk.nikhef.nl>
'c'	00-7F	linux/comstats.h	conflict!
'c'	00-7F	linux/coda.h		conflict!
'c'	80-9F	asm-s390/chsc.h
'd'	00-FF	linux/char/drm/drm/h	conflict!
'd'	00-DF	linux/video_decoder.h	conflict!
'd'	F0-FF	linux/digi1.h
'e'	all	linux/digi1.h		conflict!
'e'	00-1F	linux/video_encoder.h	conflict!
'e'	00-1F	net/irda/irtty.h	conflict!
'f'	00-1F	linux/ext2_fs.h
'h'	00-7F				Charon filesystem
					<mailto:zapman@interlan.net>
'i'	00-3F	linux/i2o.h
'j'	00-3F	linux/joystick.h
'l'	00-3F	linux/tcfs_fs.h		transparent cryptographic file system
					<http://mikonos.dia.unisa.it/tcfs>
'l'	40-7F	linux/udf_fs_i.h	in development:
					<http://sourceforge.net/projects/linux-udf/>
'm'	all	linux/mtio.h		conflict!
'm'	all	linux/soundcard.h	conflict!
'm'	all	linux/synclink.h	conflict!
'm'	00-1F	net/irda/irmod.h	conflict!
'n'	00-7F	linux/ncp_fs.h
'n'	E0-FF	video/matrox.h          matroxfb
'o'	00-1F	fs/ocfs2/ocfs2_fs.h	OCFS2
'o'     00-03   include/mtd/ubi-user.h  conflict! (OCFS2 and UBI overlaps)
'o'     40-41   include/mtd/ubi-user.h  UBI
'o'     01-A1   include/linux/dvb/*.h DVB
'p'	00-0F	linux/phantom.h		conflict! (OpenHaptics needs this)
'p'	00-3F	linux/mc146818rtc.h	conflict!
'p'	40-7F	linux/nvram.h
'p'	80-9F				user-space parport
					<mailto:tim@cyberelk.net>
'q'	00-1F	linux/serio.h
'q'	80-FF				Internet PhoneJACK, Internet LineJACK
					<http://www.quicknet.net>
'r'	00-1F	linux/msdos_fs.h
's'	all	linux/cdk.h
't'	00-7F	linux/if_ppp.h
't'	80-8F	linux/isdn_ppp.h
'u'	00-1F	linux/smb_fs.h
'v'	00-1F	linux/ext2_fs.h		conflict!
'v'	all	linux/videodev.h	conflict!
'w'	all				CERN SCI driver
'y'	00-1F				packet based user level communications
					<mailto:zapman@interlan.net>
'z'	00-3F				CAN bus card
					<mailto:hdstich@connectu.ulm.circular.de>
'z'	40-7F				CAN bus card
					<mailto:oe@port.de>
0x80	00-1F	linux/fb.h
0x81	00-1F	linux/videotext.h
0x89	00-06	asm-i386/sockios.h
0x89	0B-DF	linux/sockios.h
0x89	E0-EF	linux/sockios.h		SIOCPROTOPRIVATE range
0x89	F0-FF	linux/sockios.h		SIOCDEVPRIVATE range
0x8B	all	linux/wireless.h
0x8C	00-3F				WiNRADiO driver
					<http://www.proximity.com.au/~brian/winradio/>
0x90	00	drivers/cdrom/sbpcd.h
0x93	60-7F	linux/auto_fs.h
0x99	00-0F				537-Addinboard driver
					<mailto:buk@buks.ipn.de>
0xA0	all	linux/sdp/sdp.h		Industrial Device Project
					<mailto:kenji@bitgate.com>
0xA3	80-8F	Port ACL		in development:
					<mailto:tlewis@mindspring.com>
0xA3	90-9F	linux/dtlk.h
0xAB	00-1F	linux/nbd.h
0xAC	00-1F	linux/raw.h
0xAD	00	Netfilter device	in development:
					<mailto:rusty@rustcorp.com.au>	
0xAE	all	linux/kvm.h		Kernel-based Virtual Machine
					<mailto:kvm-devel@lists.sourceforge.net>
0xB0	all	RATIO devices		in development:
					<mailto:vgo@ratio.de>
0xB1	00-1F	PPPoX			<mailto:mostrows@styx.uwaterloo.ca>
0xCB	00-1F	CBM serial IEC bus	in development:
					<mailto:michael.klein@puffin.lb.shuttle.de>
0xDD	00-3F	ZFCP device driver	see drivers/s390/scsi/
					<mailto:aherrman@de.ibm.com>
0xF3	00-3F	video/sisfb.h		sisfb (in development)
					<mailto:thomas@winischhofer.net>
0xF4	00-1F	video/mbxfb.h		mbxfb
					<mailto:raph@8d.com>
