.\" Ioctl List 1.3.27 is copyright 1995 by Michael Elizabeth Chastain.
.\" Michael Elizabeth Chastain
.\" <mec@duracef.shout.net>
.\"
.\" %%%LICENSE_START(GPLv2_MISC)
.\" It is licensed under the GNU General Public License, Version 2.
.\" %%%LICENSE_END
.\"
.\" Ioctl List 1.3.27
.\" Sun 17 Sep 1995
.\"
.\" // Copyright
.\"
.\"
.\"
.\" // Change Log
.\"
.\" 1.3.27	421 ioctls.
.\" 	Type information for non-pointer args.
.\" 	SIOCDEVPRIVATE, SIOCPROTOPRIVATE ioctls.
.\" 	Descriptions of extended arguments.
.\"
.\" 1.2.9	365 ioctls.
.\" 	First public version.
.\"
.\"
.\" 2007-12-29 Alain Portal <aportal@univ-montp2.fr> and Michael Kerrisk
.\"     <mtk.manpages@gmail.com>:
.\"          Various formatting improvements
.\"
.TH IOCTL_LIST 2 2016-03-15 "Linux" "Linux Programmer's Manual"
.SH NAME
ioctl_list \- list of ioctl calls in Linux/i386 kernel
.SH DESCRIPTION
This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel
1.3.27.
It contains 421 ioctls from
.IR </usr/include/{asm,linux}/*.h> .
For each ioctl, its numerical value, its name, and its argument
type are given.
.PP
An argument type of
.I "const struct foo\ *"
means the argument is input to the kernel.
.I "struct foo\ *"
means the kernel outputs the argument.
If the kernel uses the argument for both input and output, this is
marked with \fI//\ I-O\fP.
.PP
Some ioctls take more arguments or return more values than a single
structure.
These are marked \fI//\ MORE\fP and documented further in a
separate section.
.PP
This list is very incomplete.
.SS ioctl structure
.\" added two sections - aeb
Ioctl command values are 32-bit constants.
In principle these constants are completely arbitrary, but people have
tried to build some structure into them.
.LP
The old Linux situation was that of mostly 16-bit constants, where the
last byte is a serial number, and the preceding byte(s) give a type
indicating the driver.
Sometimes the major number was used: 0x03
for the
.B HDIO_*
ioctls, 0x06 for the
.B LP*
ioctls.
And sometimes
one or more ASCII letters were used.
For example,
.B TCGETS
has value
0x00005401, with 0x54 = \(aqT\(aq indicating the terminal driver, and
.B CYGETTIMEOUT
has value 0x00435906, with 0x43 0x59 = \(aqC\(aq \(aqY\(aq
indicating the cyclades driver.
.LP
Later (0.98p5) some more information was built into the number.
One has 2 direction bits
(00: none, 01: write, 10: read, 11: read/write)
followed by 14 size bits (giving the size of the argument),
followed by an 8-bit type (collecting the ioctls in groups
for a common purpose or a common driver), and an 8-bit
serial number.
.LP
The macros describing this structure live in
.I <asm/ioctl.h>
and are
.B _IO(type,nr)
and
.BR "{_IOR,_IOW,_IOWR}(type,nr,size)" .
They use
.I sizeof(size)
so that size is a
misnomer here: this third argument is a data type.
.LP
Note that the size bits are very unreliable: in lots of cases
they are wrong, either because of buggy macros using
.IR sizeof(sizeof(struct)) ,
or because of legacy values.
.LP
Thus, it seems that the new structure only gave disadvantages:
it does not help in checking, but it causes varying values
for the various architectures.
.SH RETURN VALUE
Decent ioctls return 0 on success and \-1 on error, while
any output value is stored via the argument.
However,
quite a few ioctls in fact return an output value.
This is not yet indicated below.

// Main table.

// <include/asm-i386/socket.h>
.TS
l l l.
0x00008901	FIOSETOWN	const int *
0x00008902	SIOCSPGRP	const int *
0x00008903	FIOGETOWN	int *
0x00008904	SIOCGPGRP	int *
0x00008905	SIOCATMAR	int *
0x00008906	SIOCGSTAMP	timeval *
.TE

// <include/asm-i386/termios.h>
.TS
l l l l.
0x00005401	TCGETS	struct termios *
0x00005402	TCSETS	const struct termios *
0x00005403	TCSETSW	const struct termios *
0x00005404	TCSETSF	const struct termios *
0x00005405	TCGETA	struct termio *
0x00005406	TCSETA	const struct termio *
0x00005407	TCSETAW	const struct termio *
0x00005408	TCSETAF	const struct termio *
0x00005409	TCSBRK	int
0x0000540A	TCXONC	int
0x0000540B	TCFLSH	int
0x0000540C	TIOCEXCL	void
0x0000540D	TIOCNXCL	void
0x0000540E	TIOCSCTTY	int
0x0000540F	TIOCGPGRP	pid_t *
0x00005410	TIOCSPGRP	const pid_t *
0x00005411	TIOCOUTQ	int *
0x00005412	TIOCSTI	const char *
0x00005413	TIOCGWINSZ	struct winsize *
0x00005414	TIOCSWINSZ	const struct winsize *
0x00005415	TIOCMGET	int *
0x00005416	TIOCMBIS	const int *
0x00005417	TIOCMBIC	const int *
0x00005418	TIOCMSET	const int *
0x00005419	TIOCGSOFTCAR	int *
0x0000541A	TIOCSSOFTCAR	const int *
0x0000541B	FIONREAD	int *
0x0000541B	TIOCINQ	int *
0x0000541C	TIOCLINUX	const char *	// MORE
0x0000541D	TIOCCONS	void
0x0000541E	TIOCGSERIAL	struct serial_struct *
0x0000541F	TIOCSSERIAL	const struct serial_struct *
0x00005420	TIOCPKT	const int *
0x00005421	FIONBIO	const int *
0x00005422	TIOCNOTTY	void
0x00005423	TIOCSETD	const int *
0x00005424	TIOCGETD	int *
0x00005425	TCSBRKP	int
0x00005426	TIOCTTYGSTRUCT	struct tty_struct *
0x00005450	FIONCLEX	void
0x00005451	FIOCLEX	void
0x00005452	FIOASYNC	const int *
0x00005453	TIOCSERCONFIG	void
0x00005454	TIOCSERGWILD	int *
0x00005455	TIOCSERSWILD	const int *
0x00005456	TIOCGLCKTRMIOS	struct termios *
0x00005457	TIOCSLCKTRMIOS	const struct termios *
0x00005458	TIOCSERGSTRUCT	struct async_struct *
0x00005459	TIOCSERGETLSR	int *
.TE
.\" Some tables are split into two or more to avoid the warning:
.\" "table wider than line width".  Some lines are to long to fit
.\" on one line on an 80 columns console
.TS
l l l.
0x0000545A	TIOCSERGETMULTI	struct serial_multiport_struct *
0x0000545B	TIOCSERSETMULTI	const struct serial_multiport_struct *
.TE

// <include/linux/ax25.h>
.TS
l l l l.
0x000089E0	SIOCAX25GETUID	const struct sockaddr_ax25 *
0x000089E1	SIOCAX25ADDUID	const struct sockaddr_ax25 *
0x000089E2	SIOCAX25DELUID	const struct sockaddr_ax25 *
0x000089E3	SIOCAX25NOUID	const int *
0x000089E4	SIOCAX25DIGCTL	const int *
0x000089E5	SIOCAX25GETPARMS	struct ax25_parms_struct *	// I-O
.TE
.TS
l l l.
0x000089E6	SIOCAX25SETPARMS	const struct ax25_parms_struct *
.TE

// <include/linux/cdk.h>
.TS
l l l.
0x00007314	STL_BINTR	void
0x00007315	STL_BSTART	void
0x00007316	STL_BSTOP	void
0x00007317	STL_BRESET	void
.TE

// <include/linux/cdrom.h>
.TS
l l l.
0x00005301	CDROMPAUSE	void
0x00005302	CDROMRESUME	void
0x00005303	CDROMPLAYMSF	const struct cdrom_msf *
0x00005304	CDROMPLAYTRKIND	const struct cdrom_ti *
0x00005305	CDROMREADTOCHDR	struct cdrom_tochdr *
.TE
.TS
l l l l.
0x00005306	CDROMREADTOCENTRY	struct cdrom_tocentry *	// I-O
.TE
.TS
l l l l.
0x00005307	CDROMSTOP	void
0x00005308	CDROMSTART	void
0x00005309	CDROMEJECT	void
0x0000530A	CDROMVOLCTRL	const struct cdrom_volctrl *
0x0000530B	CDROMSUBCHNL	struct cdrom_subchnl *	// I-O
0x0000530C	CDROMREADMODE2	const struct cdrom_msf *	// MORE
0x0000530D	CDROMREADMODE1	const struct cdrom_msf *	// MORE
0x0000530E	CDROMREADAUDIO	const struct cdrom_read_audio *	// MORE
0x0000530F	CDROMEJECT_SW	int
.TE
.TS
l l l l.
0x00005310	CDROMMULTISESSION	struct cdrom_multisession *	// I-O
.TE
.TS
l l l l.
0x00005311	CDROM_GET_UPC	struct { char [8]; } *
0x00005312	CDROMRESET	void
0x00005313	CDROMVOLREAD	struct cdrom_volctrl *
0x00005314	CDROMREADRAW	const struct cdrom_msf *	// MORE
0x00005315	CDROMREADCOOKED	const struct cdrom_msf *	// MORE
0x00005316	CDROMSEEK	const struct cdrom_msf *
.TE

// <include/linux/cm206.h>
.TS
l l l.
0x00002000	CM206CTL_GET_STAT	int
0x00002001	CM206CTL_GET_LAST_STAT	int
.TE

// <include/linux/cyclades.h>
.TS
l l l.
0x00435901	CYGETMON	struct cyclades_monitor *
0x00435902	CYGETTHRESH	int *
0x00435903	CYSETTHRESH	int
0x00435904	CYGETDEFTHRESH	int *
0x00435905	CYSETDEFTHRESH	int
0x00435906	CYGETTIMEOUT	int *
0x00435907	CYSETTIMEOUT	int
0x00435908	CYGETDEFTIMEOUT	int *
0x00435909	CYSETDEFTIMEOUT	int
.TE

// <include/linux/fd.h>
.TS
l l l.
0x00000000	FDCLRPRM	void
0x00000001	FDSETPRM	const struct floppy_struct *
0x00000002	FDDEFPRM	const struct floppy_struct *
0x00000003	FDGETPRM	struct floppy_struct *
0x00000004	FDMSGON	void
0x00000005	FDMSGOFF	void
0x00000006	FDFMTBEG	void
0x00000007	FDFMTTRK	const struct format_descr *
0x00000008	FDFMTEND	void
0x0000000A	FDSETEMSGTRESH	int
0x0000000B	FDFLUSH	void
0x0000000C	FDSETMAXERRS	const struct floppy_max_errors *
0x0000000E	FDGETMAXERRS	struct floppy_max_errors *
0x00000010	FDGETDRVTYP	struct { char [16]; } *
0x00000014	FDSETDRVPRM	const struct floppy_drive_params *
0x00000015	FDGETDRVPRM	struct floppy_drive_params *
0x00000016	FDGETDRVSTAT	struct floppy_drive_struct *
0x00000017	FDPOLLDRVSTAT	struct floppy_drive_struct *
0x00000018	FDRESET	int
0x00000019	FDGETFDCSTAT	struct floppy_fdc_state *
0x0000001B	FDWERRORCLR	void
0x0000001C	FDWERRORGET	struct floppy_write_errors *
.TE
.TS
l l l l.
0x0000001E	FDRAWCMD	struct floppy_raw_cmd *	// MORE // I-O
0x00000028	FDTWADDLE	void
.TE

// <include/linux/fs.h>
.TS
l l l l.
0x0000125D	BLKROSET	const int *
0x0000125E	BLKROGET	int *
0x0000125F	BLKRRPART	void
0x00001260	BLKGETSIZE	unsigned long *
0x00001261	BLKFLSBUF	void
0x00001262	BLKRASET	int
0x00001263	BLKRAGET	int *
0x00000001	FIBMAP	int *	// I-O
0x00000002	FIGETBSZ	int *
0x80086601	FS_IOC_GETFLAGS	int *
0x40086602	FS_IOC_SETFLAGS	int *
0x80087601	FS_IOC_GETVERSION	int *
0x40087602	FS_IOC_SETVERSION	int *
0xC020660B	FS_IOC_FIEMAP	struct fiemap *
0x40086602	FS_IOC32_SETFLAGS	int *
0x40086602	FS_IOC32_SETFLAGS	int *
0x80047601	FS_IOC32_GETVERSION	int *
0x40047602	FS_IOC32_SETVERSION	int *
.TE

// <include/linux/hdreg.h>
.TS
l l l l.
0x00000301	HDIO_GETGEO	struct hd_geometry *
0x00000302	HDIO_GET_UNMASKINTR	int *
0x00000304	HDIO_GET_MULTCOUNT	int *
0x00000307	HDIO_GET_IDENTITY	struct hd_driveid *
0x00000308	HDIO_GET_KEEPSETTINGS	int *
0x00000309	HDIO_GET_CHIPSET	int *
0x0000030A	HDIO_GET_NOWERR	int *
0x0000030B	HDIO_GET_DMA	int *
0x0000031F	HDIO_DRIVE_CMD	int *	// I-O
0x00000321	HDIO_SET_MULTCOUNT	int
0x00000322	HDIO_SET_UNMASKINTR	int
0x00000323	HDIO_SET_KEEPSETTINGS	int
0x00000324	HDIO_SET_CHIPSET	int
0x00000325	HDIO_SET_NOWERR	int
0x00000326	HDIO_SET_DMA	int
.TE

// <include/linux/if_eql.h>
.TS
l l l l.
0x000089F0	EQL_ENSLAVE	struct ifreq *	// MORE // I-O
0x000089F1	EQL_EMANCIPATE	struct ifreq *	// MORE // I-O
0x000089F2	EQL_GETSLAVECFG	struct ifreq *	// MORE // I-O
0x000089F3	EQL_SETSLAVECFG	struct ifreq *	// MORE // I-O
0x000089F4	EQL_GETMASTRCFG	struct ifreq *	// MORE // I-O
0x000089F5	EQL_SETMASTRCFG	struct ifreq *	// MORE // I-O
.TE

// <include/linux/if_plip.h>
.TS
l l l l.
0x000089F0	SIOCDEVPLIP	struct ifreq *	// I-O
.TE

// <include/linux/if_ppp.h>
.TS
l l l.
0x00005490	PPPIOCGFLAGS	int *
0x00005491	PPPIOCSFLAGS	const int *
0x00005492	PPPIOCGASYNCMAP	int *
0x00005493	PPPIOCSASYNCMAP	const int *
0x00005494	PPPIOCGUNIT	int *
0x00005495	PPPIOCSINPSIG	const int *
0x00005497	PPPIOCSDEBUG	const int *
0x00005498	PPPIOCGDEBUG	int *
0x00005499	PPPIOCGSTAT	struct ppp_stats *
0x0000549A	PPPIOCGTIME	struct ppp_ddinfo *
0x0000549B	PPPIOCGXASYNCMAP	struct { int [8]; } *
0x0000549C	PPPIOCSXASYNCMAP	const struct { int [8]; } *
0x0000549D	PPPIOCSMRU	const int *
0x0000549E	PPPIOCRASYNCMAP	const int *
0x0000549F	PPPIOCSMAXCID	const int *
.TE

// <include/linux/ipx.h>
.TS
l l l.
0x000089E0	SIOCAIPXITFCRT	const char *
0x000089E1	SIOCAIPXPRISLT	const char *
0x000089E2	SIOCIPXCFGDATA	struct ipx_config_data *
.TE

// <include/linux/kd.h>
.TS
l l l.
0x00004B60	GIO_FONT	struct { char [8192]; } *
0x00004B61	PIO_FONT	const struct { char [8192]; } *
.TE
.TS
l2 l2 l2 l.
0x00004B6B	GIO_FONTX	struct console_font_desc *	// MORE // I-O
0x00004B6C	PIO_FONTX	const struct console_font_desc *	//MORE
.TE
.TS
l l l.
0x00004B70	GIO_CMAP	struct { char [48]; } *
0x00004B71	PIO_CMAP	const struct { char [48]; }
.TE
.TS
l l l l.
0x00004B2F	KIOCSOUND	int
0x00004B30	KDMKTONE	int
0x00004B31	KDGETLED	char *
0x00004B32	KDSETLED	int
0x00004B33	KDGKBTYPE	char *
0x00004B34	KDADDIO	int	// MORE
0x00004B35	KDDELIO	int	// MORE
0x00004B36	KDENABIO	void	// MORE
0x00004B37	KDDISABIO	void	// MORE
0x00004B3A	KDSETMODE	int
0x00004B3B	KDGETMODE	int *
0x00004B3C	KDMAPDISP	void	// MORE
0x00004B3D	KDUNMAPDISP	void	// MORE
0x00004B40	GIO_SCRNMAP	struct { char [E_TABSZ]; } *
.TE
.TS
l l l.
0x00004B41	PIO_SCRNMAP	const struct { char [E_TABSZ]; } *
0x00004B69	GIO_UNISCRNMAP	struct { short [E_TABSZ]; } *
0x00004B6A	PIO_UNISCRNMAP	const struct { short [E_TABSZ]; } *
.TE
.TS
l l l l.
0x00004B66	GIO_UNIMAP	struct unimapdesc *	// MORE // I-O
0x00004B67	PIO_UNIMAP	const struct unimapdesc *	// MORE
0x00004B68	PIO_UNIMAPCLR	const struct unimapinit *
0x00004B44	KDGKBMODE	int *
0x00004B45	KDSKBMODE	int
0x00004B62	KDGKBMETA	int *
0x00004B63	KDSKBMETA	int
0x00004B64	KDGKBLED	int *
0x00004B65	KDSKBLED	int
0x00004B46	KDGKBENT	struct kbentry *	// I-O
0x00004B47	KDSKBENT	const struct kbentry *
0x00004B48	KDGKBSENT	struct kbsentry *	// I-O
0x00004B49	KDSKBSENT	const struct kbsentry *
0x00004B4A	KDGKBDIACR	struct kbdiacrs *
0x00004B4B	KDSKBDIACR	const struct kbdiacrs *
0x00004B4C	KDGETKEYCODE	struct kbkeycode *	// I-O
0x00004B4D	KDSETKEYCODE	const struct kbkeycode *
0x00004B4E	KDSIGACCEPT	int
.TE

// <include/linux/lp.h>
.TS
l l l.
0x00000601	LPCHAR	int
0x00000602	LPTIME	int
0x00000604	LPABORT	int
0x00000605	LPSETIRQ	int
0x00000606	LPGETIRQ	int *
0x00000608	LPWAIT	int
0x00000609	LPCAREFUL	int
0x0000060A	LPABORTOPEN	int
0x0000060B	LPGETSTATUS	int *
0x0000060C	LPRESET	void
0x0000060D	LPGETSTATS	struct lp_stats *
.TE

// <include/linux/mroute.h>
.TS
l l l l.
0x000089E0	SIOCGETVIFCNT	struct sioc_vif_req *	// I-O
0x000089E1	SIOCGETSGCNT	struct sioc_sg_req *	// I-O
.TE

// <include/linux/msdos_fs.h> see
.BR ioctl_fat (2)
.TS
l l l l.
0x82307201	VFAT_IOCTL_READDIR_BOTH	struct dirent [2]
0x82307202	VFAT_IOCTL_READDIR_SHORT	struct dirent [2]
0x80047210	FAT_IOCTL_GET_ATTRIBUTES	__u32 *
0x40047211	FAT_IOCTL_SET_ATTRIBUTES	const __u32 *
0x80047213	FAT_IOCTL_GET_VOLUME_ID	__u32 *
.TE

// <include/linux/mtio.h>
.TS
l l l.
0x40086D01	MTIOCTOP	const struct mtop *
0x801C6D02	MTIOCGET	struct mtget *
0x80046D03	MTIOCPOS	struct mtpos *
0x80206D04	MTIOCGETCONFIG	struct mtconfiginfo *
0x40206D05	MTIOCSETCONFIG	const struct mtconfiginfo *
.TE

// <include/linux/netrom.h>
.TS
l l l l.
0x000089E0	SIOCNRGETPARMS	struct nr_parms_struct *	// I-O
0x000089E1	SIOCNRSETPARMS	const struct nr_parms_struct *
0x000089E2	SIOCNRDECOBS	void
0x000089E3	SIOCNRRTCTL	const int *
.TE

// <include/uapi/linux/wireless.h>
.br
// This API is deprecated.
.br
// It is being replaced by nl80211 and cfg80211.
See
.br
//
.I https://wireless.wiki.kernel.org/en/developers/documentation/nl80211
.TS
l l l.
x00008b00	SIOCSIWCOMMIT	struct iwreq *
x00008b01	SIOCGIWNAME	struct iwreq *
x00008b02	SIOCSIWNWID	struct iwreq *
x00008b03	SIOCGIWNWID	struct iwreq *
x00008b04	SIOCSIWFREQ	struct iwreq *
x00008b05	SIOCGIWFREQ	struct iwreq *
x00008b06	SIOCSIWMODE	struct iwreq *
x00008b07	SIOCGIWMODE	struct iwreq *
x00008b08	SIOCSIWSENS	struct iwreq *
x00008b09	SIOCGIWSENS	struct iwreq *
x00008b0a	SIOCSIWRANGE	struct iwreq *
x00008b0b	SIOCGIWRANGE	struct iwreq *
x00008b0c	SIOCSIWPRIV	struct iwreq *
x00008b0d	SIOCGIWPRIV	struct iwreq *
x00008b0e	SIOCSIWSTATS	struct iwreq *
x00008b0f	SIOCGIWSTATS	struct iwreq *
x00008b10	SIOCSIWSPY	struct iwreq *
x00008b11	SIOCGIWSPY	struct iwreq *
x00008b12	SIOCSIWTHRSPY	struct iwreq *
x00008b13	SIOCGIWTHRSPY	struct iwreq *
x00008b14	SIOCSIWAP	struct iwreq *
x00008b15	SIOCGIWAP	struct iwreq *
x00008b17	SIOCGIWAPLIST	struct iwreq *
x00008b18	SIOCSIWSCAN	struct iwreq *
x00008b19	SIOCGIWSCAN	struct iwreq *
x00008b1a	SIOCSIWESSID	struct iwreq *
x00008b1b	SIOCGIWESSID	struct iwreq *
x00008b1c	SIOCSIWNICKN	struct iwreq *
x00008b1d	SIOCGIWNICKN	struct iwreq *
x00008b20	SIOCSIWRATE	struct iwreq *
x00008b21	SIOCGIWRATE	struct iwreq *
x00008b22	SIOCSIWRTS	struct iwreq *
x00008b23	SIOCGIWRTS	struct iwreq *
x00008b24	SIOCSIWFRAG	struct iwreq *
x00008b25	SIOCGIWFRAG	struct iwreq *
x00008b26	SIOCSIWTXPOW	struct iwreq *
x00008b27	SIOCGIWTXPOW	struct iwreq *
x00008b28	SIOCSIWRETRY	struct iwreq *
x00008b29	SIOCGIWRETRY	struct iwreq *
x00008b2a	SIOCSIWENCODE	struct iwreq *
x00008b2b	SIOCGIWENCODE	struct iwreq *
x00008b2c	SIOCSIWPOWER	struct iwreq *
x00008b2d	SIOCGIWPOWER	struct iwreq *
x00008b30	SIOCSIWGENIE	struct iwreq *
x00008b31	SIOCGIWGENIE	struct iwreq *
x00008b16	SIOCSIWMLME	struct iwreq *
x00008b32	SIOCSIWAUTH	struct iwreq *
x00008b33	SIOCGIWAUTH	struct iwreq *
x00008b34	SIOCSIWENCODEEXT	struct iwreq *
x00008b35	SIOCGIWENCODEEXT	struct iwreq *
x00008b36	SIOCSIWPMKSA	struct iwreq *
.TE

// <include/linux/sbpcd.h>
.TS
l l l.
0x00009000	DDIOCSDBG	const int *
0x00005382	CDROMAUDIOBUFSIZ	int
.TE

// <include/linux/scc.h>
.TS
l l l l.
0x00005470	TIOCSCCINI	void
0x00005471	TIOCCHANINI	const struct scc_modem *
0x00005472	TIOCGKISS	struct ioctl_command *	// I-O
0x00005473	TIOCSKISS	const struct ioctl_command *
0x00005474	TIOCSCCSTAT	struct scc_stat *
.TE

// <include/linux/scsi.h>
.TS
l l l.
0x00005382	SCSI_IOCTL_GET_IDLUN       struct { int [2]; } *
0x00005383	SCSI_IOCTL_TAGGED_ENABLE   void
0x00005384	SCSI_IOCTL_TAGGED_DISABLE  void
.TE
.TS
l l l l.
0x00005385	SCSI_IOCTL_PROBE_HOST	const int *	// MORE
.TE

// <include/linux/smb_fs.h>
.TS
l l l.
0x80027501	SMB_IOC_GETMOUNTUID	uid_t *
.TE

// <include/uapi/linux/sockios.h> see
.BR netdevice (7)

.TS
l l l l.
0x0000890B	SIOCADDRT	const struct rtentry *	// MORE
0x0000890C	SIOCDELRT	const struct rtentry *	// MORE
0x00008910	SIOCGIFNAME	char []
0x00008911	SIOCSIFLINK	void
0x00008912	SIOCGIFCONF	struct ifconf *	// MORE // I-O
0x00008913	SIOCGIFFLAGS	struct ifreq *	// I-O
0x00008914	SIOCSIFFLAGS	const struct ifreq *
0x00008915	SIOCGIFADDR	struct ifreq *	// I-O
0x00008916	SIOCSIFADDR	const struct ifreq *
0x00008917	SIOCGIFDSTADDR	struct ifreq *	// I-O
0x00008918	SIOCSIFDSTADDR	const struct ifreq *
0x00008919	SIOCGIFBRDADDR	struct ifreq *	// I-O
0x0000891A	SIOCSIFBRDADDR	const struct ifreq *
0x0000891B	SIOCGIFNETMASK	struct ifreq *	// I-O
0x0000891C	SIOCSIFNETMASK	const struct ifreq *
0x0000891D	SIOCGIFMETRIC	struct ifreq *	// I-O
0x0000891E	SIOCSIFMETRIC	const struct ifreq *
0x0000891F	SIOCGIFMEM	struct ifreq *	// I-O
0x00008920	SIOCSIFMEM	const struct ifreq *
0x00008921	SIOCGIFMTU	struct ifreq *	// I-O
0x00008922	SIOCSIFMTU	const struct ifreq *
.TE
.TS
l l l l.
0x00008923	OLD_SIOCGIFHWADDR	struct ifreq *	// I-O
0x00008924	SIOCSIFHWADDR	const struct ifreq *	// MORE
0x00008925	SIOCGIFENCAP	int *
0x00008926	SIOCSIFENCAP	const int *
0x00008927	SIOCGIFHWADDR	struct ifreq *	// I-O
0x00008929	SIOCGIFSLAVE	void
0x00008930	SIOCSIFSLAVE	void
0x00008931	SIOCADDMULTI	const struct ifreq *
0x00008932	SIOCDELMULTI	const struct ifreq *
0x00008940	SIOCADDRTOLD	void
0x00008941	SIOCDELRTOLD	void
0x00008950	SIOCDARP	const struct arpreq *
0x00008951	SIOCGARP	struct arpreq *	// I-O
0x00008952	SIOCSARP	const struct arpreq *
0x00008960	SIOCDRARP	const struct arpreq *
0x00008961	SIOCGRARP	struct arpreq *	// I-O
0x00008962	SIOCSRARP	const struct arpreq *
0x00008970	SIOCGIFMAP	struct ifreq *	// I-O
0x00008971	SIOCSIFMAP	const struct ifreq *
.TE

// <include/linux/soundcard.h>
.TS
l l l.
0x00005100	SNDCTL_SEQ_RESET	void
0x00005101	SNDCTL_SEQ_SYNC	void
.TE
.TS
l l l l.
0xC08C5102	SNDCTL_SYNTH_INFO	struct synth_info *	// I-O
0xC0045103	SNDCTL_SEQ_CTRLRATE	int *	// I-O
0x80045104	SNDCTL_SEQ_GETOUTCOUNT	int *
0x80045105	SNDCTL_SEQ_GETINCOUNT	int *
0x40045106	SNDCTL_SEQ_PERCMODE	void
.TE
.TS
l l l.
0x40285107	SNDCTL_FM_LOAD_INSTR	const struct sbi_instrument *
.TE
.TS
l l l l.
0x40045108	SNDCTL_SEQ_TESTMIDI	const int *
0x40045109	SNDCTL_SEQ_RESETSAMPLES	const int *
0x8004510A	SNDCTL_SEQ_NRSYNTHS	int *
0x8004510B	SNDCTL_SEQ_NRMIDIS	int *
0xC074510C	SNDCTL_MIDI_INFO	struct midi_info *	// I-O
0x4004510D	SNDCTL_SEQ_THRESHOLD	const int *
0xC004510E	SNDCTL_SYNTH_MEMAVL	int *	// I-O
0x4004510F	SNDCTL_FM_4OP_ENABLE	const int *
0xCFB85110	SNDCTL_PMGR_ACCESS	struct patmgr_info *	// I-O
0x00005111	SNDCTL_SEQ_PANIC	void
.TE
.TS
l l l.
0x40085112	SNDCTL_SEQ_OUTOFBAND	const struct seq_event_rec *
.TE
.TS
l l l l.
0xC0045401	SNDCTL_TMR_TIMEBASE	int *	// I-O
0x00005402	SNDCTL_TMR_START	void
0x00005403	SNDCTL_TMR_STOP	void
0x00005404	SNDCTL_TMR_CONTINUE	void
0xC0045405	SNDCTL_TMR_TEMPO	int *	// I-O
0xC0045406	SNDCTL_TMR_SOURCE	int *	// I-O
0x40045407	SNDCTL_TMR_METRONOME	const int *
0x40045408	SNDCTL_TMR_SELECT	int *	// I-O
0xCFB85001	SNDCTL_PMGR_IFACE	struct patmgr_info *	// I-O
0xC0046D00	SNDCTL_MIDI_PRETIME	int *	// I-O
0xC0046D01	SNDCTL_MIDI_MPUMODE	const int *
.TE
.TS
l l l l.
0xC0216D02	SNDCTL_MIDI_MPUCMD	struct mpu_command_rec *	// I-O
.TE
.TS
l l l l.
0x00005000	SNDCTL_DSP_RESET	void
0x00005001	SNDCTL_DSP_SYNC	void
0xC0045002	SNDCTL_DSP_SPEED	int *	// I-O
0xC0045003	SNDCTL_DSP_STEREO	int *	// I-O
0xC0045004	SNDCTL_DSP_GETBLKSIZE	int *	// I-O
0xC0045006	SOUND_PCM_WRITE_CHANNELS	int *	// I-O
0xC0045007	SOUND_PCM_WRITE_FILTER	int *	// I-O
0x00005008	SNDCTL_DSP_POST	void
0xC0045009	SNDCTL_DSP_SUBDIVIDE	int *	// I-O
0xC004500A	SNDCTL_DSP_SETFRAGMENT	int *	// I-O
0x8004500B	SNDCTL_DSP_GETFMTS	int *
0xC0045005	SNDCTL_DSP_SETFMT	int *	// I-O
.TE
.TS
l l l.
0x800C500C	SNDCTL_DSP_GETOSPACE	struct audio_buf_info *
0x800C500D	SNDCTL_DSP_GETISPACE	struct audio_buf_info *
0x0000500E	SNDCTL_DSP_NONBLOCK	void
0x80045002	SOUND_PCM_READ_RATE	int *
0x80045006	SOUND_PCM_READ_CHANNELS	int *
0x80045005	SOUND_PCM_READ_BITS	int *
0x80045007	SOUND_PCM_READ_FILTER	int *
0x00004300	SNDCTL_COPR_RESET	void
0xCFB04301	SNDCTL_COPR_LOAD	const struct copr_buffer *
.TE
.TS
l l l l.
0xC0144302	SNDCTL_COPR_RDATA	struct copr_debug_buf *	// I-O
0xC0144303	SNDCTL_COPR_RCODE	struct copr_debug_buf *	// I-O
.TE
.TS
l l l.
0x40144304	SNDCTL_COPR_WDATA	const struct copr_debug_buf *
0x40144305	SNDCTL_COPR_WCODE	const struct copr_debug_buf *
.TE
.TS
l l l l.
0xC0144306	SNDCTL_COPR_RUN	struct copr_debug_buf *	// I-O
0xC0144307	SNDCTL_COPR_HALT	struct copr_debug_buf *	// I-O
.TE
.TS
l l l.
0x4FA44308	SNDCTL_COPR_SENDMSG	const struct copr_msg *
0x8FA44309	SNDCTL_COPR_RCVMSG	struct copr_msg *
0x80044D00	SOUND_MIXER_READ_VOLUME	int *
0x80044D01	SOUND_MIXER_READ_BASS	int *
0x80044D02	SOUND_MIXER_READ_TREBLE	int *
0x80044D03	SOUND_MIXER_READ_SYNTH	int *
0x80044D04	SOUND_MIXER_READ_PCM	int *
0x80044D05	SOUND_MIXER_READ_SPEAKER	int *
0x80044D06	SOUND_MIXER_READ_LINE	int *
0x80044D07	SOUND_MIXER_READ_MIC	int *
0x80044D08	SOUND_MIXER_READ_CD	int *
0x80044D09	SOUND_MIXER_READ_IMIX	int *
0x80044D0A	SOUND_MIXER_READ_ALTPCM	int *
0x80044D0B	SOUND_MIXER_READ_RECLEV	int *
0x80044D0C	SOUND_MIXER_READ_IGAIN	int *
0x80044D0D	SOUND_MIXER_READ_OGAIN	int *
0x80044D0E	SOUND_MIXER_READ_LINE1	int *
0x80044D0F	SOUND_MIXER_READ_LINE2	int *
0x80044D10	SOUND_MIXER_READ_LINE3	int *
0x80044D1C	SOUND_MIXER_READ_MUTE	int *
0x80044D1D	SOUND_MIXER_READ_ENHANCE	int *
0x80044D1E	SOUND_MIXER_READ_LOUD	int *
0x80044DFF	SOUND_MIXER_READ_RECSRC	int *
0x80044DFE	SOUND_MIXER_READ_DEVMASK	int *
0x80044DFD	SOUND_MIXER_READ_RECMASK	int *
0x80044DFB	SOUND_MIXER_READ_STEREODEVS	int *
0x80044DFC	SOUND_MIXER_READ_CAPS	int *
.TE
.TS
l l l l.
0xC0044D00	SOUND_MIXER_WRITE_VOLUME	int *	// I-O
0xC0044D01	SOUND_MIXER_WRITE_BASS	int *	// I-O
0xC0044D02	SOUND_MIXER_WRITE_TREBLE	int *	// I-O
0xC0044D03	SOUND_MIXER_WRITE_SYNTH	int *	// I-O
0xC0044D04	SOUND_MIXER_WRITE_PCM	int *	// I-O
0xC0044D05	SOUND_MIXER_WRITE_SPEAKER	int *	// I-O
0xC0044D06	SOUND_MIXER_WRITE_LINE	int *	// I-O
0xC0044D07	SOUND_MIXER_WRITE_MIC	int *	// I-O
0xC0044D08	SOUND_MIXER_WRITE_CD	int *	// I-O
0xC0044D09	SOUND_MIXER_WRITE_IMIX	int *	// I-O
0xC0044D0A	SOUND_MIXER_WRITE_ALTPCM	int *	// I-O
0xC0044D0B	SOUND_MIXER_WRITE_RECLEV	int *	// I-O
0xC0044D0C	SOUND_MIXER_WRITE_IGAIN	int *	// I-O
0xC0044D0D	SOUND_MIXER_WRITE_OGAIN	int *	// I-O
0xC0044D0E	SOUND_MIXER_WRITE_LINE1	int *	// I-O
0xC0044D0F	SOUND_MIXER_WRITE_LINE2	int *	// I-O
0xC0044D10	SOUND_MIXER_WRITE_LINE3	int *	// I-O
0xC0044D1C	SOUND_MIXER_WRITE_MUTE	int *	// I-O
0xC0044D1D	SOUND_MIXER_WRITE_ENHANCE	int *	// I-O
0xC0044D1E	SOUND_MIXER_WRITE_LOUD	int *	// I-O
0xC0044DFF	SOUND_MIXER_WRITE_RECSRC	int *	// I-O
.TE

// <include/linux/timerfd.h> see
.BR timerfd_create (2)
.TS
l l l l.
0x40085400	TFD_IOC_SET_TICKS	uint64_t *
.TE

// <include/linux/umsdos_fs.h>
.TS
l l l l.
0x000004D2	UMSDOS_READDIR_DOS	struct umsdos_ioctl *	// I-O
0x000004D3	UMSDOS_UNLINK_DOS	const struct umsdos_ioctl *
0x000004D4	UMSDOS_RMDIR_DOS	const struct umsdos_ioctl *
0x000004D5	UMSDOS_STAT_DOS	struct umsdos_ioctl *	// I-O
0x000004D6	UMSDOS_CREAT_EMD	const struct umsdos_ioctl *
0x000004D7	UMSDOS_UNLINK_EMD	const struct umsdos_ioctl *
0x000004D8	UMSDOS_READDIR_EMD	struct umsdos_ioctl *	// I-O
0x000004D9	UMSDOS_GETVERSION	struct umsdos_ioctl *
0x000004DA	UMSDOS_INIT_EMD	void
0x000004DB	UMSDOS_DOS_SETUP	const struct umsdos_ioctl *
0x000004DC	UMSDOS_RENAME_DOS	const struct umsdos_ioctl *
.TE

// <include/linux/vt.h>
.TS
l l l.
0x00005600	VT_OPENQRY	int *
0x00005601	VT_GETMODE	struct vt_mode *
0x00005602	VT_SETMODE	const struct vt_mode *
0x00005603	VT_GETSTATE	struct vt_stat *
0x00005604	VT_SENDSIG	void
0x00005605	VT_RELDISP	int
0x00005606	VT_ACTIVATE	int
0x00005607	VT_WAITACTIVE	int
0x00005608	VT_DISALLOCATE	int
0x00005609	VT_RESIZE	const struct vt_sizes *
0x0000560A	VT_RESIZEX	const struct vt_consize *
.TE

// More arguments.
Some ioctl's take a pointer to a structure which contains additional
pointers.
These are documented here in alphabetical order.

.B CDROMREADAUDIO
takes an input pointer
.IR "const struct cdrom_read_audio\ *" .
The
.I buf
field points to an output buffer of length
.IR "nframes\ * CD_FRAMESIZE_RAW" .

.BR CDROMREADCOOKED ,
.BR CDROMREADMODE1 ,
.BR CDROMREADMODE2 ,
and
.B CDROMREADRAW
take an input pointer
.IR "const struct cdrom_msf\ *" .
They use the same pointer as an output pointer to
.IR "char []" .
The length varies by request.
For
.BR CDROMREADMODE1 ,
most drivers use CD_FRAMESIZE, but the Optics Storage
driver uses OPT_BLOCKSIZE instead (both have the numerical value
2048).
.nf

    CDROMREADCOOKED    char [CD_FRAMESIZE]
    CDROMREADMODE1     char [CD_FRAMESIZE or OPT_BLOCKSIZE]
    CDROMREADMODE2     char [CD_FRAMESIZE_RAW0]
    CDROMREADRAW       char [CD_FRAMESIZE_RAW]

.fi
.BR EQL_ENSLAVE ,
.BR EQL_EMANCIPATE ,
.BR EQL_GETSLAVECFG ,
.BR EQL_SETSLAVECFG ,
.BR EQL_GETMASTERCFG ,
and
.B EQL_SETMASTERCFG
take a
.IR "struct ifreq\ *" .
The
.I ifr_data
field is a pointer to another structure as follows:
.nf

    EQL_ENSLAVE         const struct slaving_request *
    EQL_EMANCIPATE      const struct slaving_request *
    EQL_GETSLAVECFG     struct slave_config *           // I-O
    EQL_SETSLAVECFG     const struct slave_config *
    EQL_GETMASTERCFG    struct master_config *
    EQL_SETMASTERCFG    const struct master_config *

.fi
.B FDRAWCMD
takes a
.IR "struct floppy raw_cmd\ *" .
If
.I flags & FD_RAW_WRITE
is nonzero, then
.I data
points to an input buffer of length
.IR length .
If
.I flags & FD_RAW_READ
is nonzero, then
.I data
points to an output buffer of length
.IR length .

.B GIO_FONTX
and
.B PIO_FONTX
take a
.I struct console_font_desc\ *
or a
.IR "const struct console_font_desc\ *" ,
respectively.
.I chardata
points to a buffer of
.IR "char [charcount]" .
This is an output buffer for
.B GIO_FONTX
and an input buffer for
.BR PIO_FONTX .

.B GIO_UNIMAP
and
.B PIO_UNIMAP
take a
.I "struct unimapdesc\ *"
or a
.IR "const struct unimapdesc\ *" ,
respectively.
.I entries
points to a buffer of
.IR "struct unipair [entry_ct]" .
This is an output buffer for
.B GIO_UNIMAP
and an input buffer for
.BR PIO_UNIMAP .

KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to
I/O ports.
They are essentially alternate interfaces to 'ioperm'.

.B KDMAPDISP
and
.B KDUNMAPDISP
enable or disable memory mappings or I/O port access.
They are not implemented in the kernel.

.B SCSI_IOCTL_PROBE_HOST
takes an input pointer
.IR "const int\ *" ,
which is a length.
It uses the same pointer as an output pointer to a
.I char []
buffer of this length.

.B SIOCADDRT
and
.B SIOCDELRT
take an input pointer whose type depends on
the protocol:
.nf

    Most protocols      const struct rtentry *
    AX.25               const struct ax25_route *
    NET/ROM             const struct nr_route_struct *
    INET6               const struct in6_rtmsg *

.fi
.B SIOCGIFCONF
takes a
.IR "struct ifconf\ *" .
The
.I ifc_buf
field points to a buffer of length
.I ifc_len
bytes, into which the kernel writes a list of type
.IR "struct ifreq []" .

.B SIOCSIFHWADDR
takes an input pointer whose type depends on the protocol:
.nf

    Most protocols      const struct ifreq *
    AX.25               const char [AX25_ADDR_LEN]

.fi
.B TIOCLINUX
takes a
.IR "const char\ *" .
It uses this to distinguish several
independent subcases.
In the table below,
.I N + foo
means
.I foo
after an N-byte pad.
.I struct selection
is implicitly defined in
.IR drivers/char/selection.c
.nf

    TIOCLINUX-2         1 + const struct selection *
    TIOCLINUX-3         void
    TIOCLINUX-4         void
    TIOCLINUX-5         4 + const struct { long [8]; } *
    TIOCLINUX-6         char *
    TIOCLINUX-7         char *
    TIOCLINUX-10        1 + const char *

.fi
// Duplicate ioctls

This list does not include ioctls in the range
.B SIOCDEVPRIVATE
and
.BR SIOCPROTOPRIVATE .
.TS
l l l.
0x00000001	FDSETPRM	FIBMAP
0x00000002	FDDEFPRM	FIGETBSZ
0x00005382	CDROMAUDIOBUFSIZ	SCSI_IOCTL_GET_IDLUN
0x00005402	SNDCTL_TMR_START	TCSETS
0x00005403	SNDCTL_TMR_STOP	TCSETSW
0x00005404	SNDCTL_TMR_CONTINUE	TCSETSF
.TE
.SH SEE ALSO
.BR ioctl (2),
.BR ioctl_fat (2),
.BR netdevice (7)
