Scroll to navigation

IOCTL_LIST(2) Linux-Programmierhandbuch 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.

In der alten Linux-Situation waren dies hauptsächlich 16-Bit-Konstanten, wobei das letzte Byte eine Seriennummer war und das/die vorhergehende(n) Byte(s) den Typ des Treibers anzeigten. 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 verwandt. 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) wurden weitere Informationen in die Nummer eingebaut. Es gibt zwei Richtungs-Bits (00: keine, 01: schreiben, 10: lesen, 11: lesen/schreiben), gefolgt von 14 Größen-Bits (die die Größe des Arguments angeben), gefolgt von einem 8-Bit-Typ (die die Ioctls in Gruppen für einen gemeinsamen Zweck oder gemeinsamen Treiber sammeln) und einer 8-Bit-Seriennummer.

Die Makros, die diese Struktur beschreiben, befinden sich in <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 Fehlbenennung ist: dieses 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 historisch geerbter Werte.

Daher scheint es, dass die neue Struktur nur Nachteile ergab: 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.04 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 die Mailingliste der Übersetzer.

19. November 2019 Linux