ioctl_list

IOCTL_LIST(2)              Linux Programmer's Manual             IOCTL_LIST(2)

NAME
       ioctl_list - list of ioctl calls in Linux/i386 kernel

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.

       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  sepa-
       rate  section.  In addition, information about some ioctls can be found
       in the pages listed under SEE ALSO in ioctl(2).

       This list is very incomplete.

   ioctl structure
       Ioctl command values are 32-bit constants.   In  principle  these  con-
       stants  are  completely  arbitrary, but people have tried to build some
       structure into them.

       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 in-
       dicating 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.

       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.

       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 argument is a
       data type.

       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.

       Thus, it seems that the new structure only gave disadvantages: it  does
       not  help in checking, but it causes varying values for the various ar-
       chitectures.

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>

       0x00008901   FIOSETOWN    const int *
       0x00008902   SIOCSPGRP    const int *
       0x00008903   FIOGETOWN    int *
       0x00008904   SIOCGPGRP    int *
       0x00008905   SIOCATMAR    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/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            unsigned long *
       0x00001261   BLKFLSBUF             void
       0x00001262   BLKRASET              unsigned long
       0x00001263   BLKRAGET              unsigned long *
       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 *

       // <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/msdos_fs.h> see ioctl_fat(2)

       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 *

       // <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/uapi/linux/wireless.h>
       // This API is deprecated.
       // It is being replaced by nl80211 and cfg80211.  See
       // https://wireless.wiki.kernel.org/en/developers/documentation/nl80211

       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 *

       // <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/uapi/linux/sockios.h> see netdevice(7)

       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/timerfd.h> see timerfd_create(2)

       0x40085400   TFD_IOC_SET_TICKS   uint64_t *

       // <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 alphabeti-
       cal order.

       CDROMREADAUDIO takes an input pointer const struct  cdrom_read_audio *.
       The  buf field points to an output buffer of length nframes * CD_FRAME-
       SIZE_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_GET-
       MASTERCFG,  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
       nonzero,  then  data  points  to  an input buffer of length length.  If
       flags & FD_RAW_READ is nonzero, 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 in-
       put 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 uni-
       pair [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 *
           INET6               const struct in6_rtmsg *

       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  proto-
       col:

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

       TIOCLINUX  takes  a  const char *.  It uses this to distinguish several
       independent subcases.  In the table below, N + foo means foo  after  an
       N-byte pad.  struct selection is implicitly defined in drivers/char/se-
       lection.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

SEE ALSO
       ioctl(2), ioctl_fat(2), netdevice(7)

COLOPHON
       This  page  is  part of release 5.05 of the Linux man-pages project.  A
       description of the project, information about reporting bugs,  and  the
       latest     version     of     this    page,    can    be    found    at
       https://www.kernel.org/doc/man-pages/.

Linux                             2019-11-19                     IOCTL_LIST(2)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2024 Hurricane Electric. All Rights Reserved.