summaryrefslogtreecommitdiffstats
path: root/man2/ioctl_list.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/ioctl_list.2')
-rw-r--r--man2/ioctl_list.2672
1 files changed, 672 insertions, 0 deletions
diff --git a/man2/ioctl_list.2 b/man2/ioctl_list.2
new file mode 100644
index 000000000..d2094a0da
--- /dev/null
+++ b/man2/ioctl_list.2
@@ -0,0 +1,672 @@
+.\" Ioctl List 1.3.27
+.\" Sun 17 Sep 1995
+.\" Michael Elizabeth Chastain
+.\" <mec@duracef.shout.net>
+.\"
+.\" // 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.
+.\"
+.\"
+.TH IOCTL_LIST 2 2003-03-30 "Linux 1.3" "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 /usr/include/{asm,linux}/*.h.
+For each ioctl, its numerical value, its name, and its argument
+type are given.
+.PP
+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.
+.PP
+Some ioctls take more arguments or return more values than a single
+structure. These are marked // MORE and documented further in a
+separate section.
+.PP
+This list is very incomplete.
+Please e-mail changes and comments to <mec@duracef.shout.net>.
+
+.SH "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 HDIO_* ioctls, 0x06 for the LP* ioctls. And sometimes
+one or more ASCII letters were used. For example, TCGETS has value
+0x00005401, with 0x54 = 'T' indicating the terminal driver, and
+CYGETTIMEOUT has value 0x00435906, with 0x43 0x59 = 'C' 'Y'
+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 <asm/ioctl.h>
+and are _IO(type,nr) and {_IOR,_IOW,_IOWR}(type,nr,size).
+They use sizeof(size) so that size is a
+misnomer here - this third parameter 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
+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.
+
+.nf
+
+// Main table.
+
+// <include/asm-i386/socket.h>
+0x00008901 FIOSETOWN const int *
+0x00008902 SIOCSPGRP const int *
+0x00008903 FIOGETOWN int *
+0x00008904 SIOCGPGRP int *
+0x00008905 SIOCATMARK int *
+0x00008906 SIOCGSTAMP timeval *
+
+// <include/asm-i386/termios.h>
+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 *
+0x0000545A TIOCSERGETMULTI struct serial_multiport_struct *
+0x0000545B TIOCSERSETMULTI const struct serial_multiport_struct *
+
+// <include/linux/ax25.h>
+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 *
+
+// <include/linux/cdk.h>
+0x00007314 STL_BINTR void
+0x00007315 STL_BSTART void
+0x00007316 STL_BSTOP void
+0x00007317 STL_BRESET void
+
+// <include/linux/cdrom.h>
+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 *
+
+// <include/linux/cm206.h>
+0x00002000 CM206CTL_GET_STAT int
+0x00002001 CM206CTL_GET_LAST_STAT int
+
+// <include/linux/cyclades.h>
+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
+
+// <include/linux/ext2_fs.h>
+0x80046601 EXT2_IOC_GETFLAGS int *
+0x40046602 EXT2_IOC_SETFLAGS const int *
+0x80047601 EXT2_IOC_GETVERSION int *
+0x40047602 EXT2_IOC_SETVERSION const int *
+
+// <include/linux/fd.h>
+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
+
+// <include/linux/fs.h>
+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 *
+
+// <include/linux/hdreg.h>
+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
+
+// <include/linux/if_eql.h>
+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
+
+// <include/linux/if_plip.h>
+0x000089F0 SIOCDEVPLIP struct ifreq * // I-O
+
+// <include/linux/if_ppp.h>
+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 *
+
+// <include/linux/ipx.h>
+0x000089E0 SIOCAIPXITFCRT const char *
+0x000089E1 SIOCAIPXPRISLT const char *
+0x000089E2 SIOCIPXCFGDATA struct ipx_config_data *
+
+// <include/linux/kd.h>
+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
+
+// <include/linux/lp.h>
+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 *
+
+// <include/linux/mroute.h>
+0x000089E0 SIOCGETVIFCNT struct sioc_vif_req * // I-O
+0x000089E1 SIOCGETSGCNT struct sioc_sg_req * // I-O
+
+// <include/linux/mtio.h>
+0x40086D01 MTIOCTOP const struct mtop *
+0x801C6D02 MTIOCGET struct mtget *
+0x80046D03 MTIOCPOS struct mtpos *
+0x80206D04 MTIOCGETCONFIG struct mtconfiginfo *
+0x40206D05 MTIOCSETCONFIG const struct mtconfiginfo *
+
+// <include/linux/netrom.h>
+0x000089E0 SIOCNRGETPARMS struct nr_parms_struct * // I-O
+0x000089E1 SIOCNRSETPARMS const struct nr_parms_struct *
+0x000089E2 SIOCNRDECOBS void
+0x000089E3 SIOCNRRTCTL const int *
+
+// <include/linux/sbpcd.h>
+0x00009000 DDIOCSDBG const int *
+0x00005382 CDROMAUDIOBUFSIZ int
+
+// <include/linux/scc.h>
+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 *
+
+// <include/linux/scsi.h>
+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
+
+// <include/linux/smb_fs.h>
+0x80027501 SMB_IOC_GETMOUNTUID uid_t *
+
+// <include/linux/sockios.h>
+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 *
+
+// <include/linux/soundcard.h>
+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
+
+// <include/linux/umsdos_fs.h>
+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 *
+
+// <include/linux/vt.h>
+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