ioctl_list

Autres langues

Langue: ja

Version: 2003-03-30 (mandriva - 01/05/08)

Section: 2 (Appels système)

名前

ioctl_list - Linux/i386 カーネルの ioctl のリスト

説明

この文章は ioctl リスト 1.3.27、つまり Linux/i386 カーネル 1.3.27 に おける ioctl コールの一覧です。このリストは /usr/include{asm,linux}/*.h にある 421 の ioctl を含んでいます。全ての ioctl に対して、数値、名称、 引き数の型を列挙してあります。

引き数型 'const struct foo *' は、その引き数がカーネルへの入力である事を 意味します。また、'struct foo *' は、その引き数がカーネルからの出力である 事を意味します。カーネルがその引き数を入力と出力の両方に使用する場合は、 // I-O マークを付けてあります。

いくつかの ioctl は複数の構造体の引き数を必要としたり、値を返したり します。これらには // MORE マークを付けて、さらに分離したセクションで 説明してあります。

このリストは不完全です。 変更や意見は <mec@duracef.shout.net> まで e-mail で連絡して下さい。

ioctl の構造

ioctl コマンドの値は 32 ビットの定数です。 原則として、これらの定数は全く任意のものですが、 設計者は何らかの構造をこれらの定数に組み込もうとしています。

昔の Linux では、大部分は 16 ビットの定数であり、 下位バイトはシリアル番号で、上位バイトはドライバのタイプを表していました。 メジャー番号が使われることもありました: 0x03 が HDIO_* ioctl, 0x06 が LP* ioctl などです。 1 文字以上の ASCII 文字列が使われることもありました。 たとえば TCGETS の値は 0x00005401 であり、 0x54 = 'T' でターミナルドライバを表します。 CYGETTIMEOUT の値は 0x00435906 であり、 0x43 0x59 = 'C' 'Y' で cyclades ドライバを表します。

後の時代 (0.98p5) になると、 より多くの情報が数値に組み込まれるようになりました。 1 つの数値は、読み書きの方向を表す 2 ビット (00: 読み書きなし, 01: 書き込み, 10: 読み込み, 11: 読み込み/書き込み)、 (引き数のサイズを表す) 14 ビット、 (共通の目的または共通のドライバで ioctl をグループにするための) 8 ビットのタイプ、8 ビットのシリアル番号から構成されます。

この構造を記述するマクロは <asm/ioctl.h> にあり、 _IO(type,nr) と {_IOR,_IOW,_IOWR}(type,nr,size) です。 これらのマクロは sizeof(size) を使うので、 ここで size という名前にしているのは間違っています: この 3 つ目の引き数はデータタイプです。

size ビットは全く当てにならない点に注意して下さい: 多くの場合、間違っています。 これは sizeof(sizeof(struct)) を使ったバグを含んだマクロや、 過去から受け継いだ値が原因です。

したがって、新しい構造は不都合な点しかないように思われます: この構造はチェックの手助けにはならず、 様々なアーキテクチャによって値を変化させてしまいます。

返り値

きちんとした ioctl は、成功した場合は 0 を返し、 エラーの場合は -1 を返します。 また出力値は引き数に格納します。 しかし実際は、かなり多くの ioctl が出力値を返します。 これは今のところ以下では示されていません。
 
 
 // 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.
 
いくつかの ioctl は追加のポインタを含む構造体へのポインタを使用します。 ここでこれらをアルファベット順に説明します。

CDROMREADAUDIO は入力ポインタ 'const struct cdrom_read_audio *' を 使用します。'buf' フィールドは大きさ 'nframes * CD_FRAMESIZE_RAW' の 出力バッファへのポインタです。

CDROMREADCOOKED, CDROMREADMODE1, CDROMREADMODE2, CDROMREADRAW は 入力ポインタ 'const struct cdrom_msf *' を使用します。これらは 同じポインタを 'char []' への出力ポインタとして使用します。 長さは要求によって変化します。CDROMREADMODE1 には、多くのデバイスが 'CD_FRAMESIZE' を使用しますが、光学記憶装置 (光ディスク) のドライバは 'OPT_BLOCKSIZE' を使用します (どちらも同じ値で 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, EQL_SETMASTERCFG は 'struct ifreq *' を使用します。 'ifr_data' フィールドは以下に示す別の構造体へのポインタです:
 
             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 は 'struct floppy raw_cmd *' を使用します。 'flags & FD_RAW_WRITE' がゼロ以外の場合、'data' は大きさ 'length' の入力 バッファへのポインタになります。'flags & FD_RAW_READ' がゼロ以外の場合、 'data' は大きさ 'length' の出力バッファへのポインタになります。

GIO_FONTX, PIO_FONTX はそれぞれ 'struct console_font_desc *' と 'const struct console_font_desc *' を使用します。 'chardata' は 'char [charcount]' バッファへのポインタです。 これは GIO_FONTX の出力バッファと PIO_FONTX の入力バッファです。

GIO_UNIMAP, PIO_UNIMAP はそれぞれ 'struct unimapdesc *' と 'const struct unimapdesc *' を使用します。 'entries'は 'struct unipair [entry_ct]' バッファへのポインタです。 これは GIO_UNIMAP の出力バッファと PIO_UNIMAP の入力バッファです。

KDADDIO, KDDELIO, KDDISABIO, KDENABIO は I/O ポートへのアクセスを 可能/不可能にします。これらは本質的に、'ioperm' への別の インターフェースです。

KDMAPDISP, KDUNMAPDISP はメモリ・マッピングや I/O ポートへの アクセスを可能/不可能にします。これらはカーネルに実装されていません。

SCSI_IOCTL_PROBE_HOST は入力ポインタ 'const int *' を大きさとして 使用します。これは同じ大きさの 'char []' バッファ への出力ポインタ としても使用します。

SIOCADDRT, SIOCDELRT は型が以下のプロトコルに依存する入力ポインタを 使用します:

 
             Most protocols              const struct rtentry *
             AX.25                       const struct ax25_route *
             NET/ROM                     const struct nr_route_struct *
 
 
SIOCGIFCONF は 'struct ifconf *' を使用します。この 'ifc_buf' フィールドは長さ 'ifc_len' バイトのバッファへのポインタです。 これにカーネルが 'struct ifreq []' 型のリストへ書き込みます。

SIOCSIFHWADDR は型が以下のプロトコルに依存する入力ポインタを使用します:

 
             Most protocols              const struct ifreq *
             AX.25                       const char [AX25_ADDR_LEN]
 
 
TIOCLINUX は 'const char *' を使用します。このポインタをいくつかの 独立したサブクラスを識別する為に使用します。以下のテーブルの中で、 'N + foo' は 'foo' N バイトの詰めものの後にある 'foo' を意味します。 'struct selection' は暗黙的に '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

このリストは SIOCDEVPRIVATE から SIOCPROTOPRIVATE の範囲の ioctl を 含んでいません。

 
 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
 
 

関連項目

ioctl(2)