IOCTL_LIST(2)

BEZEICHNUNG
ioctl_list - Liste der ioctl-Aufrufe im Linux/i386-Kernel

BESCHREIBUNG
Dies ist die Ioctl-Liste 1.3.27, eine Liste von Ioctl-Aufrufen im Linux/i386-Kernel 1.3.27. Sie enthält 421 Ioctls aus </usr/include/{asm,linux}/*.h>. Für jeden Ioctl wird der numerische Wert, der Name und der Argumenttyp aufgelistet.

Ein Argumenttyp const struct foo * bedeutet, dass das Argument Eingabe für den Kernel ist. struct foo * bedeutet, der Kernel gibt das Argument aus. Falls der Kernel das Argument für Ein- und Ausgabe benutzt, wird dies durch // E/A markiert.

Einige Ioctls benötigen mehr Argumente oder geben mehr Werte zurück als eine einzige Struktur. Diese werden durch // WEITERE markiert und weiter in einem separaten Abschnitt dokumentiert. Außerdem sind Informationen zu einigen Ioctls im Abschnitt SIEHE AUCH der Handbuchseite zu ioctl(2) zu finden.

Diese Liste ist sehr unvollständig.

  Ioctl-Struktur
Ioctl-Befehle sind 32-Bit-Konstanten. Im Prinzip sind diese Konstanten vollkommen willkürlich, aber es gibt Bestrebungen, etwas Struktur zu etablieren.

Die alte Linux-Situation war, dass 16-Bit-Konstanten vorherrschten, wobei das letzte Byte eine Seriennummer ist und das/die vorhergehende(n) Byte(s) den Typ des Treibers anzeigt. Manchmal wurde die Major-Nummer verwendet: 0x03 für die HDIO_*-Ioctls, 0x06 für die LP*-Ioctls. Und manchmal wurden ein oder mehrere ASCII-Buchstaben verwendet. Beispielsweise hat TCGETS den Wert 0x00005401, mit 0x54 = 'T' zur Angabe des Terminal-Treibers und CYGETTIMEOUT hat den Wert 0x00435906, mit 0x43 0x59 = 'C' 'Y' zur Angabe des »cyclades«-Treibers.

Später (0.98p5) wurde etwas mehr Information in die Zahlen eingebaut. Es gibt zwei Richtungs-Bits (00:keine, 01: schreiben, 10: lesen, 11: lesen/schreiben) gefolgt von 14 Größen-Bits (übergeben die Größe als Argument) gefolgt von einem 8-Bit-Typ (gruppiert die Ioctls für einen gemeinsamen Zweck oder einen gemeinsamen Treiber) sowie eine 8-Bit-Seriennummer.

Die Makros, die diese Struktur beschreiben, stammen aus <asm/ioctl.h> und sind _IO(type,nr) und {_IOR,_IOW,_IOWR}(type,nr,size). Sie verwenden sizeof(size), so dass die Größe hier eine Fehlbezeichnung ist: das dritte Argument ist ein Datentyp.

Beachten Sie, dass die Größen-Bits sehr unzuverlässig sind: in vielen Fällen stimmen sie nicht, entweder aufgrund fehlerhafter Makros, die sizeof(sizeof(struct)) verwenden oder aufgrund vererbter (legacy) Werte.

Daher scheint es, dass die neue Struktur nur Nachteile mit sich brachte: sie hilft nicht beim Überprüfen, verursacht aber variierende Werte für die verschiedenen Architekturen.

RÜCKGABEWERT
»Anständige« Ioctls geben bei Erfolg 0 zurück und -1 bei einem Fehler, während jede ausgegebene Wert mittels des Arguments gespeichert wird. Allerdings geben etliche Ioctls in der Tat einen Ausgabewert zurück. Dies ist im Folgenden noch nicht angegeben.

// Haupttabelle

// <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 * | // WEITERE
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 * | // E/A
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 * | // E/A
0x00005307 | CDROMSTOP | void
0x00005308 | CDROMSTART | void
0x00005309 | CDROMEJECT | void
0x0000530A | CDROMVOLCTRL | const struct cdrom_volctrl *
0x0000530B | CDROMSUBCHNL | struct cdrom_subchnl * | // E/A
0x0000530C | CDROMREADMODE2 | const struct cdrom_msf * | // WEITERE
0x0000530D | CDROMREADMODE1 | const struct cdrom_msf * | // WEITERE
0x0000530E | CDROMREADAUDIO | const struct cdrom_read_audio * | // WEITERE
0x0000530F | CDROMEJECT_SW | int
0x00005310 | CDROMMULTISESSION | struct cdrom_multisession * | // E/A
0x00005311 | CDROM_GET_UPC | struct { char [8]; } *
0x00005312 | CDROMRESET | void
0x00005313 | CDROMVOLREAD | struct cdrom_volctrl *
0x00005314 | CDROMREADRAW | const struct cdrom_msf * | // WEITERE
0x00005315 | CDROMREADCOOKED | const struct cdrom_msf * | // WEITERE
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 * | // WEITERE // E/A
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 * | // E/A
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 * | // E/A
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 * | // WEITERE // E/A
0x000089F1 | EQL_EMANCIPATE | struct ifreq * | // WEITERE // E/A
0x000089F2 | EQL_GETSLAVECFG | struct ifreq * | // WEITERE // E/A
0x000089F3 | EQL_SETSLAVECFG | struct ifreq * | // WEITERE // E/A
0x000089F4 | EQL_GETMASTRCFG | struct ifreq * | // WEITERE // E/A
0x000089F5 | EQL_SETMASTRCFG | struct ifreq * | // WEITERE // E/A

// <include/linux/if_plip.h>
0x000089F0 | SIOCDEVPLIP | struct ifreq * | // E/A

// <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 * | // WEITERE // E/A
0x00004B6C | PIO_FONTX | const struct console_font_desc * | // WEITERE
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 | // WEITERE
0x00004B35 | KDDELIO | int | // WEITERE
0x00004B36 | KDENABIO | void | // WEITERE
0x00004B37 | KDDISABIO | void | // WEITERE
0x00004B3A | KDSETMODE | int
0x00004B3B | KDGETMODE | int *
0x00004B3C | KDMAPDISP | void | // WEITERE
0x00004B3D | KDUNMAPDISP | void | // WEITERE
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 * | // WEITERE // E/A
0x00004B67 | PIO_UNIMAP | const struct unimapdesc * | // WEITERE
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 * | // E/A
0x00004B47 | KDSKBENT | const struct kbentry *
0x00004B48 | KDGKBSENT | struct kbsentry * | // E/A
0x00004B49 | KDSKBSENT | const struct kbsentry *
0x00004B4A | KDGKBDIACR | struct kbdiacrs *
0x00004B4B | KDSKBDIACR | const struct kbdiacrs *
0x00004B4C | KDGETKEYCODE | struct kbkeycode * | // E/A
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 * | // E/A
0x000089E1 | SIOCGETSGCNT | struct sioc_sg_req * | // E/A

// <include/linux/msdos_fs.h> siehe 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 * | // E/A
0x000089E1 | SIOCNRSETPARMS | const struct nr_parms_struct *
0x000089E2 | SIOCNRDECOBS | void
0x000089E3 | SIOCNRRTCTL | const int *

// <include/uapi/linux/wireless.h>
// Dieses API ist missbilligt.
// Es wird durch nl80211 und cfg80211 ersetzt. Siehe
// 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 * | // E/A
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 * | // WEITERE

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

// <include/uapi/linux/sockios.h> siehe netdevice(7)

0x0000890B | SIOCADDRT | const struct rtentry * | // WEITERE
0x0000890C | SIOCDELRT | const struct rtentry * | // WEITERE
0x00008910 | SIOCGIFNAME | char []
0x00008911 | SIOCSIFLINK | void
0x00008912 | SIOCGIFCONF | struct ifconf * | // WEITERE // E/A
0x00008913 | SIOCGIFFLAGS | struct ifreq * | // E/A
0x00008914 | SIOCSIFFLAGS | const struct ifreq *
0x00008915 | SIOCGIFADDR | struct ifreq * | // E/A
0x00008916 | SIOCSIFADDR | const struct ifreq *
0x00008917 | SIOCGIFDSTADDR | struct ifreq * | // E/A
0x00008918 | SIOCSIFDSTADDR | const struct ifreq *
0x00008919 | SIOCGIFBRDADDR | struct ifreq * | // E/A
0x0000891A | SIOCSIFBRDADDR | const struct ifreq *
0x0000891B | SIOCGIFNETMASK | struct ifreq * | // E/A
0x0000891C | SIOCSIFNETMASK | const struct ifreq *
0x0000891D | SIOCGIFMETRIC | struct ifreq * | // E/A
0x0000891E | SIOCSIFMETRIC | const struct ifreq *
0x0000891F | SIOCGIFMEM | struct ifreq * | // E/A
0x00008920 | SIOCSIFMEM | const struct ifreq *
0x00008921 | SIOCGIFMTU | struct ifreq * | // E/A
0x00008922 | SIOCSIFMTU | const struct ifreq *
0x00008923 | OLD_SIOCGIFHWADDR | struct ifreq * | // E/A
0x00008924 | SIOCSIFHWADDR | const struct ifreq * | // WEITERE
0x00008925 | SIOCGIFENCAP | int *
0x00008926 | SIOCSIFENCAP | const int *
0x00008927 | SIOCGIFHWADDR | struct ifreq * | // E/A
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 * | // E/A
0x00008952 | SIOCSARP | const struct arpreq *
0x00008960 | SIOCDRARP | const struct arpreq *
0x00008961 | SIOCGRARP | struct arpreq * | // E/A
0x00008962 | SIOCSRARP | const struct arpreq *
0x00008970 | SIOCGIFMAP | struct ifreq * | // E/A
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 * | // E/A
0xC0045103 | SNDCTL_SEQ_CTRLRATE | int * | // E/A
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 * | // E/A
0x4004510D | SNDCTL_SEQ_THRESHOLD | const int *
0xC004510E | SNDCTL_SYNTH_MEMAVL | int * | // E/A
0x4004510F | SNDCTL_FM_4OP_ENABLE | const int *
0xCFB85110 | SNDCTL_PMGR_ACCESS | struct patmgr_info * | // E/A
0x00005111 | SNDCTL_SEQ_PANIC | void
0x40085112 | SNDCTL_SEQ_OUTOFBAND | const struct seq_event_rec *
0xC0045401 | SNDCTL_TMR_TIMEBASE | int * | // E/A
0x00005402 | SNDCTL_TMR_START | void
0x00005403 | SNDCTL_TMR_STOP | void
0x00005404 | SNDCTL_TMR_CONTINUE | void
0xC0045405 | SNDCTL_TMR_TEMPO | int * | // E/A
0xC0045406 | SNDCTL_TMR_SOURCE | int * | // E/A
0x40045407 | SNDCTL_TMR_METRONOME | const int *
0x40045408 | SNDCTL_TMR_SELECT | int * | // E/A
0xCFB85001 | SNDCTL_PMGR_IFACE | struct patmgr_info * | // E/A
0xC0046D00 | SNDCTL_MIDI_PRETIME | int * | // E/A
0xC0046D01 | SNDCTL_MIDI_MPUMODE | const int *
0xC0216D02 | SNDCTL_MIDI_MPUCMD | struct mpu_command_rec * | // E/A
0x00005000 | SNDCTL_DSP_RESET | void
0x00005001 | SNDCTL_DSP_SYNC | void
0xC0045002 | SNDCTL_DSP_SPEED | int * | // E/A
0xC0045003 | SNDCTL_DSP_STEREO | int * | // E/A
0xC0045004 | SNDCTL_DSP_GETBLKSIZE | int * | // E/A
0xC0045006 | SOUND_PCM_WRITE_CHANNELS | int * | // E/A
0xC0045007 | SOUND_PCM_WRITE_FILTER | int * | // E/A
0x00005008 | SNDCTL_DSP_POST | void
0xC0045009 | SNDCTL_DSP_SUBDIVIDE | int * | // E/A
0xC004500A | SNDCTL_DSP_SETFRAGMENT | int * | // E/A
0x8004500B | SNDCTL_DSP_GETFMTS | int *
0xC0045005 | SNDCTL_DSP_SETFMT | int * | // E/A
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 * | // E/A
0xC0144303 | SNDCTL_COPR_RCODE | struct copr_debug_buf * | // E/A
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 * | // E/A
0xC0144307 | SNDCTL_COPR_HALT | struct copr_debug_buf * | // E/A
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 * | // E/A
0xC0044D01 | SOUND_MIXER_WRITE_BASS | int * | // E/A
0xC0044D02 | SOUND_MIXER_WRITE_TREBLE | int * | // E/A
0xC0044D03 | SOUND_MIXER_WRITE_SYNTH | int * | // E/A
0xC0044D04 | SOUND_MIXER_WRITE_PCM | int * | // E/A
0xC0044D05 | SOUND_MIXER_WRITE_SPEAKER | int * | // E/A
0xC0044D06 | SOUND_MIXER_WRITE_LINE | int * | // E/A
0xC0044D07 | SOUND_MIXER_WRITE_MIC | int * | // E/A
0xC0044D08 | SOUND_MIXER_WRITE_CD | int * | // E/A
0xC0044D09 | SOUND_MIXER_WRITE_IMIX | int * | // E/A
0xC0044D0A | SOUND_MIXER_WRITE_ALTPCM | int * | // E/A
0xC0044D0B | SOUND_MIXER_WRITE_RECLEV | int * | // E/A
0xC0044D0C | SOUND_MIXER_WRITE_IGAIN | int * | // E/A
0xC0044D0D | SOUND_MIXER_WRITE_OGAIN | int * | // E/A
0xC0044D0E | SOUND_MIXER_WRITE_LINE1 | int * | // E/A
0xC0044D0F | SOUND_MIXER_WRITE_LINE2 | int * | // E/A
0xC0044D10 | SOUND_MIXER_WRITE_LINE3 | int * | // E/A
0xC0044D1C | SOUND_MIXER_WRITE_MUTE | int * | // E/A
0xC0044D1D | SOUND_MIXER_WRITE_ENHANCE | int * | // E/A
0xC0044D1E | SOUND_MIXER_WRITE_LOUD | int * | // E/A
0xC0044DFF | SOUND_MIXER_WRITE_RECSRC | int * | // E/A

// <include/linux/timerfd.h> siehe timerfd_create(2)
0x40085400 | TFD_IOC_SET_TICKS | uint64_t *

// <include/linux/umsdos_fs.h>
0x000004D2 | UMSDOS_READDIR_DOS | struct umsdos_ioctl * | // E/A
0x000004D3 | UMSDOS_UNLINK_DOS | const struct umsdos_ioctl *
0x000004D4 | UMSDOS_RMDIR_DOS | const struct umsdos_ioctl *
0x000004D5 | UMSDOS_STAT_DOS | struct umsdos_ioctl * | // E/A
0x000004D6 | UMSDOS_CREAT_EMD | const struct umsdos_ioctl *
0x000004D7 | UMSDOS_UNLINK_EMD | const struct umsdos_ioctl *
0x000004D8 | UMSDOS_READDIR_EMD | struct umsdos_ioctl * | // E/A
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 *

// Weitere Argumente. Einige Ioctls benötigen einen Zeiger auf eine Struktur, die zusätzliche Zeiger enthält. Diese sind hier in alphabetischer Reihenfolge dokumentiert.

CDROMREADAUDIO benötigt einen Eingabezeiger const struct cdrom_read_audio *. Das Feld buf zeigt auf einen Ausgabepuffer der Länge nframes * CD_FRAMESIZE_RAW.

CDROMREADCOOKED, CDROMREADMODE1, CDROMREADMODE2 und CDROMREADRAW benötigen einen Eingabezeiger const struct cdrom_msf *. Sie benutzen denselben Zeiger als Ausgabezeiger auf char []. Die Länge ändert sich durch die Anforderung. Bei CDROMREADMODE1 benutzen die meisten Treiber CD_FRAMESIZE, jedoch benutzt der Optics-Storage-Treiber stattdessen OPT_BLOCKSIZE (beide haben den numerischen Wert 2048).

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

EQL_ENSLAVE, EQL_EMANCIPATE, EQL_GETSLAVECFG, EQL_SETSLAVECFG, EQL_GETMASTERCFG und EQL_SETMASTERCFG benötigen ein struct ifreq *. Das Feld ifr_data ist ein Zeiger auf eine weitere Struktur wie folgt:

    EQL_ENSLAVE         const struct slaving_request *
    EQL_EMANCIPATE      const struct slaving_request *
    EQL_GETSLAVECFG     struct slave_config *           // E/A
    EQL_SETSLAVECFG     const struct slave_config *
    EQL_GETMASTERCFG    struct master_config *
    EQL_SETMASTERCFG    const struct master_config *

FDRAWCMD benötigt ein struct floppy raw_cmd *. Falls flags & FD_RAW_WRITE nicht Null ist, dann zeigt data auf einen Eingabepuffer der Länge length. Falls flags & FD_RAW_READ nicht Null ist, dann zeigt data auf einen Ausgabepuffer der Länge length.

GIO_FONTX und PIO_FONTX benötigen ein struct console_font_desc * beziehungsweise ein const struct console_font_desc *. chardata zeigt auf einen Puffer von char [charcount]. Dies ist ein Ausgabepuffer für GIO_FONTX und ein Eingabepuffer für PIO_FONTX.

GIO_UNIMAP und PIO_UNIMAP benötigen eine struct unimapdesc * beziehungsweise ein const struct unimapdesc *. entries zeigt auf einen Puffer von struct unipair [entry_ct]. Dies ist ein Ausgabepuffer für GIO_UNIMAP und ein Eingabepuffer für PIO_UNIMAP.

KDADDIO, KDDELIO, KDDISABIO und KDENABIO geben den Zugriff auf E/A-Ports frei oder sperren ihn. Sie sind grundlegende Alternativen zu »ioperm«.

KDMAPDISP und KDUNMAPDISP aktivieren oder deaktivieren Memory-Mappings oder den Zugriff auf E/A-Ports. Sie sind nicht im Kernel implementiert.

SCSI_IOCTL_PROBE_HOST benötigt einen Eingabezeiger const int *, der eine Länge ist. Er benutzt denselben Zeiger als Ausgabezeiger auf einen char []-Puffer dieser Länge.

SIOCADDRT und SIOCDELRT benötigen einen Eingabezeiger, dessen Typ vom Protokoll abhängt:

    Die meisten Protokolle      const struct rtentry *
    AX.25                       const struct ax25_route *
    NET/ROM                     const struct nr_route_struct *
    INET6                       const struct in6_rtmsg *

SIOCGIFCONF benötigt ein struct ifconf *. Das Feld ifc_buf zeigt auf einen Puffer der Länge ifc_len Byte, wohinein der Kernel eine Liste des Typs struct ifreq [] schreibt.

SIOCSIFHWADDR benötigt einen Eingabezeiger, dessen Typ vom Protokoll abhängt:

    Die meisten Protokolle      const struct ifreq *
    AX.25                       const char [AX25_ADDR_LEN]

TIOCLINUX benötigt ein const char *. Es benutzt dies, um zwischen diversen Unterfällen zu unterscheiden. In der Tabelle unten bedeutet N + foo so viel wie foo nach einem N-byte-Block. struct selection ist definiert in drivers/char/selection.c.

    TIOCLINUX-2         1 + const struct selection *
    TIOCLINUX-3         void
    TIOCLINUX-4         void
    TIOCLINUX-5         4 + const struct { long [8]; } *
    TIOCLINUX-6         char *
    TIOCLINUX-7         char *
    TIOCLINUX-10        1 + const char *

// Doppelte Ioctls

Diese Liste enthält keine Ioctls der Bereiche SIOCDEVPRIVATE und 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

SIEHE AUCH
ioctl(2), ioctl_fat(2), netdevice(7)

KOLOPHON
Diese Seite ist Teil der Veröffentlichung 5.05 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Helge Kreutzmann <debian@helgefjell.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.