ioctl_list(2) 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.

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>

0x00008901FIOSETOWNconst int *
0x00008902SIOCSPGRPconst int *
0x00008903FIOGETOWNint *
0x00008904SIOCGPGRPint *
0x00008905SIOCATMARint *
0x00008906SIOCGSTAMPtimeval *

// <include/asm-i386/termios.h>

0x00005401TCGETSstruct termios *
0x00005402TCSETSconst struct termios *
0x00005403TCSETSWconst struct termios *
0x00005404TCSETSFconst struct termios *
0x00005405TCGETAstruct termio *
0x00005406TCSETAconst struct termio *
0x00005407TCSETAWconst struct termio *
0x00005408TCSETAFconst struct termio *
0x00005409TCSBRKint
0x0000540ATCXONCint
0x0000540BTCFLSHint
0x0000540CTIOCEXCLvoid
0x0000540DTIOCNXCLvoid
0x0000540ETIOCSCTTYint
0x0000540FTIOCGPGRPpid_t *
0x00005410TIOCSPGRPconst pid_t *
0x00005411TIOCOUTQint *
0x00005412TIOCSTIconst char *
0x00005413TIOCGWINSZstruct winsize *
0x00005414TIOCSWINSZconst struct winsize *
0x00005415TIOCMGETint *
0x00005416TIOCMBISconst int *
0x00005417TIOCMBICconst int *
0x00005418TIOCMSETconst int *
0x00005419TIOCGSOFTCARint *
0x0000541ATIOCSSOFTCARconst int *
0x0000541BFIONREADint *
0x0000541BTIOCINQint *
0x0000541CTIOCLINUXconst char *// WEITERE
0x0000541DTIOCCONSvoid
0x0000541ETIOCGSERIALstruct serial_struct *
0x0000541FTIOCSSERIALconst struct serial_struct *
0x00005420TIOCPKTconst int *
0x00005421FIONBIOconst int *
0x00005422TIOCNOTTYvoid
0x00005423TIOCSETDconst int *
0x00005424TIOCGETDint *
0x00005425TCSBRKPint
0x00005426TIOCTTYGSTRUCTstruct tty_struct *
0x00005450FIONCLEXvoid
0x00005451FIOCLEXvoid
0x00005452FIOASYNCconst int *
0x00005453TIOCSERCONFIGvoid
0x00005454TIOCSERGWILDint *
0x00005455TIOCSERSWILDconst int *
0x00005456TIOCGLCKTRMIOSstruct termios *
0x00005457TIOCSLCKTRMIOSconst struct termios *
0x00005458TIOCSERGSTRUCTstruct async_struct *
0x00005459TIOCSERGETLSRint *
0x0000545ATIOCSERGETMULTIstruct serial_multiport_struct *
0x0000545BTIOCSERSETMULTIconst struct serial_multiport_struct *

// <include/linux/ax25.h>

0x000089E0SIOCAX25GETUIDconst struct sockaddr_ax25 *
0x000089E1SIOCAX25ADDUIDconst struct sockaddr_ax25 *
0x000089E2SIOCAX25DELUIDconst struct sockaddr_ax25 *
0x000089E3SIOCAX25NOUIDconst int *
0x000089E4SIOCAX25DIGCTLconst int *
0x000089E5SIOCAX25GETPARMSstruct ax25_parms_struct *// E/A
0x000089E6SIOCAX25SETPARMSconst struct ax25_parms_struct *

// <include/linux/cdk.h>

0x00007314STL_BINTRvoid
0x00007315STL_BSTARTvoid
0x00007316STL_BSTOPvoid
0x00007317STL_BRESETvoid

// <include/linux/cdrom.h>

0x00005301CDROMPAUSEvoid
0x00005302CDROMRESUMEvoid
0x00005303CDROMPLAYMSFconst struct cdrom_msf *
0x00005304CDROMPLAYTRKINDconst struct cdrom_ti *
0x00005305CDROMREADTOCHDRstruct cdrom_tochdr *
0x00005306CDROMREADTOCENTRYstruct cdrom_tocentry *// E/A
0x00005307CDROMSTOPvoid
0x00005308CDROMSTARTvoid
0x00005309CDROMEJECTvoid
0x0000530ACDROMVOLCTRLconst struct cdrom_volctrl *
0x0000530BCDROMSUBCHNLstruct cdrom_subchnl *// E/A
0x0000530CCDROMREADMODE2const struct cdrom_msf *// WEITERE
0x0000530DCDROMREADMODE1const struct cdrom_msf *// WEITERE
0x0000530ECDROMREADAUDIOconst struct cdrom_read_audio *// WEITERE
0x0000530FCDROMEJECT_SWint
0x00005310CDROMMULTISESSIONstruct cdrom_multisession *// E/A
0x00005311CDROM_GET_UPCstruct { char [8]; } *
0x00005312CDROMRESETvoid
0x00005313CDROMVOLREADstruct cdrom_volctrl *
0x00005314CDROMREADRAWconst struct cdrom_msf *// WEITERE
0x00005315CDROMREADCOOKEDconst struct cdrom_msf *// WEITERE
0x00005316CDROMSEEKconst struct cdrom_msf *

// <include/linux/cm206.h>

0x00002000CM206CTL_GET_STATint
0x00002001CM206CTL_GET_LAST_STATint

// <include/linux/cyclades.h>

0x00435901CYGETMONstruct cyclades_monitor *
0x00435902CYGETTHRESHint *
0x00435903CYSETTHRESHint
0x00435904CYGETDEFTHRESHint *
0x00435905CYSETDEFTHRESHint
0x00435906CYGETTIMEOUTint *
0x00435907CYSETTIMEOUTint
0x00435908CYGETDEFTIMEOUTint *
0x00435909CYSETDEFTIMEOUTint

// <include/linux/fd.h>

0x00000000FDCLRPRMvoid
0x00000001FDSETPRMconst struct floppy_struct *
0x00000002FDDEFPRMconst struct floppy_struct *
0x00000003FDGETPRMstruct floppy_struct *
0x00000004FDMSGONvoid
0x00000005FDMSGOFFvoid
0x00000006FDFMTBEGvoid
0x00000007FDFMTTRKconst struct format_descr *
0x00000008FDFMTENDvoid
0x0000000AFDSETEMSGTRESHint
0x0000000BFDFLUSHvoid
0x0000000CFDSETMAXERRSconst struct floppy_max_errors *
0x0000000EFDGETMAXERRSstruct floppy_max_errors *
0x00000010FDGETDRVTYPstruct { char [16]; } *
0x00000014FDSETDRVPRMconst struct floppy_drive_params *
0x00000015FDGETDRVPRMstruct floppy_drive_params *
0x00000016FDGETDRVSTATstruct floppy_drive_struct *
0x00000017FDPOLLDRVSTATstruct floppy_drive_struct *
0x00000018FDRESETint
0x00000019FDGETFDCSTATstruct floppy_fdc_state *
0x0000001BFDWERRORCLRvoid
0x0000001CFDWERRORGETstruct floppy_write_errors *
0x0000001EFDRAWCMDstruct floppy_raw_cmd *// WEITERE // E/A
0x00000028FDTWADDLEvoid

// <include/linux/fs.h>

0x0000125DBLKROSETconst int *
0x0000125EBLKROGETint *
0x0000125FBLKRRPARTvoid
0x00001260BLKGETSIZEunsigned long *
0x00001261BLKFLSBUFvoid
0x00001262BLKRASETint
0x00001263BLKRAGETint *
0x00000001FIBMAPint *// E/A
0x00000002FIGETBSZint *
0x80086601FS_IOC_GETFLAGSint *
0x40086602FS_IOC_SETFLAGSint *
0x80087601FS_IOC_GETVERSIONint *
0x40087602FS_IOC_SETVERSIONint *
0xC020660BFS_IOC_FIEMAPstruct fiemap *
0x40086602FS_IOC32_SETFLAGSint *
0x40086602FS_IOC32_SETFLAGSint *
0x80047601FS_IOC32_GETVERSIONint *
0x40047602FS_IOC32_SETVERSIONint *

// <include/linux/hdreg.h>

0x00000301HDIO_GETGEOstruct hd_geometry *
0x00000302HDIO_GET_UNMASKINTRint *
0x00000304HDIO_GET_MULTCOUNTint *
0x00000307HDIO_GET_IDENTITYstruct hd_driveid *
0x00000308HDIO_GET_KEEPSETTINGSint *
0x00000309HDIO_GET_CHIPSETint *
0x0000030AHDIO_GET_NOWERRint *
0x0000030BHDIO_GET_DMAint *
0x0000031FHDIO_DRIVE_CMDint *// E/A
0x00000321HDIO_SET_MULTCOUNTint
0x00000322HDIO_SET_UNMASKINTRint
0x00000323HDIO_SET_KEEPSETTINGSint
0x00000324HDIO_SET_CHIPSETint
0x00000325HDIO_SET_NOWERRint
0x00000326HDIO_SET_DMAint

// <include/linux/if_eql.h>

0x000089F0EQL_ENSLAVEstruct ifreq *// WEITERE // E/A
0x000089F1EQL_EMANCIPATEstruct ifreq *// WEITERE // E/A
0x000089F2EQL_GETSLAVECFGstruct ifreq *// WEITERE // E/A
0x000089F3EQL_SETSLAVECFGstruct ifreq *// WEITERE // E/A
0x000089F4EQL_GETMASTRCFGstruct ifreq *// WEITERE // E/A
0x000089F5EQL_SETMASTRCFGstruct ifreq *// WEITERE // E/A

// <include/linux/if_plip.h>

0x000089F0SIOCDEVPLIPstruct ifreq *// E/A

// <include/linux/if_ppp.h>

0x00005490PPPIOCGFLAGSint *
0x00005491PPPIOCSFLAGSconst int *
0x00005492PPPIOCGASYNCMAPint *
0x00005493PPPIOCSASYNCMAPconst int *
0x00005494PPPIOCGUNITint *
0x00005495PPPIOCSINPSIGconst int *
0x00005497PPPIOCSDEBUGconst int *
0x00005498PPPIOCGDEBUGint *
0x00005499PPPIOCGSTATstruct ppp_stats *
0x0000549APPPIOCGTIMEstruct ppp_ddinfo *
0x0000549BPPPIOCGXASYNCMAPstruct { int [8]; } *
0x0000549CPPPIOCSXASYNCMAPconst struct { int [8]; } *
0x0000549DPPPIOCSMRUconst int *
0x0000549EPPPIOCRASYNCMAPconst int *
0x0000549FPPPIOCSMAXCIDconst int *

// <include/linux/ipx.h>

0x000089E0SIOCAIPXITFCRTconst char *
0x000089E1SIOCAIPXPRISLTconst char *
0x000089E2SIOCIPXCFGDATAstruct ipx_config_data *

// <include/linux/kd.h>

0x00004B60GIO_FONTstruct { char [8192]; } *
0x00004B61PIO_FONTconst struct { char [8192]; } *
0x00004B6B  GIO_FONTX  struct console_font_desc *  // WEITERE // E/A
0x00004B6C  PIO_FONTX  const struct console_font_desc *  // WEITERE
0x00004B70GIO_CMAPstruct { char [48]; } *
0x00004B71PIO_CMAPconst struct { char [48]; }
0x00004B2FKIOCSOUNDint
0x00004B30KDMKTONEint
0x00004B31KDGETLEDchar *
0x00004B32KDSETLEDint
0x00004B33KDGKBTYPEchar *
0x00004B34KDADDIOint// WEITERE
0x00004B35KDDELIOint// WEITERE
0x00004B36KDENABIOvoid// WEITERE
0x00004B37KDDISABIOvoid// WEITERE
0x00004B3AKDSETMODEint
0x00004B3BKDGETMODEint *
0x00004B3CKDMAPDISPvoid// WEITERE
0x00004B3DKDUNMAPDISPvoid// WEITERE
0x00004B40GIO_SCRNMAPstruct { char [E_TABSZ]; } *
0x00004B41PIO_SCRNMAPconst struct { char [E_TABSZ]; } *
0x00004B69GIO_UNISCRNMAPstruct { short [E_TABSZ]; } *
0x00004B6APIO_UNISCRNMAPconst struct { short [E_TABSZ]; } *
0x00004B66GIO_UNIMAPstruct unimapdesc *// WEITERE // E/A
0x00004B67PIO_UNIMAPconst struct unimapdesc *// WEITERE
0x00004B68PIO_UNIMAPCLRconst struct unimapinit *
0x00004B44KDGKBMODEint *
0x00004B45KDSKBMODEint
0x00004B62KDGKBMETAint *
0x00004B63KDSKBMETAint
0x00004B64KDGKBLEDint *
0x00004B65KDSKBLEDint
0x00004B46KDGKBENTstruct kbentry *// E/A
0x00004B47KDSKBENTconst struct kbentry *
0x00004B48KDGKBSENTstruct kbsentry *// E/A
0x00004B49KDSKBSENTconst struct kbsentry *
0x00004B4AKDGKBDIACRstruct kbdiacrs *
0x00004B4BKDSKBDIACRconst struct kbdiacrs *
0x00004B4CKDGETKEYCODEstruct kbkeycode *// E/A
0x00004B4DKDSETKEYCODEconst struct kbkeycode *
0x00004B4EKDSIGACCEPTint

// <include/linux/lp.h>

0x00000601LPCHARint
0x00000602LPTIMEint
0x00000604LPABORTint
0x00000605LPSETIRQint
0x00000606LPGETIRQint *
0x00000608LPWAITint
0x00000609LPCAREFULint
0x0000060ALPABORTOPENint
0x0000060BLPGETSTATUSint *
0x0000060CLPRESETvoid
0x0000060DLPGETSTATSstruct lp_stats *

// <include/linux/mroute.h>

0x000089E0SIOCGETVIFCNTstruct sioc_vif_req *// E/A
0x000089E1SIOCGETSGCNTstruct sioc_sg_req *// E/A

// <include/linux/msdos_fs.h> siehe ioctl_fat(2)

0x82307201VFAT_IOCTL_READDIR_BOTHstruct dirent [2]
0x82307202VFAT_IOCTL_READDIR_SHORTstruct dirent [2]
0x80047210FAT_IOCTL_GET_ATTRIBUTES__u32 *
0x40047211FAT_IOCTL_SET_ATTRIBUTESconst __u32 *
0x80047213FAT_IOCTL_GET_VOLUME_ID__u32 *

// <include/linux/mtio.h>

0x40086D01MTIOCTOPconst struct mtop *
0x801C6D02MTIOCGETstruct mtget *
0x80046D03MTIOCPOSstruct mtpos *
0x80206D04MTIOCGETCONFIGstruct mtconfiginfo *
0x40206D05MTIOCSETCONFIGconst struct mtconfiginfo *

// <include/linux/netrom.h>

0x000089E0SIOCNRGETPARMSstruct nr_parms_struct *// E/A
0x000089E1SIOCNRSETPARMSconst struct nr_parms_struct *
0x000089E2SIOCNRDECOBSvoid
0x000089E3SIOCNRRTCTLconst 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

x00008b00SIOCSIWCOMMITstruct iwreq *
x00008b01SIOCGIWNAMEstruct iwreq *
x00008b02SIOCSIWNWIDstruct iwreq *
x00008b03SIOCGIWNWIDstruct iwreq *
x00008b04SIOCSIWFREQstruct iwreq *
x00008b05SIOCGIWFREQstruct iwreq *
x00008b06SIOCSIWMODEstruct iwreq *
x00008b07SIOCGIWMODEstruct iwreq *
x00008b08SIOCSIWSENSstruct iwreq *
x00008b09SIOCGIWSENSstruct iwreq *
x00008b0aSIOCSIWRANGEstruct iwreq *
x00008b0bSIOCGIWRANGEstruct iwreq *
x00008b0cSIOCSIWPRIVstruct iwreq *
x00008b0dSIOCGIWPRIVstruct iwreq *
x00008b0eSIOCSIWSTATSstruct iwreq *
x00008b0fSIOCGIWSTATSstruct iwreq *
x00008b10SIOCSIWSPYstruct iwreq *
x00008b11SIOCGIWSPYstruct iwreq *
x00008b12SIOCSIWTHRSPYstruct iwreq *
x00008b13SIOCGIWTHRSPYstruct iwreq *
x00008b14SIOCSIWAPstruct iwreq *
x00008b15SIOCGIWAPstruct iwreq *
x00008b17SIOCGIWAPLISTstruct iwreq *
x00008b18SIOCSIWSCANstruct iwreq *
x00008b19SIOCGIWSCANstruct iwreq *
x00008b1aSIOCSIWESSIDstruct iwreq *
x00008b1bSIOCGIWESSIDstruct iwreq *
x00008b1cSIOCSIWNICKNstruct iwreq *
x00008b1dSIOCGIWNICKNstruct iwreq *
x00008b20SIOCSIWRATEstruct iwreq *
x00008b21SIOCGIWRATEstruct iwreq *
x00008b22SIOCSIWRTSstruct iwreq *
x00008b23SIOCGIWRTSstruct iwreq *
x00008b24SIOCSIWFRAGstruct iwreq *
x00008b25SIOCGIWFRAGstruct iwreq *
x00008b26SIOCSIWTXPOWstruct iwreq *
x00008b27SIOCGIWTXPOWstruct iwreq *
x00008b28SIOCSIWRETRYstruct iwreq *
x00008b29SIOCGIWRETRYstruct iwreq *
x00008b2aSIOCSIWENCODEstruct iwreq *
x00008b2bSIOCGIWENCODEstruct iwreq *
x00008b2cSIOCSIWPOWERstruct iwreq *
x00008b2dSIOCGIWPOWERstruct iwreq *
x00008b30SIOCSIWGENIEstruct iwreq *
x00008b31SIOCGIWGENIEstruct iwreq *
x00008b16SIOCSIWMLMEstruct iwreq *
x00008b32SIOCSIWAUTHstruct iwreq *
x00008b33SIOCGIWAUTHstruct iwreq *
x00008b34SIOCSIWENCODEEXTstruct iwreq *
x00008b35SIOCGIWENCODEEXTstruct iwreq *
x00008b36SIOCSIWPMKSAstruct iwreq *

// <include/linux/sbpcd.h>

0x00009000DDIOCSDBGconst int *
0x00005382CDROMAUDIOBUFSIZint

// <include/linux/scc.h>

0x00005470TIOCSCCINIvoid
0x00005471TIOCCHANINIconst struct scc_modem *
0x00005472TIOCGKISSstruct ioctl_command *// E/A
0x00005473TIOCSKISSconst struct ioctl_command *
0x00005474TIOCSCCSTATstruct scc_stat *

// <include/linux/scsi.h>

0x00005382SCSI_IOCTL_GET_IDLUN struct { int [2]; } *
0x00005383SCSI_IOCTL_TAGGED_ENABLE void
0x00005384SCSI_IOCTL_TAGGED_DISABLE void
0x00005385SCSI_IOCTL_PROBE_HOSTconst int *// WEITERE

// <include/linux/smb_fs.h>

0x80027501SMB_IOC_GETMOUNTUIDuid_t *

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

0x0000890BSIOCADDRTconst struct rtentry *// WEITERE
0x0000890CSIOCDELRTconst struct rtentry *// WEITERE
0x00008910SIOCGIFNAMEchar []
0x00008911SIOCSIFLINKvoid
0x00008912SIOCGIFCONFstruct ifconf *// WEITERE // E/A
0x00008913SIOCGIFFLAGSstruct ifreq *// E/A
0x00008914SIOCSIFFLAGSconst struct ifreq *
0x00008915SIOCGIFADDRstruct ifreq *// E/A
0x00008916SIOCSIFADDRconst struct ifreq *
0x00008917SIOCGIFDSTADDRstruct ifreq *// E/A
0x00008918SIOCSIFDSTADDRconst struct ifreq *
0x00008919SIOCGIFBRDADDRstruct ifreq *// E/A
0x0000891ASIOCSIFBRDADDRconst struct ifreq *
0x0000891BSIOCGIFNETMASKstruct ifreq *// E/A
0x0000891CSIOCSIFNETMASKconst struct ifreq *
0x0000891DSIOCGIFMETRICstruct ifreq *// E/A
0x0000891ESIOCSIFMETRICconst struct ifreq *
0x0000891FSIOCGIFMEMstruct ifreq *// E/A
0x00008920SIOCSIFMEMconst struct ifreq *
0x00008921SIOCGIFMTUstruct ifreq *// E/A
0x00008922SIOCSIFMTUconst struct ifreq *
0x00008923OLD_SIOCGIFHWADDRstruct ifreq *// E/A
0x00008924SIOCSIFHWADDRconst struct ifreq *// WEITERE
0x00008925SIOCGIFENCAPint *
0x00008926SIOCSIFENCAPconst int *
0x00008927SIOCGIFHWADDRstruct ifreq *// E/A
0x00008929SIOCGIFSLAVEvoid
0x00008930SIOCSIFSLAVEvoid
0x00008931SIOCADDMULTIconst struct ifreq *
0x00008932SIOCDELMULTIconst struct ifreq *
0x00008940SIOCADDRTOLDvoid
0x00008941SIOCDELRTOLDvoid
0x00008950SIOCDARPconst struct arpreq *
0x00008951SIOCGARPstruct arpreq *// E/A
0x00008952SIOCSARPconst struct arpreq *
0x00008960SIOCDRARPconst struct arpreq *
0x00008961SIOCGRARPstruct arpreq *// E/A
0x00008962SIOCSRARPconst struct arpreq *
0x00008970SIOCGIFMAPstruct ifreq *// E/A
0x00008971SIOCSIFMAPconst struct ifreq *

// <include/linux/soundcard.h>

0x00005100SNDCTL_SEQ_RESETvoid
0x00005101SNDCTL_SEQ_SYNCvoid
0xC08C5102SNDCTL_SYNTH_INFOstruct synth_info *// E/A
0xC0045103SNDCTL_SEQ_CTRLRATEint *// E/A
0x80045104SNDCTL_SEQ_GETOUTCOUNTint *
0x80045105SNDCTL_SEQ_GETINCOUNTint *
0x40045106SNDCTL_SEQ_PERCMODEvoid
0x40285107SNDCTL_FM_LOAD_INSTRconst struct sbi_instrument *
0x40045108SNDCTL_SEQ_TESTMIDIconst int *
0x40045109SNDCTL_SEQ_RESETSAMPLESconst int *
0x8004510ASNDCTL_SEQ_NRSYNTHSint *
0x8004510BSNDCTL_SEQ_NRMIDISint *
0xC074510CSNDCTL_MIDI_INFOstruct midi_info *// E/A
0x4004510DSNDCTL_SEQ_THRESHOLDconst int *
0xC004510ESNDCTL_SYNTH_MEMAVLint *// E/A
0x4004510FSNDCTL_FM_4OP_ENABLEconst int *
0xCFB85110SNDCTL_PMGR_ACCESSstruct patmgr_info *// E/A
0x00005111SNDCTL_SEQ_PANICvoid
0x40085112SNDCTL_SEQ_OUTOFBANDconst struct seq_event_rec *
0xC0045401SNDCTL_TMR_TIMEBASEint *// E/A
0x00005402SNDCTL_TMR_STARTvoid
0x00005403SNDCTL_TMR_STOPvoid
0x00005404SNDCTL_TMR_CONTINUEvoid
0xC0045405SNDCTL_TMR_TEMPOint *// E/A
0xC0045406SNDCTL_TMR_SOURCEint *// E/A
0x40045407SNDCTL_TMR_METRONOMEconst int *
0x40045408SNDCTL_TMR_SELECTint *// E/A
0xCFB85001SNDCTL_PMGR_IFACEstruct patmgr_info *// E/A
0xC0046D00SNDCTL_MIDI_PRETIMEint *// E/A
0xC0046D01SNDCTL_MIDI_MPUMODEconst int *
0xC0216D02SNDCTL_MIDI_MPUCMDstruct mpu_command_rec *// E/A
0x00005000SNDCTL_DSP_RESETvoid
0x00005001SNDCTL_DSP_SYNCvoid
0xC0045002SNDCTL_DSP_SPEEDint *// E/A
0xC0045003SNDCTL_DSP_STEREOint *// E/A
0xC0045004SNDCTL_DSP_GETBLKSIZEint *// E/A
0xC0045006SOUND_PCM_WRITE_CHANNELSint *// E/A
0xC0045007SOUND_PCM_WRITE_FILTERint *// E/A
0x00005008SNDCTL_DSP_POSTvoid
0xC0045009SNDCTL_DSP_SUBDIVIDEint *// E/A
0xC004500ASNDCTL_DSP_SETFRAGMENTint *// E/A
0x8004500BSNDCTL_DSP_GETFMTSint *
0xC0045005SNDCTL_DSP_SETFMTint *// E/A
0x800C500CSNDCTL_DSP_GETOSPACEstruct audio_buf_info *
0x800C500DSNDCTL_DSP_GETISPACEstruct audio_buf_info *
0x0000500ESNDCTL_DSP_NONBLOCKvoid
0x80045002SOUND_PCM_READ_RATEint *
0x80045006SOUND_PCM_READ_CHANNELSint *
0x80045005SOUND_PCM_READ_BITSint *
0x80045007SOUND_PCM_READ_FILTERint *
0x00004300SNDCTL_COPR_RESETvoid
0xCFB04301SNDCTL_COPR_LOADconst struct copr_buffer *
0xC0144302SNDCTL_COPR_RDATAstruct copr_debug_buf *// E/A
0xC0144303SNDCTL_COPR_RCODEstruct copr_debug_buf *// E/A
0x40144304SNDCTL_COPR_WDATAconst struct copr_debug_buf *
0x40144305SNDCTL_COPR_WCODEconst struct copr_debug_buf *
0xC0144306SNDCTL_COPR_RUNstruct copr_debug_buf *// E/A
0xC0144307SNDCTL_COPR_HALTstruct copr_debug_buf *// E/A
0x4FA44308SNDCTL_COPR_SENDMSGconst struct copr_msg *
0x8FA44309SNDCTL_COPR_RCVMSGstruct copr_msg *
0x80044D00SOUND_MIXER_READ_VOLUMEint *
0x80044D01SOUND_MIXER_READ_BASSint *
0x80044D02SOUND_MIXER_READ_TREBLEint *
0x80044D03SOUND_MIXER_READ_SYNTHint *
0x80044D04SOUND_MIXER_READ_PCMint *
0x80044D05SOUND_MIXER_READ_SPEAKERint *
0x80044D06SOUND_MIXER_READ_LINEint *
0x80044D07SOUND_MIXER_READ_MICint *
0x80044D08SOUND_MIXER_READ_CDint *
0x80044D09SOUND_MIXER_READ_IMIXint *
0x80044D0ASOUND_MIXER_READ_ALTPCMint *
0x80044D0BSOUND_MIXER_READ_RECLEVint *
0x80044D0CSOUND_MIXER_READ_IGAINint *
0x80044D0DSOUND_MIXER_READ_OGAINint *
0x80044D0ESOUND_MIXER_READ_LINE1int *
0x80044D0FSOUND_MIXER_READ_LINE2int *
0x80044D10SOUND_MIXER_READ_LINE3int *
0x80044D1CSOUND_MIXER_READ_MUTEint *
0x80044D1DSOUND_MIXER_READ_ENHANCEint *
0x80044D1ESOUND_MIXER_READ_LOUDint *
0x80044DFFSOUND_MIXER_READ_RECSRCint *
0x80044DFESOUND_MIXER_READ_DEVMASKint *
0x80044DFDSOUND_MIXER_READ_RECMASKint *
0x80044DFBSOUND_MIXER_READ_STEREODEVSint *
0x80044DFCSOUND_MIXER_READ_CAPSint *
0xC0044D00SOUND_MIXER_WRITE_VOLUMEint *// E/A
0xC0044D01SOUND_MIXER_WRITE_BASSint *// E/A
0xC0044D02SOUND_MIXER_WRITE_TREBLEint *// E/A
0xC0044D03SOUND_MIXER_WRITE_SYNTHint *// E/A
0xC0044D04SOUND_MIXER_WRITE_PCMint *// E/A
0xC0044D05SOUND_MIXER_WRITE_SPEAKERint *// E/A
0xC0044D06SOUND_MIXER_WRITE_LINEint *// E/A
0xC0044D07SOUND_MIXER_WRITE_MICint *// E/A
0xC0044D08SOUND_MIXER_WRITE_CDint *// E/A
0xC0044D09SOUND_MIXER_WRITE_IMIXint *// E/A
0xC0044D0ASOUND_MIXER_WRITE_ALTPCMint *// E/A
0xC0044D0BSOUND_MIXER_WRITE_RECLEVint *// E/A
0xC0044D0CSOUND_MIXER_WRITE_IGAINint *// E/A
0xC0044D0DSOUND_MIXER_WRITE_OGAINint *// E/A
0xC0044D0ESOUND_MIXER_WRITE_LINE1int *// E/A
0xC0044D0FSOUND_MIXER_WRITE_LINE2int *// E/A
0xC0044D10SOUND_MIXER_WRITE_LINE3int *// E/A
0xC0044D1CSOUND_MIXER_WRITE_MUTEint *// E/A
0xC0044D1DSOUND_MIXER_WRITE_ENHANCEint *// E/A
0xC0044D1ESOUND_MIXER_WRITE_LOUDint *// E/A
0xC0044DFFSOUND_MIXER_WRITE_RECSRCint *// E/A

// <include/linux/timerfd.h> siehe timerfd_create(2)

0x40085400TFD_IOC_SET_TICKSuint64_t *

// <include/linux/umsdos_fs.h>

0x000004D2UMSDOS_READDIR_DOSstruct umsdos_ioctl *// E/A
0x000004D3UMSDOS_UNLINK_DOSconst struct umsdos_ioctl *
0x000004D4UMSDOS_RMDIR_DOSconst struct umsdos_ioctl *
0x000004D5UMSDOS_STAT_DOSstruct umsdos_ioctl *// E/A
0x000004D6UMSDOS_CREAT_EMDconst struct umsdos_ioctl *
0x000004D7UMSDOS_UNLINK_EMDconst struct umsdos_ioctl *
0x000004D8UMSDOS_READDIR_EMDstruct umsdos_ioctl *// E/A
0x000004D9UMSDOS_GETVERSIONstruct umsdos_ioctl *
0x000004DAUMSDOS_INIT_EMDvoid
0x000004DBUMSDOS_DOS_SETUPconst struct umsdos_ioctl *
0x000004DCUMSDOS_RENAME_DOSconst struct umsdos_ioctl *

// <include/linux/vt.h>

0x00005600VT_OPENQRYint *
0x00005601VT_GETMODEstruct vt_mode *
0x00005602VT_SETMODEconst struct vt_mode *
0x00005603VT_GETSTATEstruct vt_stat *
0x00005604VT_SENDSIGvoid
0x00005605VT_RELDISPint
0x00005606VT_ACTIVATEint
0x00005607VT_WAITACTIVEint
0x00005608VT_DISALLOCATEint
0x00005609VT_RESIZEconst struct vt_sizes *
0x0000560AVT_RESIZEXconst 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.

0x00000001FDSETPRMFIBMAP
0x00000002FDDEFPRMFIGETBSZ
0x00005382CDROMAUDIOBUFSIZSCSI_IOCTL_GET_IDLUN
0x00005402SNDCTL_TMR_STARTTCSETS
0x00005403SNDCTL_TMR_STOPTCSETSW
0x00005404SNDCTL_TMR_CONTINUETCSETSF

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.06 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 <[email protected]>, Helge Kreutzmann <[email protected]>, Martin Eberhard Schauer <[email protected]> und Mario Blättermann <[email protected]> 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 <[email protected]>.