]> git.ipfire.org Git - thirdparty/man-pages.git/commitdiff
ioctl_list.2: Remove this page
authorMichael Kerrisk <mtk.manpages@gmail.com>
Thu, 16 Apr 2020 06:28:05 +0000 (08:28 +0200)
committerMichael Kerrisk <mtk.manpages@gmail.com>
Tue, 9 Jun 2020 07:40:08 +0000 (09:40 +0200)
This page was first added more than 20 years ago. Since
that time it has seen hardly any update, and is by now
very much out of date, as reported by Heinrich Schuchardt
and confirmed by Eugene Syromyatnikov.

As Heinrich says:

    Man-pages like netdevices.7 or ioctl_fat.2 are what is
    needed to help a user who does not want to read through the
    kernel code.

    If ioctl_list.2 has not been reasonably maintained since
    Linux 1.3.27 and hence is not a reliable source of
    information, shouldn't it be dropped?

My answer is, yes (but let's move a little info into ioctl(2)).

Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reported-by: Eugene Syromyatnikov <evgsyr@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
man2/ioctl_list.2 [deleted file]

diff --git a/man2/ioctl_list.2 b/man2/ioctl_list.2
deleted file mode 100644 (file)
index b9fb74d..0000000
+++ /dev/null
@@ -1,1046 +0,0 @@
-.\" 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 2019-11-19 "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.
-In addition, information about some ioctls can be found in
-the pages listed under SEE ALSO in
-.BR ioctl (2).
-.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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-// Main table.
-.PP
-// <include/asm-i386/socket.h>
-.TS
-l l.
-FIOSETOWN      const int *
-SIOCSPGRP      const int *
-FIOGETOWN      int *
-SIOCGPGRP      int *
-SIOCATMAR      int *
-SIOCGSTAMP     timeval *
-.TE
-.sp 1
-// <include/asm-i386/termios.h>
-.TS
-l l.
-TCGETS struct termios *
-TCSETS const struct termios *
-TCSETSW        const struct termios *
-TCSETSF        const struct termios *
-TCGETA struct termio *
-TCSETA const struct termio *
-TCSETAW        const struct termio *
-TCSETAF        const struct termio *
-TCSBRK int
-TCXONC int
-TCFLSH int
-TIOCEXCL       void
-TIOCNXCL       void
-TIOCSCTTY      int
-TIOCGPGRP      pid_t *
-TIOCSPGRP      const pid_t *
-TIOCOUTQ       int *
-TIOCSTI        const char *
-TIOCGWINSZ     struct winsize *
-TIOCSWINSZ     const struct winsize *
-TIOCMGET       int *
-TIOCMBIS       const int *
-TIOCMBIC       const int *
-TIOCMSET       const int *
-TIOCGSOFTCAR   int *
-TIOCSSOFTCAR   const int *
-FIONREAD       int *
-TIOCINQ        int *
-TIOCLINUX      const char *    // MORE
-TIOCCONS       void
-TIOCGSERIAL    struct serial_struct *
-TIOCSSERIAL    const struct serial_struct *
-TIOCPKT        const int *
-FIONBIO        const int *
-TIOCNOTTY      void
-TIOCSETD       const int *
-TIOCGETD       int *
-TCSBRKP        int
-TIOCTTYGSTRUCT struct tty_struct *
-FIONCLEX       void
-FIOCLEX        void
-FIOASYNC       const int *
-TIOCSERCONFIG  void
-TIOCSERGWILD   int *
-TIOCSERSWILD   const int *
-TIOCGLCKTRMIOS struct termios *
-TIOCSLCKTRMIOS const struct termios *
-TIOCSERGSTRUCT struct async_struct *
-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.
-TIOCSERGETMULTI        struct serial_multiport_struct *
-TIOCSERSETMULTI        const struct serial_multiport_struct *
-.TE
-.sp 1
-// <include/linux/ax25.h>
-.TS
-l l.
-SIOCAX25GETUID const struct sockaddr_ax25 *
-SIOCAX25ADDUID const struct sockaddr_ax25 *
-SIOCAX25DELUID const struct sockaddr_ax25 *
-SIOCAX25NOUID  const int *
-SIOCAX25DIGCTL const int *
-SIOCAX25GETPARMS       struct ax25_parms_struct *      // I-O
-.TE
-.TS
-l l.
-SIOCAX25SETPARMS       const struct ax25_parms_struct *
-.TE
-.sp 1
-// <include/linux/cdk.h>
-.TS
-l l.
-STL_BINTR      void
-STL_BSTART     void
-STL_BSTOP      void
-STL_BRESET     void
-.TE
-.sp 1
-// <include/linux/cdrom.h>
-.TS
-l l.
-CDROMPAUSE     void
-CDROMRESUME    void
-CDROMPLAYMSF   const struct cdrom_msf *
-CDROMPLAYTRKIND        const struct cdrom_ti *
-CDROMREADTOCHDR        struct cdrom_tochdr *
-.TE
-.TS
-l l l.
-CDROMREADTOCENTRY      struct cdrom_tocentry * // I-O
-.TE
-.TS
-l l l.
-CDROMSTOP      void
-CDROMSTART     void
-CDROMEJECT     void
-CDROMVOLCTRL   const struct cdrom_volctrl *
-CDROMSUBCHNL   struct cdrom_subchnl *  // I-O
-CDROMREADMODE2 const struct cdrom_msf *        // MORE
-CDROMREADMODE1 const struct cdrom_msf *        // MORE
-CDROMREADAUDIO const struct cdrom_read_audio * // MORE
-CDROMEJECT_SW  int
-.TE
-.TS
-l l l.
-CDROMMULTISESSION      struct cdrom_multisession *     // I-O
-.TE
-.TS
-l l l.
-CDROM_GET_UPC  struct { char [8]; } *
-CDROMRESET     void
-CDROMVOLREAD   struct cdrom_volctrl *
-CDROMREADRAW   const struct cdrom_msf *        // MORE
-CDROMREADCOOKED        const struct cdrom_msf *        // MORE
-CDROMSEEK      const struct cdrom_msf *
-.TE
-.sp 1
-// <include/linux/cm206.h>
-.TS
-l l.
-CM206CTL_GET_STAT      int
-CM206CTL_GET_LAST_STAT int
-.TE
-.sp 1
-// <include/linux/cyclades.h>
-.TS
-l l.
-CYGETMON       struct cyclades_monitor *
-CYGETTHRESH    int *
-CYSETTHRESH    int
-CYGETDEFTHRESH int *
-CYSETDEFTHRESH int
-CYGETTIMEOUT   int *
-CYSETTIMEOUT   int
-CYGETDEFTIMEOUT        int *
-CYSETDEFTIMEOUT        int
-.TE
-.sp 1
-// <include/linux/fd.h>
-.TS
-l l.
-FDCLRPRM       void
-FDSETPRM       const struct floppy_struct *
-FDDEFPRM       const struct floppy_struct *
-FDGETPRM       struct floppy_struct *
-FDMSGON        void
-FDMSGOFF       void
-FDFMTBEG       void
-FDFMTTRK       const struct format_descr *
-FDFMTEND       void
-FDSETEMSGTRESH int
-FDFLUSH        void
-FDSETMAXERRS   const struct floppy_max_errors *
-FDGETMAXERRS   struct floppy_max_errors *
-FDGETDRVTYP    struct { char [16]; } *
-FDSETDRVPRM    const struct floppy_drive_params *
-FDGETDRVPRM    struct floppy_drive_params *
-FDGETDRVSTAT   struct floppy_drive_struct *
-FDPOLLDRVSTAT  struct floppy_drive_struct *
-FDRESET        int
-FDGETFDCSTAT   struct floppy_fdc_state *
-FDWERRORCLR    void
-FDWERRORGET    struct floppy_write_errors *
-.TE
-.TS
-l l l.
-FDRAWCMD       struct floppy_raw_cmd * // MORE // I-O
-FDTWADDLE      void
-.TE
-.sp 1
-// <include/linux/fs.h>
-.TS
-l l l.
-BLKROSET       const int *
-BLKROGET       int *
-BLKRRPART      void
-BLKGETSIZE     unsigned long *
-BLKFLSBUF      void
-BLKRASET       unsigned long
-BLKRAGET       unsigned long *
-FIBMAP int *   // I-O
-FIGETBSZ       int *
-FS_IOC_GETFLAGS        int *
-FS_IOC_SETFLAGS        int *
-FS_IOC_GETVERSION      int *
-FS_IOC_SETVERSION      int *
-FS_IOC_FIEMAP  struct fiemap *
-FS_IOC32_SETFLAGS      int *
-FS_IOC32_SETFLAGS      int *
-FS_IOC32_GETVERSION    int *
-FS_IOC32_SETVERSION    int *
-.TE
-.sp 1
-// <include/linux/hdreg.h>
-.TS
-l l.
-HDIO_GETGEO    struct hd_geometry *
-HDIO_GET_UNMASKINTR    int *
-HDIO_GET_MULTCOUNT     int *
-HDIO_GET_IDENTITY      struct hd_driveid *
-HDIO_GET_KEEPSETTINGS  int *
-HDIO_GET_CHIPSET       int *
-HDIO_GET_NOWERR        int *
-HDIO_GET_DMA   int *
-HDIO_DRIVE_CMD int *   // I-O
-HDIO_SET_MULTCOUNT     int
-HDIO_SET_UNMASKINTR    int
-HDIO_SET_KEEPSETTINGS  int
-HDIO_SET_CHIPSET       int
-HDIO_SET_NOWERR        int
-HDIO_SET_DMA   int
-.TE
-.sp 1
-// <include/linux/if_eql.h>
-.TS
-l l l.
-EQL_ENSLAVE    struct ifreq *  // MORE // I-O
-EQL_EMANCIPATE struct ifreq *  // MORE // I-O
-EQL_GETSLAVECFG        struct ifreq *  // MORE // I-O
-EQL_SETSLAVECFG        struct ifreq *  // MORE // I-O
-EQL_GETMASTRCFG        struct ifreq *  // MORE // I-O
-EQL_SETMASTRCFG        struct ifreq *  // MORE // I-O
-.TE
-.sp 1
-// <include/linux/if_plip.h>
-.TS
-l l l.
-SIOCDEVPLIP    struct ifreq *  // I-O
-.TE
-.sp 1
-// <include/linux/if_ppp.h>
-.TS
-l l.
-PPPIOCGFLAGS   int *
-PPPIOCSFLAGS   const int *
-PPPIOCGASYNCMAP        int *
-PPPIOCSASYNCMAP        const int *
-PPPIOCGUNIT    int *
-PPPIOCSINPSIG  const int *
-PPPIOCSDEBUG   const int *
-PPPIOCGDEBUG   int *
-PPPIOCGSTAT    struct ppp_stats *
-PPPIOCGTIME    struct ppp_ddinfo *
-PPPIOCGXASYNCMAP       struct { int [8]; } *
-PPPIOCSXASYNCMAP       const struct { int [8]; } *
-PPPIOCSMRU     const int *
-PPPIOCRASYNCMAP        const int *
-PPPIOCSMAXCID  const int *
-.TE
-.sp 1
-// <include/linux/ipx.h>
-.TS
-l l.
-SIOCAIPXITFCRT const char *
-SIOCAIPXPRISLT const char *
-SIOCIPXCFGDATA struct ipx_config_data *
-.TE
-.sp 1
-// <include/linux/kd.h>
-.TS
-l l.
-GIO_FONT       struct { char [8192]; } *
-PIO_FONT       const struct { char [8192]; } *
-.TE
-.TS
-l2 l2 l.
-GIO_FONTX      struct console_font_desc *      // MORE // I-O
-PIO_FONTX      const struct console_font_desc *        //MORE
-.TE
-.TS
-l l l.
-GIO_CMAP       struct { char [48]; } *
-PIO_CMAP       const struct { char [48]; }
-.TE
-.TS
-l l l.
-KIOCSOUND      int
-KDMKTONE       int
-KDGETLED       char *
-KDSETLED       int
-KDGKBTYPE      char *
-KDADDIO        int     // MORE
-KDDELIO        int     // MORE
-KDENABIO       void    // MORE
-KDDISABIO      void    // MORE
-KDSETMODE      int
-KDGETMODE      int *
-KDMAPDISP      void    // MORE
-KDUNMAPDISP    void    // MORE
-GIO_SCRNMAP    struct { char [E_TABSZ]; } *
-.TE
-.TS
-l l.
-PIO_SCRNMAP    const struct { char [E_TABSZ]; } *
-GIO_UNISCRNMAP struct { short [E_TABSZ]; } *
-PIO_UNISCRNMAP const struct { short [E_TABSZ]; } *
-.TE
-.TS
-l l l.
-GIO_UNIMAP     struct unimapdesc *     // MORE // I-O
-PIO_UNIMAP     const struct unimapdesc *       // MORE
-PIO_UNIMAPCLR  const struct unimapinit *
-KDGKBMODE      int *
-KDSKBMODE      int
-KDGKBMETA      int *
-KDSKBMETA      int
-KDGKBLED       int *
-KDSKBLED       int
-KDGKBENT       struct kbentry *        // I-O
-KDSKBENT       const struct kbentry *
-KDGKBSENT      struct kbsentry *       // I-O
-KDSKBSENT      const struct kbsentry *
-KDGKBDIACR     struct kbdiacrs *
-KDSKBDIACR     const struct kbdiacrs *
-KDGETKEYCODE   struct kbkeycode *      // I-O
-KDSETKEYCODE   const struct kbkeycode *
-KDSIGACCEPT    int
-.TE
-.sp 1
-// <include/linux/lp.h>
-.TS
-l l.
-LPCHAR int
-LPTIME int
-LPABORT        int
-LPSETIRQ       int
-LPGETIRQ       int *
-LPWAIT int
-LPCAREFUL      int
-LPABORTOPEN    int
-LPGETSTATUS    int *
-LPRESET        void
-LPGETSTATS     struct lp_stats *
-.TE
-.sp 1
-// <include/linux/mroute.h>
-.TS
-l l l.
-SIOCGETVIFCNT  struct sioc_vif_req *   // I-O
-SIOCGETSGCNT   struct sioc_sg_req *    // I-O
-.TE
-.sp 1
-// <include/linux/msdos_fs.h> see
-.BR ioctl_fat (2)
-.TS
-l l.
-VFAT_IOCTL_READDIR_BOTH        struct dirent [2]
-VFAT_IOCTL_READDIR_SHORT       struct dirent [2]
-FAT_IOCTL_GET_ATTRIBUTES       __u32 *
-FAT_IOCTL_SET_ATTRIBUTES       const __u32 *
-FAT_IOCTL_GET_VOLUME_ID        __u32 *
-.TE
-.sp 1
-// <include/linux/mtio.h>
-.TS
-l l.
-MTIOCTOP       const struct mtop *
-MTIOCGET       struct mtget *
-MTIOCPOS       struct mtpos *
-MTIOCGETCONFIG struct mtconfiginfo *
-MTIOCSETCONFIG const struct mtconfiginfo *
-.TE
-.sp 1
-// <include/linux/netrom.h>
-.TS
-l l l.
-SIOCNRGETPARMS struct nr_parms_struct *        // I-O
-SIOCNRSETPARMS const struct nr_parms_struct *
-SIOCNRDECOBS   void
-SIOCNRRTCTL    const int *
-.TE
-.sp 1
-// <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
-.sp 1
-// <include/linux/sbpcd.h>
-.TS
-l l.
-DDIOCSDBG      const int *
-CDROMAUDIOBUFSIZ       int
-.TE
-.sp 1
-// <include/linux/scc.h>
-.TS
-l l l.
-TIOCSCCINI     void
-TIOCCHANINI    const struct scc_modem *
-TIOCGKISS      struct ioctl_command *  // I-O
-TIOCSKISS      const struct ioctl_command *
-TIOCSCCSTAT    struct scc_stat *
-.TE
-.sp 1
-// <include/linux/scsi.h>
-.TS
-l l.
-SCSI_IOCTL_GET_IDLUN   struct { int [2]; } *
-SCSI_IOCTL_TAGGED_ENABLE          void
-SCSI_IOCTL_TAGGED_DISABLE      void
-.TE
-.TS
-l l l.
-SCSI_IOCTL_PROBE_HOST  const int *     // MORE
-.TE
-.sp 1
-// <include/linux/smb_fs.h>
-.TS
-l l l.
-SMB_IOC_GETMOUNTUID    uid_t *
-.TE
-.sp 1
-// <include/uapi/linux/sockios.h> see
-.BR netdevice (7)
-.PP
-.TS
-l l l.
-SIOCADDRT      const struct rtentry *  // MORE
-SIOCDELRT      const struct rtentry *  // MORE
-SIOCGIFNAME    char []
-SIOCSIFLINK    void
-SIOCGIFCONF    struct ifconf * // MORE // I-O
-SIOCGIFFLAGS   struct ifreq *  // I-O
-SIOCSIFFLAGS   const struct ifreq *
-SIOCGIFADDR    struct ifreq *  // I-O
-SIOCSIFADDR    const struct ifreq *
-SIOCGIFDSTADDR struct ifreq *  // I-O
-SIOCSIFDSTADDR const struct ifreq *
-SIOCGIFBRDADDR struct ifreq *  // I-O
-SIOCSIFBRDADDR const struct ifreq *
-SIOCGIFNETMASK struct ifreq *  // I-O
-SIOCSIFNETMASK const struct ifreq *
-SIOCGIFMETRIC  struct ifreq *  // I-O
-SIOCSIFMETRIC  const struct ifreq *
-SIOCGIFMEM     struct ifreq *  // I-O
-SIOCSIFMEM     const struct ifreq *
-SIOCGIFMTU     struct ifreq *  // I-O
-SIOCSIFMTU     const struct ifreq *
-.TE
-.TS
-l l l.
-OLD_SIOCGIFHWADDR      struct ifreq *  // I-O
-SIOCSIFHWADDR  const struct ifreq *    // MORE
-SIOCGIFENCAP   int *
-SIOCSIFENCAP   const int *
-SIOCGIFHWADDR  struct ifreq *  // I-O
-SIOCGIFSLAVE   void
-SIOCSIFSLAVE   void
-SIOCADDMULTI   const struct ifreq *
-SIOCDELMULTI   const struct ifreq *
-SIOCADDRTOLD   void
-SIOCDELRTOLD   void
-SIOCDARP       const struct arpreq *
-SIOCGARP       struct arpreq * // I-O
-SIOCSARP       const struct arpreq *
-SIOCDRARP      const struct arpreq *
-SIOCGRARP      struct arpreq * // I-O
-SIOCSRARP      const struct arpreq *
-SIOCGIFMAP     struct ifreq *  // I-O
-SIOCSIFMAP     const struct ifreq *
-.TE
-.sp 1
-// <include/linux/soundcard.h>
-.TS
-l l.
-SNDCTL_SEQ_RESET       void
-SNDCTL_SEQ_SYNC        void
-.TE
-.TS
-l l l.
-SNDCTL_SYNTH_INFO      struct synth_info *     // I-O
-SNDCTL_SEQ_CTRLRATE    int *   // I-O
-SNDCTL_SEQ_GETOUTCOUNT int *
-SNDCTL_SEQ_GETINCOUNT  int *
-SNDCTL_SEQ_PERCMODE    void
-.TE
-.TS
-l l.
-SNDCTL_FM_LOAD_INSTR   const struct sbi_instrument *
-.TE
-.TS
-l l l.
-SNDCTL_SEQ_TESTMIDI    const int *
-SNDCTL_SEQ_RESETSAMPLES        const int *
-SNDCTL_SEQ_NRSYNTHS    int *
-SNDCTL_SEQ_NRMIDIS     int *
-SNDCTL_MIDI_INFO       struct midi_info *      // I-O
-SNDCTL_SEQ_THRESHOLD   const int *
-SNDCTL_SYNTH_MEMAVL    int *   // I-O
-SNDCTL_FM_4OP_ENABLE   const int *
-SNDCTL_PMGR_ACCESS     struct patmgr_info *    // I-O
-SNDCTL_SEQ_PANIC       void
-.TE
-.TS
-l l.
-SNDCTL_SEQ_OUTOFBAND   const struct seq_event_rec *
-.TE
-.TS
-l l l.
-SNDCTL_TMR_TIMEBASE    int *   // I-O
-SNDCTL_TMR_START       void
-SNDCTL_TMR_STOP        void
-SNDCTL_TMR_CONTINUE    void
-SNDCTL_TMR_TEMPO       int *   // I-O
-SNDCTL_TMR_SOURCE      int *   // I-O
-SNDCTL_TMR_METRONOME   const int *
-SNDCTL_TMR_SELECT      int *   // I-O
-SNDCTL_PMGR_IFACE      struct patmgr_info *    // I-O
-SNDCTL_MIDI_PRETIME    int *   // I-O
-SNDCTL_MIDI_MPUMODE    const int *
-.TE
-.TS
-l l l.
-SNDCTL_MIDI_MPUCMD     struct mpu_command_rec *        // I-O
-.TE
-.TS
-l l l.
-SNDCTL_DSP_RESET       void
-SNDCTL_DSP_SYNC        void
-SNDCTL_DSP_SPEED       int *   // I-O
-SNDCTL_DSP_STEREO      int *   // I-O
-SNDCTL_DSP_GETBLKSIZE  int *   // I-O
-SOUND_PCM_WRITE_CHANNELS       int *   // I-O
-SOUND_PCM_WRITE_FILTER int *   // I-O
-SNDCTL_DSP_POST        void
-SNDCTL_DSP_SUBDIVIDE   int *   // I-O
-SNDCTL_DSP_SETFRAGMENT int *   // I-O
-SNDCTL_DSP_GETFMTS     int *
-SNDCTL_DSP_SETFMT      int *   // I-O
-.TE
-.TS
-l l.
-SNDCTL_DSP_GETOSPACE   struct audio_buf_info *
-SNDCTL_DSP_GETISPACE   struct audio_buf_info *
-SNDCTL_DSP_NONBLOCK    void
-SOUND_PCM_READ_RATE    int *
-SOUND_PCM_READ_CHANNELS        int *
-SOUND_PCM_READ_BITS    int *
-SOUND_PCM_READ_FILTER  int *
-SNDCTL_COPR_RESET      void
-SNDCTL_COPR_LOAD       const struct copr_buffer *
-.TE
-.TS
-l l l.
-SNDCTL_COPR_RDATA      struct copr_debug_buf * // I-O
-SNDCTL_COPR_RCODE      struct copr_debug_buf * // I-O
-.TE
-.TS
-l l.
-SNDCTL_COPR_WDATA      const struct copr_debug_buf *
-SNDCTL_COPR_WCODE      const struct copr_debug_buf *
-.TE
-.TS
-l l l.
-SNDCTL_COPR_RUN        struct copr_debug_buf * // I-O
-SNDCTL_COPR_HALT       struct copr_debug_buf * // I-O
-.TE
-.TS
-l l.
-SNDCTL_COPR_SENDMSG    const struct copr_msg *
-SNDCTL_COPR_RCVMSG     struct copr_msg *
-SOUND_MIXER_READ_VOLUME        int *
-SOUND_MIXER_READ_BASS  int *
-SOUND_MIXER_READ_TREBLE        int *
-SOUND_MIXER_READ_SYNTH int *
-SOUND_MIXER_READ_PCM   int *
-SOUND_MIXER_READ_SPEAKER       int *
-SOUND_MIXER_READ_LINE  int *
-SOUND_MIXER_READ_MIC   int *
-SOUND_MIXER_READ_CD    int *
-SOUND_MIXER_READ_IMIX  int *
-SOUND_MIXER_READ_ALTPCM        int *
-SOUND_MIXER_READ_RECLEV        int *
-SOUND_MIXER_READ_IGAIN int *
-SOUND_MIXER_READ_OGAIN int *
-SOUND_MIXER_READ_LINE1 int *
-SOUND_MIXER_READ_LINE2 int *
-SOUND_MIXER_READ_LINE3 int *
-SOUND_MIXER_READ_MUTE  int *
-SOUND_MIXER_READ_ENHANCE       int *
-SOUND_MIXER_READ_LOUD  int *
-SOUND_MIXER_READ_RECSRC        int *
-SOUND_MIXER_READ_DEVMASK       int *
-SOUND_MIXER_READ_RECMASK       int *
-SOUND_MIXER_READ_STEREODEVS    int *
-SOUND_MIXER_READ_CAPS  int *
-.TE
-.TS
-l l l.
-SOUND_MIXER_WRITE_VOLUME       int *   // I-O
-SOUND_MIXER_WRITE_BASS int *   // I-O
-SOUND_MIXER_WRITE_TREBLE       int *   // I-O
-SOUND_MIXER_WRITE_SYNTH        int *   // I-O
-SOUND_MIXER_WRITE_PCM  int *   // I-O
-SOUND_MIXER_WRITE_SPEAKER      int *   // I-O
-SOUND_MIXER_WRITE_LINE int *   // I-O
-SOUND_MIXER_WRITE_MIC  int *   // I-O
-SOUND_MIXER_WRITE_CD   int *   // I-O
-SOUND_MIXER_WRITE_IMIX int *   // I-O
-SOUND_MIXER_WRITE_ALTPCM       int *   // I-O
-SOUND_MIXER_WRITE_RECLEV       int *   // I-O
-SOUND_MIXER_WRITE_IGAIN        int *   // I-O
-SOUND_MIXER_WRITE_OGAIN        int *   // I-O
-SOUND_MIXER_WRITE_LINE1        int *   // I-O
-SOUND_MIXER_WRITE_LINE2        int *   // I-O
-SOUND_MIXER_WRITE_LINE3        int *   // I-O
-SOUND_MIXER_WRITE_MUTE int *   // I-O
-SOUND_MIXER_WRITE_ENHANCE      int *   // I-O
-SOUND_MIXER_WRITE_LOUD int *   // I-O
-SOUND_MIXER_WRITE_RECSRC       int *   // I-O
-.TE
-.sp 1
-// <include/linux/timerfd.h> see
-.BR timerfd_create (2)
-.TS
-l l l.
-TFD_IOC_SET_TICKS      uint64_t *
-.TE
-.sp 1
-// <include/linux/umsdos_fs.h>
-.TS
-l l l.
-UMSDOS_READDIR_DOS     struct umsdos_ioctl *   // I-O
-UMSDOS_UNLINK_DOS      const struct umsdos_ioctl *
-UMSDOS_RMDIR_DOS       const struct umsdos_ioctl *
-UMSDOS_STAT_DOS        struct umsdos_ioctl *   // I-O
-UMSDOS_CREAT_EMD       const struct umsdos_ioctl *
-UMSDOS_UNLINK_EMD      const struct umsdos_ioctl *
-UMSDOS_READDIR_EMD     struct umsdos_ioctl *   // I-O
-UMSDOS_GETVERSION      struct umsdos_ioctl *
-UMSDOS_INIT_EMD        void
-UMSDOS_DOS_SETUP       const struct umsdos_ioctl *
-UMSDOS_RENAME_DOS      const struct umsdos_ioctl *
-.TE
-.sp 1
-// <include/linux/vt.h>
-.TS
-l l.
-VT_OPENQRY     int *
-VT_GETMODE     struct vt_mode *
-VT_SETMODE     const struct vt_mode *
-VT_GETSTATE    struct vt_stat *
-VT_SENDSIG     void
-VT_RELDISP     int
-VT_ACTIVATE    int
-VT_WAITACTIVE  int
-VT_DISALLOCATE int
-VT_RESIZE      const struct vt_sizes *
-VT_RESIZEX     const struct vt_consize *
-.TE
-.sp 1
-// More arguments.
-Some ioctl's take a pointer to a structure which contains additional
-pointers.
-These are documented here in alphabetical order.
-.PP
-.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" .
-.PP
-.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).
-.PP
-.nf
-    CDROMREADCOOKED    char [CD_FRAMESIZE]
-    CDROMREADMODE1     char [CD_FRAMESIZE or OPT_BLOCKSIZE]
-    CDROMREADMODE2     char [CD_FRAMESIZE_RAW0]
-    CDROMREADRAW       char [CD_FRAMESIZE_RAW]
-.fi
-.PP
-.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:
-.PP
-.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
-.PP
-.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 .
-.PP
-.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 .
-.PP
-.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 .
-.PP
-KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to
-I/O ports.
-They are essentially alternate interfaces to 'ioperm'.
-.PP
-.B KDMAPDISP
-and
-.B KDUNMAPDISP
-enable or disable memory mappings or I/O port access.
-They are not implemented in the kernel.
-.PP
-.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.
-.PP
-.B SIOCADDRT
-and
-.B SIOCDELRT
-take an input pointer whose type depends on
-the protocol:
-.PP
-.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
-.PP
-.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 []" .
-.PP
-.B SIOCSIFHWADDR
-takes an input pointer whose type depends on the protocol:
-.PP
-.nf
-    Most protocols      const struct ifreq *
-    AX.25               const char [AX25_ADDR_LEN]
-.fi
-.PP
-.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
-.PP
-.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
-.PP
-// Duplicate ioctls
-.PP
-This list does not include ioctls in the range
-.B SIOCDEVPRIVATE
-and
-.BR SIOCPROTOPRIVATE .
-.TS
-l l l.
-FDSETPRM       FIBMAP
-FDDEFPRM       FIGETBSZ
-SCSI_IOCTL_GET_IDLUN
-SNDCTL_TMR_START       TCSETS
-SNDCTL_TMR_STOP        TCSETSW
-SNDCTL_TMR_CONTINUE    TCSETSF
-.TE
-.SH SEE ALSO
-.BR ioctl (2),
-.BR ioctl_fat (2),
-.BR netdevice (7)