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 |