mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 18:53:24 +00:00 
			
		
		
		
	 66832aef06
			
		
	
	
		66832aef06
		
	
	
	
	
		
			
			Remove bt819.h from ioctl-number.txt and make a note in the header that these ioctls are for internal use only. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
		
			
				
	
	
		
			318 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			318 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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/x86.  It contains
 | |
| most drivers up to 2.6.31, but I know I am missing some.  There has been
 | |
| no attempt to list non-X86 architectures or ioctls from drivers/staging/.
 | |
| 
 | |
| Code  Seq#(hex)	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/raid/md_u.h
 | |
| 0x10	00-0F	drivers/char/s390/vmcp.h
 | |
| 0x12	all	linux/fs.h
 | |
| 		linux/blkpg.h
 | |
| 0x1b	all	InfiniBand Subsystem	<http://infiniband.sourceforge.net/>
 | |
| 0x20	all	drivers/cdrom/cm206.h
 | |
| 0x22	all	scsi/sg.h
 | |
| '#'	00-3F	IEEE 1394 Subsystem	Block for the entire subsystem
 | |
| '$'	00-0F	linux/perf_counter.h, linux/perf_event.h
 | |
| '&'	00-07	drivers/firewire/nosy-user.h
 | |
| '1'	00-1F	<linux/timepps.h>	PPS kit from Ulrich Windl
 | |
| 					<ftp://ftp.de.kernel.org/pub/linux/daemons/ntp/PPS/>
 | |
| '2'	01-04	linux/i2o.h
 | |
| '3'	00-0F	drivers/s390/char/raw3270.h	conflict!
 | |
| '3'	00-1F	linux/suspend_ioctls.h	conflict!
 | |
| 		and kernel/power/user.c
 | |
| '8'	all				SNP8023 advanced NIC card
 | |
| 					<mailto:mcr@solidum.com>
 | |
| '@'	00-0F	linux/radeonfb.h	conflict!
 | |
| '@'	00-0F	drivers/video/aty/aty128fb.c	conflict!
 | |
| 'A'	00-1F	linux/apm_bios.h	conflict!
 | |
| 'A'	00-0F	linux/agpgart.h		conflict!
 | |
| 		and drivers/char/agp/compat_ioctl.h
 | |
| 'A'	00-7F	sound/asound.h		conflict!
 | |
| 'B'	00-1F	linux/cciss_ioctl.h	conflict!
 | |
| 'B'	00-0F	include/linux/pmu.h	conflict!
 | |
| 'B'	C0-FF				advanced bbus
 | |
| 					<mailto:maassen@uni-freiburg.de>
 | |
| 'C'	all	linux/soundcard.h	conflict!
 | |
| 'C'	01-2F	linux/capi.h		conflict!
 | |
| 'C'	F0-FF	drivers/net/wan/cosa.h	conflict!
 | |
| 'D'	all	arch/s390/include/asm/dasd.h
 | |
| 'D'	40-5F	drivers/scsi/dpt/dtpi_ioctl.h
 | |
| 'D'	05	drivers/scsi/pmcraid.h
 | |
| 'E'	all	linux/input.h		conflict!
 | |
| 'E'	00-0F	xen/evtchn.h		conflict!
 | |
| 'F'	all	linux/fb.h		conflict!
 | |
| 'F'	01-02	drivers/scsi/pmcraid.h	conflict!
 | |
| 'F'	20	drivers/video/fsl-diu-fb.h	conflict!
 | |
| 'F'	20	drivers/video/intelfb/intelfb.h	conflict!
 | |
| 'F'	20	linux/ivtvfb.h		conflict!
 | |
| 'F'	20	linux/matroxfb.h	conflict!
 | |
| 'F'	20	drivers/video/aty/atyfb_base.c	conflict!
 | |
| 'F'	00-0F	video/da8xx-fb.h	conflict!
 | |
| 'F'	80-8F	linux/arcfb.h		conflict!
 | |
| 'F'	DD	video/sstfb.h		conflict!
 | |
| 'G'	00-3F	drivers/misc/sgi-gru/grulib.h	conflict!
 | |
| 'G'	00-0F	linux/gigaset_dev.h	conflict!
 | |
| 'H'	00-7F	linux/hiddev.h		conflict!
 | |
| 'H'	00-0F	linux/hidraw.h		conflict!
 | |
| 'H'	00-0F	sound/asound.h		conflict!
 | |
| 'H'	20-40	sound/asound_fm.h	conflict!
 | |
| 'H'	80-8F	sound/sfnt_info.h	conflict!
 | |
| 'H'	10-8F	sound/emu10k1.h		conflict!
 | |
| 'H'	10-1F	sound/sb16_csp.h	conflict!
 | |
| 'H'	10-1F	sound/hda_hwdep.h	conflict!
 | |
| 'H'	40-4F	sound/hdspm.h		conflict!
 | |
| 'H'	40-4F	sound/hdsp.h		conflict!
 | |
| 'H'	90	sound/usb/usx2y/usb_stream.h
 | |
| 'H'	C0-F0	net/bluetooth/hci.h	conflict!
 | |
| 'H'	C0-DF	net/bluetooth/hidp/hidp.h	conflict!
 | |
| 'H'	C0-DF	net/bluetooth/cmtp/cmtp.h	conflict!
 | |
| 'H'	C0-DF	net/bluetooth/bnep/bnep.h	conflict!
 | |
| 'I'	all	linux/isdn.h		conflict!
 | |
| 'I'	00-0F	drivers/isdn/divert/isdn_divert.h	conflict!
 | |
| 'I'	40-4F	linux/mISDNif.h		conflict!
 | |
| 'J'	00-1F	drivers/scsi/gdth_ioctl.h
 | |
| 'K'	all	linux/kd.h
 | |
| 'L'	00-1F	linux/loop.h		conflict!
 | |
| 'L'	10-1F	drivers/scsi/mpt2sas/mpt2sas_ctl.h	conflict!
 | |
| 'L'	E0-FF	linux/ppdd.h		encrypted disk device driver
 | |
| 					<http://linux01.gwdg.de/~alatham/ppdd.html>
 | |
| 'M'	all	linux/soundcard.h	conflict!
 | |
| 'M'	01-16	mtd/mtd-abi.h		conflict!
 | |
| 		and drivers/mtd/mtdchar.c
 | |
| 'M'	01-03	drivers/scsi/megaraid/megaraid_sas.h
 | |
| 'M'	00-0F	drivers/video/fsl-diu-fb.h	conflict!
 | |
| 'N'	00-1F	drivers/usb/scanner.h
 | |
| 'O'     00-06   mtd/ubi-user.h		UBI
 | |
| 'P'	all	linux/soundcard.h	conflict!
 | |
| 'P'	60-6F	sound/sscape_ioctl.h	conflict!
 | |
| 'P'	00-0F	drivers/usb/class/usblp.c	conflict!
 | |
| 'Q'	all	linux/soundcard.h
 | |
| 'R'	00-1F	linux/random.h		conflict!
 | |
| 'R'	01	linux/rfkill.h		conflict!
 | |
| 'R'	C0-DF	net/bluetooth/rfcomm.h
 | |
| 'S'	all	linux/cdrom.h		conflict!
 | |
| 'S'	80-81	scsi/scsi_ioctl.h	conflict!
 | |
| 'S'	82-FF	scsi/scsi.h		conflict!
 | |
| 'S'	00-7F	sound/asequencer.h	conflict!
 | |
| 'T'	all	linux/soundcard.h	conflict!
 | |
| 'T'	00-AF	sound/asound.h		conflict!
 | |
| 'T'	all	arch/x86/include/asm/ioctls.h	conflict!
 | |
| 'T'	C0-DF	linux/if_tun.h		conflict!
 | |
| 'U'	all	sound/asound.h		conflict!
 | |
| 'U'	00-0F	drivers/media/video/uvc/uvcvideo.h	conflict!
 | |
| 'U'	00-CF	linux/uinput.h		conflict!
 | |
| 'U'	00-EF	linux/usbdevice_fs.h
 | |
| 'U'	C0-CF	drivers/bluetooth/hci_uart.h
 | |
| 'V'	all	linux/vt.h		conflict!
 | |
| 'V'	all	linux/videodev2.h	conflict!
 | |
| 'V'	C0	linux/ivtvfb.h		conflict!
 | |
| 'V'	C0	linux/ivtv.h		conflict!
 | |
| 'V'	C0	media/davinci/vpfe_capture.h	conflict!
 | |
| 'V'	C0	media/si4713.h		conflict!
 | |
| 'V'	C0-CF	drivers/media/video/mxb.h	conflict!
 | |
| 'W'	00-1F	linux/watchdog.h	conflict!
 | |
| 'W'	00-1F	linux/wanrouter.h	conflict!
 | |
| 'W'	00-3F	sound/asound.h		conflict!
 | |
| 'X'	all	fs/xfs/xfs_fs.h		conflict!
 | |
| 		and fs/xfs/linux-2.6/xfs_ioctl32.h
 | |
| 		and include/linux/falloc.h
 | |
| 		and linux/fs.h
 | |
| 'X'	all	fs/ocfs2/ocfs_fs.h	conflict!
 | |
| 'X'	01	linux/pktcdvd.h		conflict!
 | |
| 'Y'	all	linux/cyclades.h
 | |
| 'Z'	14-15	drivers/message/fusion/mptctl.h
 | |
| '['	00-07	linux/usb/tmc.h		USB Test and Measurement Devices
 | |
| 					<mailto:gregkh@suse.de>
 | |
| 'a'	all	linux/atm*.h, linux/sonet.h	ATM on linux
 | |
| 					<http://lrcwww.epfl.ch/>
 | |
| 'b'	00-FF				conflict! bit3 vme host bridge
 | |
| 					<mailto:natalia@nikhefk.nikhef.nl>
 | |
| 'c'	all	linux/cm4000_cs.h	conflict!
 | |
| 'c'	00-7F	linux/comstats.h	conflict!
 | |
| 'c'	00-7F	linux/coda.h		conflict!
 | |
| 'c'	00-1F	linux/chio.h		conflict!
 | |
| 'c'	80-9F	arch/s390/include/asm/chsc.h	conflict!
 | |
| 'c'	A0-AF   arch/x86/include/asm/msr.h	conflict!
 | |
| 'd'	00-FF	linux/char/drm/drm/h	conflict!
 | |
| 'd'	02-40	pcmcia/ds.h		conflict!
 | |
| 'd'	10-3F	drivers/media/video/dabusb.h	conflict!
 | |
| 'd'	C0-CF	drivers/media/video/saa7191.h	conflict!
 | |
| 'd'	F0-FF	linux/digi1.h
 | |
| 'e'	all	linux/digi1.h		conflict!
 | |
| 'e'	00-1F	drivers/net/irda/irtty-sir.h	conflict!
 | |
| 'f'	00-1F	linux/ext2_fs.h		conflict!
 | |
| 'f'	00-1F	linux/ext3_fs.h		conflict!
 | |
| 'f'	00-0F	fs/jfs/jfs_dinode.h	conflict!
 | |
| 'f'	00-0F	fs/ext4/ext4.h		conflict!
 | |
| 'f'	00-0F	linux/fs.h		conflict!
 | |
| 'f'	00-0F	fs/ocfs2/ocfs2_fs.h	conflict!
 | |
| 'g'	00-0F	linux/usb/gadgetfs.h
 | |
| 'g'	20-2F	linux/usb/g_printer.h
 | |
| 'h'	00-7F				conflict! Charon filesystem
 | |
| 					<mailto:zapman@interlan.net>
 | |
| 'h'	00-1F	linux/hpet.h		conflict!
 | |
| 'i'	00-3F	linux/i2o-dev.h		conflict!
 | |
| 'i'	0B-1F	linux/ipmi.h		conflict!
 | |
| 'i'	80-8F	linux/i8k.h
 | |
| 'j'	00-3F	linux/joystick.h
 | |
| 'k'	00-0F	linux/spi/spidev.h	conflict!
 | |
| 'k'	00-05	video/kyro.h		conflict!
 | |
| 'l'	00-3F	linux/tcfs_fs.h		transparent cryptographic file system
 | |
| 					<http://web.archive.org/web/*/http://mikonos.dia.unisa.it/tcfs>
 | |
| 'l'	40-7F	linux/udf_fs_i.h	in development:
 | |
| 					<http://sourceforge.net/projects/linux-udf/>
 | |
| 'm'	00-09	linux/mmtimer.h		conflict!
 | |
| 'm'	all	linux/mtio.h		conflict!
 | |
| 'm'	all	linux/soundcard.h	conflict!
 | |
| 'm'	all	linux/synclink.h	conflict!
 | |
| 'm'	00-19	drivers/message/fusion/mptctl.h	conflict!
 | |
| 'm'	00	drivers/scsi/megaraid/megaraid_ioctl.h	conflict!
 | |
| 'm'	00-1F	net/irda/irmod.h	conflict!
 | |
| 'n'	00-7F	linux/ncp_fs.h and fs/ncpfs/ioctl.c
 | |
| 'n'	80-8F	linux/nilfs2_fs.h	NILFS2
 | |
| 'n'	E0-FF	linux/matroxfb.h	matroxfb
 | |
| 'o'	00-1F	fs/ocfs2/ocfs2_fs.h	OCFS2
 | |
| 'o'     00-03   mtd/ubi-user.h		conflict! (OCFS2 and UBI overlaps)
 | |
| 'o'     40-41   mtd/ubi-user.h		UBI
 | |
| 'o'     01-A1   linux/dvb/*.h		DVB
 | |
| 'p'	00-0F	linux/phantom.h		conflict! (OpenHaptics needs this)
 | |
| 'p'	00-1F	linux/rtc.h		conflict!
 | |
| 'p'	00-3F	linux/mc146818rtc.h	conflict!
 | |
| 'p'	40-7F	linux/nvram.h
 | |
| 'p'	80-9F	linux/ppdev.h		user-space parport
 | |
| 					<mailto:tim@cyberelk.net>
 | |
| 'p'	A1-A4	linux/pps.h		LinuxPPS
 | |
| 					<mailto:giometti@linux.it>
 | |
| 'q'	00-1F	linux/serio.h
 | |
| 'q'	80-FF	linux/telephony.h	Internet PhoneJACK, Internet LineJACK
 | |
| 		linux/ixjuser.h		<http://web.archive.org/web/*/http://www.quicknet.net>
 | |
| 'r'	00-1F	linux/msdos_fs.h and fs/fat/dir.c
 | |
| 's'	all	linux/cdk.h
 | |
| 't'	00-7F	linux/if_ppp.h
 | |
| 't'	80-8F	linux/isdn_ppp.h
 | |
| 't'	90	linux/toshiba.h
 | |
| 'u'	00-1F	linux/smb_fs.h		gone
 | |
| 'v'	00-1F	linux/ext2_fs.h		conflict!
 | |
| 'v'	00-1F	linux/fs.h		conflict!
 | |
| 'v'	00-0F	linux/sonypi.h		conflict!
 | |
| 'v'	C0-DF	media/pwc-ioctl.h	conflict!
 | |
| 'v'	C0-FF	linux/meye.h		conflict!
 | |
| 'v'	D0-DF	drivers/media/video/cpia2/cpia2dev.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	conflict!
 | |
| 					<mailto:hdstich@connectu.ulm.circular.de>
 | |
| 'z'	40-7F				CAN bus card	conflict!
 | |
| 					<mailto:oe@port.de>
 | |
| 'z'	10-4F	drivers/s390/crypto/zcrypt_api.h	conflict!
 | |
| 0x80	00-1F	linux/fb.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	E0-EF	linux/dn.h		PROTOPRIVATE range
 | |
| 0x89	F0-FF	linux/sockios.h		SIOCDEVPRIVATE range
 | |
| 0x8B	all	linux/wireless.h
 | |
| 0x8C	00-3F				WiNRADiO driver
 | |
| 					<http://www.winradio.com.au/>
 | |
| 0x90	00	drivers/cdrom/sbpcd.h
 | |
| 0x92	00-0F	drivers/usb/mon/mon_bin.c
 | |
| 0x93	60-7F	linux/auto_fs.h
 | |
| 0x94	all	fs/btrfs/ioctl.h
 | |
| 0x97	00-7F	fs/ceph/ioctl.h		Ceph file system
 | |
| 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@vger.kernel.org>
 | |
| 0xB0	all	RATIO devices		in development:
 | |
| 					<mailto:vgo@ratio.de>
 | |
| 0xB1	00-1F	PPPoX			<mailto:mostrows@styx.uwaterloo.ca>
 | |
| 0xC0	00-0F	linux/usb/iowarrior.h
 | |
| 0xCB	00-1F	CBM serial IEC bus	in development:
 | |
| 					<mailto:michael.klein@puffin.lb.shuttle.de>
 | |
| 0xCD	01	linux/reiserfs_fs.h
 | |
| 0xCF	02	fs/cifs/ioctl.c
 | |
| 0xDB	00-0F	drivers/char/mwave/mwavepub.h
 | |
| 0xDD	00-3F	ZFCP device driver	see drivers/s390/scsi/
 | |
| 					<mailto:aherrman@de.ibm.com>
 | |
| 0xF3	00-3F	drivers/usb/misc/sisusbvga/sisusb.h	sisfb (in development)
 | |
| 					<mailto:thomas@winischhofer.net>
 | |
| 0xF4	00-1F	video/mbxfb.h		mbxfb
 | |
| 					<mailto:raph@8d.com>
 | |
| 0xFD	all	linux/dm-ioctl.h
 |