.\" Ioctl List 1.3.27
.\" Sun 17 Sep 1995
.\" Michael Elizabeth Chastain
.\" 
.\" 
.\" // Copyright
.\" 
.\" Ioctl List 1.3.27 is copyright 1995 by Michael Elizabeth Chastain.
.\" It is licensed under the Gnu Public License, Version 2.
.\" 
.\" 
.\" 
.\" // 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.
.\" 
.\" 
.nf

// Introduction

This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel
1.3.27.  It contains 421 ioctls from /usr/include/{asm,linux}/*.h.
For each ioctl, I list its numerical value, its name, and its argument
type.

An argument type of 'const struct foo *' means the argument is input
to the kernel.  'struct foo *' means the kernel outputs the argument.
If the kernel uses the argument for both input and output, this is
marked with // I-O.

Some ioctls take more arguments or return more values than a single
structure.  These are marked // MORE and documented further in a
separate section.

This list is incomplete.  It does not include:

    -- Ioctls defined internal to the kernel ('scsi_ioctl.h').
    -- Ioctls defined in modules distributed separately from the kernel.

And, of course, I may have errors and omissions.

Please e-mail changes and comments to .  I am
particularly interested in loadable modules which define their own
ioctls.  If you know of such a module, tell me where I can ftp it, and
I'll include its ioctls in my next release.



// Main table.

// 
0x00008901  FIOSETOWN			const int *
0x00008902  SIOCSPGRP			const int *
0x00008903  FIOGETOWN			int *
0x00008904  SIOCGPGRP			int *
0x00008905  SIOCATMARK			int *
0x00008906  SIOCGSTAMP			timeval *

// 
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			const struct winsize *
0x00005414  TIOCSWINSZ			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 temios *
0x00005458  TIOCSERGSTRUCT		struct async_struct *
0x00005459  TIOCSERGETLSR		int *
0x0000545A  TIOCSERGETMULTI		struct serial_multiport_struct *
0x0000545B  TIOCSERSETMULTI		const struct serial_multiport_struct *

// 
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
0x000089E6  SIOCAX25SETPARMS		const struct ax25_parms-struct *

// 
0x00007314  STL_BINTR			void
0x00007315  STL_BSTART			void
0x00007316  STL_BSTOP			void
0x00007317  STL_BRESET			void

// 
0x00005301  CDROMPAUSE			void
0x00005302  CDROMRESUME			void
0x00005303  CDROMPLAYMSF		const struct cdrom_msf *
0x00005304  CDROMPLAYTRKIND		const struct cdrom_ti *
0x00005305  CDROMREADTOCHDR		struct cdrom_tochdr *
0x00005306  CDROMREADTOCENTRY		struct cdrom_tocentry *		// I-O
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
0x00005310  CDROMMULTISESSION		struct cdrom_multisession *	// I-O
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 *

// 
0x00002000  CM206CTL_GET_STAT		int
0x00002001  CM206CTL_GET_LAST_STAT	int

// 
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

// 
0x80046601  EXT2_IOC_GETFLAGS		int *
0x40046602  EXT2_IOC_SETFLAGS		const int *
0x80047601  EXT2_IOC_GETVERSION		int *
0x40047602  EXT2_IOC_SETVERSION		const int *

// 
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 *
0x0000001E  FDRAWCMD			struct floppy_raw_cmd *	// MORE	// I-O
0x00000028  FDTWADDLE			void

// 
0x0000125D  BLKROSET			const int *
0x0000125E  BLKROGET			int *
0x0000125F  BLKRRPART			void
0x00001260  BLKGETSIZE			int *
0x00001261  BLKFLSBUF			void
0x00001262  BLKRASET			int
0x00001263  BLKRAGET			int *
0x00000001  FIBMAP			int *				// I-O
0x00000002  FIGETBSZ			int *

// 
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

// 
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

// 
0x000089F0  SIOCDEVPLIP			struct ifreq *			// I-O

// 
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 *

// 
0x000089E0  SIOCAIPXITFCRT		const char *
0x000089E1  SIOCAIPXPRISLT		const char *
0x000089E2  SIOCIPXCFGDATA		struct ipx_config_data *

// 
0x00004B60  GIO_FONT			struct { char [8192]; } *
0x00004B61  PIO_FONT			const struct { char [8192]; } *
0x00004B6B  GIO_FONTX			struct console_font_desc *  // MORE I-O
0x00004B6C  PIO_FONTX			const struct console_font_desc * //MORE
0x00004B70  GIO_CMAP			struct { char [48]; } *
0x00004B71  PIO_CMAP			const struct { char [48]; }
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]; } *
0x00004B41  PIO_SCRNMAP			const struct { char [E_TABSZ]; } *
0x00004B69  GIO_UNISCRNMAP		struct { short [E_TABSZ]; } *
0x00004B6A  PIO_UNISCRNMAP		const struct { short [E_TABSZ]; } *
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

// 
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 *

// 
0x000089E0  SIOCGETVIFCNT		struct sioc_vif_req *		// I-O
0x000089E1  SIOCGETSGCNT		struct sioc_sg_req *		// I-O

// 
0x40086D01  MTIOCTOP			const struct mtop *
0x801C6D02  MTIOCGET			struct mtget *
0x80046D03  MTIOCPOS			struct mtpos *
0x80206D04  MTIOCGETCONFIG		struct mtconfiginfo *
0x40206D05  MTIOCSETCONFIG		const struct mtconfiginfo *

// 
0x000089E0  SIOCNRGETPARMS		struct nr_parms_struct *	// I-O
0x000089E1  SIOCNRSETPARMS		const struct nr_parms_struct *
0x000089E2  SIOCNRDECOBS		void
0x000089E3  SIOCNRRTCTL			const int *

// 
0x00009000  DDIOCSDBG			const int *
0x00005382  CDROMAUDIOBUFSIZ		int

// 
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 *

// 
0x00005382  SCSI_IOCTL_GET_IDLUN	struct { int [2]; } *
0x00005383  SCSI_IOCTL_TAGGED_ENABLE	void
0x00005384  SCSI_IOCTL_TAGGED_DISABLE	void
0x00005385  SCSI_IOCTL_PROBE_HOST	const int *			// MORE

// 
0x80027501  SMB_IOC_GETMOUNTUID		uid_t *

// 
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 *
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 *

// 
0x00005100  SNDCTL_SEQ_RESET		void
0x00005101  SNDCTL_SEQ_SYNC		void
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
0x40285107  SNDCTL_FM_LOAD_INSTR	const struct sbi_instrument *
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
0x40085112  SNDCTL_SEQ_OUTOFBAND	const struct seq_event_rec *
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 *
0xC0216D02  SNDCTL_MIDI_MPUCMD		struct mpu_command_rec *	// I-O
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
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 *
0xC0144302  SNDCTL_COPR_RDATA		struct copr_debug_buf *		// I-O
0xC0144303  SNDCTL_COPR_RCODE		struct copr_debug_buf *		// I-O
0x40144304  SNDCTL_COPR_WDATA		const struct copr_debug_buf *
0x40144305  SNDCTL_COPR_WCODE		const struct copr_debug_buf *
0xC0144306  SNDCTL_COPR_RUN		struct copr_debug_buf *		// I-O
0xC0144307  SNDCTL_COPR_HALT		struct copr_debug_buf *		// I-O
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 *
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

// 
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 *

// 
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 *



// More arguments.

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

CDROMREADAUDIO takes an input pointer 'const struct cdrom_read_audio *'.
The 'buf' field points to an output buffer of length
'nframes * CD_FRAMESIZE_RAW'.

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

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

EQL_ENSLAVE, EQL_EMANCIPATE, EQL_GETSLAVECFG, EQL_SETSLAVECFG,
EQL_GETMASTERCFG, and EQL_SETMASTERCFG take a 'struct ifreq *'.
The 'ifr_data' field is a pointer to another structure as follows:

	    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 *

FDRAWCMD takes a 'struct floppy raw_cmd *'.  If 'flags & FD_RAW_WRITE'
is non-zero, then 'data' points to an input buffer of length 'length'.
If 'flags & FD_RAW_READ' is non-zero, then 'data' points to an output
buffer of length 'length'.

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

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

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

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

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

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

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

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

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

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

TIOCLINUX takes a 'const char *'.  It uses this to distinguish several
independent sub-cases.  In the table below, 'N + foo' means 'foo' after
an N-byte pad.  'struct selection' is implicitly defined in
'drivers/char/selection.c'

	    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 *





// Duplicate ioctls

This list does not include ioctls in the range SIOCDEVPRIVATE and
SIOCPROTOPRIVATE.

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