Skip to contentSkip to conversation

documentation: move ioctl-number.txt to Doc/ioctl/

PATCH New Randy Dunlap 1 participant 1 message Nov 4, 2008 Documentation

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 documentation: move ioctl-number.txt to Doc/ioctl/

From: Randy Dunlap <[email protected]>

Move ioctl-number.txt to Documentation/ioctl/ since it is ioctl-related. Add an ioctl/00-INDEX file.

---
 Documentation/00-INDEX               |    4 
 Documentation/ioctl-number.txt       |  201 -----------------------------------
 Documentation/ioctl/00-INDEX         |   10 +
 Documentation/ioctl/ioctl-number.txt |  201 +++++++++++++++++++++++++++++++++++
 4 files changed, 212 insertions(+), 204 deletions(-)
Documentation/ioctl-number.txt deleted +0 -201
@@ -1,201 +0,0 @@
-Ioctl Numbers
-19 October 1999
-Michael Elizabeth Chastain
-<[email protected]>
-
-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 <[email protected]> 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:[email protected]>
-'A'	00-1F	linux/apm_bios.h
-'B'	C0-FF				advanced bbus
-					<mailto:[email protected]>
-'C'	all	linux/soundcard.h
-'D'	all	arch/s390/include/asm/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
-'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	arch/x86/include/asm/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:[email protected]>
-'a'	all				ATM on linux
-					<http://lrcwww.epfl.ch/linux-atm/magic.html>
-'b'	00-FF				bit3 vme host bridge
-					<mailto:[email protected]>
-'c'	00-7F	linux/comstats.h	conflict!
-'c'	00-7F	linux/coda.h		conflict!
-'c'	80-9F	arch/s390/include/asm/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:[email protected]>
-'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
-'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:[email protected]>
-'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:[email protected]>
-'z'	00-3F				CAN bus card
-					<mailto:[email protected]>
-'z'	40-7F				CAN bus card
-					<mailto:[email protected]>
-0x80	00-1F	linux/fb.h
-0x81	00-1F	linux/videotext.h
-0x89	00-06	arch/x86/include/asm/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:[email protected]>
-0xA0	all	linux/sdp/sdp.h		Industrial Device Project
-					<mailto:[email protected]>
-0xA3	80-8F	Port ACL		in development:
-					<mailto:[email protected]>
-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:[email protected]>	
-0xAE	all	linux/kvm.h		Kernel-based Virtual Machine
-					<mailto:[email protected]>
-0xB0	all	RATIO devices		in development:
-					<mailto:[email protected]>
-0xB1	00-1F	PPPoX			<mailto:[email protected]>
-0xCB	00-1F	CBM serial IEC bus	in development:
-					<mailto:[email protected]>
-0xDD	00-3F	ZFCP device driver	see drivers/s390/scsi/
-					<mailto:[email protected]>
-0xF3	00-3F	video/sisfb.h		sisfb (in development)
-					<mailto:[email protected]>
-0xF4	00-1F	video/mbxfb.h		mbxfb
-					<mailto:[email protected]>
Documentation/ioctl/ioctl-number.txt new file +201 -0

201 lines not on this page · raw message

Documentation/00-INDEX +1 -3
@@ -185,9 +185,7 @@ input/
 io_ordering.txt
 	- info on ordering I/O writes to memory-mapped addresses.
 ioctl/
-	- directory with documents describing various IOCTL calls.
-ioctl-number.txt
-	- how to implement and register device/driver ioctl calls.
+	- documents describing various IOCTL calls and how to implement/register IOCTLs
 iostats.txt
 	- info on I/O statistics Linux kernel provides.
 irqflags-tracing.txt
Documentation/ioctl/00-INDEX new file +10 -0
@@ -0,0 +1,10 @@
+00-INDEX
+	- this file
+cdrom.txt
+	- summary of CDROM ioctl calls
+hdio.txt
+	- summary of HDIO_ ioctl calls
+ioctl-decoding.txt
+	- how to decode the bits of an IOCTL code
+ioctl-number.txt
+	- how to implement and register device/driver ioctl calls