IOCTL_LIST(2)

NOM
ioctl_list - Liste des requêtes ioctl pour Linux/i386

DESCRIPTION
On trouvera ici la liste des arguments IOCTL du noyau Linux/i386 1.3.27. Cette liste contient 421 requêtes ioctl situées dans </usr/include/{asm,linux}/*.h>. Pour chaque ioctl, on trouvera sa valeur numérique, son nom et le type de son argument.

Un type d'argument const struct foo * signifie que l'argument est une entrée pour le noyau, alors que struct foo * signifie que c'est une sortie pour le noyau. Si le noyau utilise un argument à la fois en entrée et sortie, il sera indiqué avec // I-O.

Certains ioctls prennent plusieurs arguments, ou retournent plus de valeurs qu'une simple structure. Ceux-ci sont indiqués avec // PLUS et documentés plus tard.

Cette liste n'est absolument pas complète.

  Structure des ioctl
Les valeurs des commandes ioctl sont des constantes 32 bits. En principe, ces constantes sont complètement arbitraires, mais certaines personnes ont essayé de les structurer un peu.

Dans les anciens noyaux Linux, la plupart étaient des constantes 16 bits, où le dernier octet était un numéro de série, et le(s) précédent(s) indiquai(en)t le pilote. Parfois c'était le numéro majeur : 0x03 pour les ioctls HDIO_*, 0x06 pour ceux LP*. Et parfois une ou plusieurs lettres ASCII. Par exemple, TCGETS vaut 0x00005401, avec 0x54 = 'T' indiquant le pilote de terminal, et CYGETTIMEOUT vaut 0x00435906, avec 0x43 0x59 = 'C' 'Y' indiquant le pilote cyclade.

Ensuite (0.98p5) un peu plus d'information a été ajoutée dans le numéro. Il y a deux bits de direction (00 : aucune, 01 : écriture, 10 : lecture, 11 : lecture/écriture) suivis de 14 bits de taille (indiquant la taille de l'argument), suivis d'un type sur 8 bits (ce qui regroupe les ioctls pour un même but ou un même pilote), puis un numéro de série sur 8 bits.

Les macros écrivant cette structure se trouvent dans <asm/ioctl.h> et sont _IO(type,nr) et {_IOR,_IOW,_IOWR}(type,nr,size). Elles utilisent sizeof(size) ce qui indique que "size" est un mauvais nom ici, le troisième paramètre étant le type de donnée.

Notez que les bits de taille sont peu fiables — dans de nombreux cas ils sont faux, soit à cause d'une macro boguée utilisant sizeof(sizeof(struct)), ou à cause de valeurs imposées.

Ainsi, il semble que la nouvelle structure n'offre que des désagréments : elle n'aide pas vraiment aux vérifications, mais elle crée des valeurs différentes sur les diverses architectures.

VALEUR RENVOYÉE
Les ioctls décents renvoient 0 s'ils réussissent et -1 en cas d'erreur, avec toute valeur de sortie stockée dans l'argument. Toutefois, certains renvoient en fait la valeur de sortie directement. Ce n'est pas encore indiqué ci-dessous.

// Table principale.

// <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 * | // PLUS
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 * | // PLUS
0x0000530D | CDROMREADMODE1 | const struct cdrom_msf * | // PLUS
0x0000530E | CDROMREADAUDIO | const struct cdrom_read_audio * | // PLUS
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 * | // PLUS
0x00005315 | CDROMREADCOOKED | const struct cdrom_msf * | // PLUS
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 * | // PLUS // 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 | 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 * | // PLUS // I-O
0x000089F1 | EQL_EMANCIPATE | struct ifreq * | // PLUS // I-O
0x000089F2 | EQL_GETSLAVECFG | struct ifreq * | // PLUS // I-O
0x000089F3 | EQL_SETSLAVECFG | struct ifreq * | // PLUS // I-O
0x000089F4 | EQL_GETMASTRCFG | struct ifreq * | // PLUS // I-O
0x000089F5 | EQL_SETMASTRCFG | struct ifreq * | // PLUS // 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 * | // PLUS // I-O
0x00004B6C | PIO_FONTX | const struct console_font_desc * | //PLUS
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 | // PLUS
0x00004B35 | KDDELIO | int | // PLUS
0x00004B36 | KDENABIO | void | // PLUS
0x00004B37 | KDDISABIO | void | // PLUS
0x00004B3A | KDSETMODE | int
0x00004B3B | KDGETMODE | int *
0x00004B3C | KDMAPDISP | void | // PLUS
0x00004B3D | KDUNMAPDISP | void | // PLUS
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 * | // PLUS // I-O
0x00004B67 | PIO_UNIMAP | const struct unimapdesc * | // PLUS
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>
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 *

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

// <include/linux/smb_fs.h>
0x80027501 | SMB_IOC_GETMOUNTUID | uid_t *

// <include/linux/sockios.h>
0x0000890B | SIOCADDRT | const struct rtentry * | // PLUS
0x0000890C | SIOCDELRT | const struct rtentry * | // PLUS
0x00008910 | SIOCGIFNAME | char []
0x00008911 | SIOCSIFLINK | void
0x00008912 | SIOCGIFCONF | struct ifconf * | // PLUS // 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 * | // PLUS
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 *

// Plus de paramètres. Certains ioctls utilisent un pointeur sur une structure contenant des pointeurs supplémentaires. Les voici par ordre alphabétique.

CDROMREADAUDIO prend un pointeur du type const struct cdrom_read_audio *. Le champ buf pointe sur un tampon de sortie de longueur nframes * CD_FRAMESIZE_RAW.

CDROMREADCOOKED, CDROMREADMODE1, CDROMREADMODE2, et CDROMREADRAW prennent un pointeur d'entrée const struct cdrom_msf *. Ils utilisent le même pointeur en sortie en tant que char []. La longueur dépend de l'action. Pour CDROMREADMODE1, la plupart des pilotes de périphériques utilisent 'CD_FRAMESIZE', mais le pilote Optics Storage utilise 'OPT_BLOCKSIZE' à la place (les deux valent 2048).

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

EQL_ENSLAVE, EQL_EMANCIPATE, EQL_GETSLAVECFG, EQL_SETSLAVECFG, EQL_GETMASTERCFG et EQL_SETMASTERCFG prennent une struct ifreq *. le champ ifr_data est un pointeur sur une autre structure :

    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 prend une struct floppy raw_cmd *. Si flags & FD_RAW_WRITE est non nul, alors data pointe sur un tampon d'entrée de longueur length. Si flags & FD_RAW_READ est non nul, alors data pointe sur un tampon de sortie de longueur length.

GIO_FONTX et PIO_FONTX prennent une struct console_font_desc * et une const struct console_font_desc *, respectivement. chardata pointe sur un tampon char [charcount]. C'est un tampon de sortie pour GIO_FONTX et d'entrée pour PIO_FONTX.

GIO_UNIMAP et PIO_UNIMAP prennent struct unimapdesc * et une const struct unimapdesc *, respectivement. entries pointe sur un tampon struct unipair [entry_ct]. C'est un tampon de sortie pour GIO_UNIMAP et un tampon d'entrée pour PIO_UNIMAP.

KDADDIO, KDDELIO, KDDISABIO, et KDENABIO valident ou invalident les accès aux ports d'entrée/sortie. Ce sont surtout des alternatives d'interface à 'ioperm'.

KDMAPDISP et KDUNMAPDISP valident et invalident la projection en mémoire des ports d'entrée/sortie. Ils ne sont pas implémentés dans le noyau.

SCSI_IOCTL_PROBE_HOST prend un pointeur d'entrée const int *, qui correspond à une longueur. Il utilise le même pointeur en sortie en tant que tampon char [] de cette longueur.

SIOCADDRT et SIOCDELRT prennent un pointeur qui dépend du protocole :

    La plupart des protocoles   const struct rtentry *
    AX.25                       const struct ax25_route *
    NET/ROM                     const struct nr_route_struct *

SIOCGIFCONF prend une struct ifconf *. Le champ ifc_buf pointe sur un tampon de longueur ifc_len octets, dans lequel le noyau écrit une liste de type struct ifreq [].

SIOCSIFHWADDR prend un pointeur d'entrée dont le type dépend du protocole :

    La plupart des protocoles   const struct ifreq *
    AX.25                       const char [AX25_ADDR_LEN]

TIOCLINUX prend un const char *. Il utilise ceci pour distinguer entre différent cas. Dans la table ci-dessous, N + foo signifie foo après un remplissage de N octets. struct selection est définie implicitement dans 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 *

// Ioctls dupliqués

Cette liste n'inclut pas les ioctls dans l'intervalle entre SIOCDEVPRIVATE et 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

VOIR AUSSI
ioctl(2)

COLOPHON
Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet manpages-fr.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».