From 3de87d46840d667f65ec8041c0aebff4f101f44e Mon Sep 17 00:00:00 2001 From: Michael Kerrisk Date: Thu, 16 Apr 2020 08:28:05 +0200 Subject: [PATCH] ioctl_list.2: Remove this page This page was first added more than 20 years ago. Since that time it has seen hardly any update, and is by now very much out of date, as reported by Heinrich Schuchardt and confirmed by Eugene Syromyatnikov. As Heinrich says: Man-pages like netdevices.7 or ioctl_fat.2 are what is needed to help a user who does not want to read through the kernel code. If ioctl_list.2 has not been reasonably maintained since Linux 1.3.27 and hence is not a reliable source of information, shouldn't it be dropped? My answer is, yes (but let's move a little info into ioctl(2)). Reported-by: Heinrich Schuchardt Reported-by: Eugene Syromyatnikov Signed-off-by: Michael Kerrisk --- man2/ioctl_list.2 | 1046 --------------------------------------------- 1 file changed, 1046 deletions(-) delete mode 100644 man2/ioctl_list.2 diff --git a/man2/ioctl_list.2 b/man2/ioctl_list.2 deleted file mode 100644 index b9fb74d8b..000000000 --- a/man2/ioctl_list.2 +++ /dev/null @@ -1,1046 +0,0 @@ -.\" Ioctl List 1.3.27 is copyright 1995 by Michael Elizabeth Chastain. -.\" Michael Elizabeth Chastain -.\" -.\" -.\" %%%LICENSE_START(GPLv2_MISC) -.\" It is licensed under the GNU General Public License, Version 2. -.\" %%%LICENSE_END -.\" -.\" Ioctl List 1.3.27 -.\" Sun 17 Sep 1995 -.\" -.\" // Copyright -.\" -.\" -.\" -.\" // Change Log -.\" -.\" 1.3.27 421 ioctls. -.\" Type information for non-pointer args. -.\" SIOCDEVPRIVATE, SIOCPROTOPRIVATE ioctls. -.\" Descriptions of extended arguments. -.\" -.\" 1.2.9 365 ioctls. -.\" First public version. -.\" -.\" -.\" 2007-12-29 Alain Portal and Michael Kerrisk -.\" : -.\" Various formatting improvements -.\" -.TH IOCTL_LIST 2 2019-11-19 "Linux" "Linux Programmer's Manual" -.SH NAME -ioctl_list \- list of ioctl calls in Linux/i386 kernel -.SH DESCRIPTION -This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel -1.3.27. -It contains 421 ioctls from -.IR . -For each ioctl, its numerical value, its name, and its argument -type are given. -.PP -An argument type of -.I "const struct foo\ *" -means the argument is input to the kernel. -.I "struct foo\ *" -means the kernel outputs the argument. -If the kernel uses the argument for both input and output, this is -marked with \fI//\ I-O\fP. -.PP -Some ioctls take more arguments or return more values than a single -structure. -These are marked \fI//\ MORE\fP and documented further in a -separate section. -In addition, information about some ioctls can be found in -the pages listed under SEE ALSO in -.BR ioctl (2). -.PP -This list is very incomplete. -.SS ioctl structure -.\" added two sections - aeb -Ioctl command values are 32-bit constants. -In principle these constants are completely arbitrary, but people have -tried to build some structure into them. -.PP -The old Linux situation was that of mostly 16-bit constants, where the -last byte is a serial number, and the preceding byte(s) give a type -indicating the driver. -Sometimes the major number was used: 0x03 -for the -.B HDIO_* -ioctls, 0x06 for the -.B LP* -ioctls. -And sometimes -one or more ASCII letters were used. -For example, -.B TCGETS -has value -0x00005401, with 0x54 = \(aqT\(aq indicating the terminal driver, and -.B CYGETTIMEOUT -has value 0x00435906, with 0x43 0x59 = \(aqC\(aq \(aqY\(aq -indicating the cyclades driver. -.PP -Later (0.98p5) some more information was built into the number. -One has 2 direction bits -(00: none, 01: write, 10: read, 11: read/write) -followed by 14 size bits (giving the size of the argument), -followed by an 8-bit type (collecting the ioctls in groups -for a common purpose or a common driver), and an 8-bit -serial number. -.PP -The macros describing this structure live in -.I -and are -.B _IO(type,nr) -and -.BR "{_IOR,_IOW,_IOWR}(type,nr,size)" . -They use -.I sizeof(size) -so that size is a -misnomer here: this third argument is a data type. -.PP -Note that the size bits are very unreliable: in lots of cases -they are wrong, either because of buggy macros using -.IR sizeof(sizeof(struct)) , -or because of legacy values. -.PP -Thus, it seems that the new structure only gave disadvantages: -it does not help in checking, but it causes varying values -for the various architectures. -.SH RETURN VALUE -Decent ioctls return 0 on success and \-1 on error, while -any output value is stored via the argument. -However, -quite a few ioctls in fact return an output value. -This is not yet indicated below. -.PP -// Main table. -.PP -// -.TS -l l. -FIOSETOWN const int * -SIOCSPGRP const int * -FIOGETOWN int * -SIOCGPGRP int * -SIOCATMAR int * -SIOCGSTAMP timeval * -.TE -.sp 1 -// -.TS -l l. -TCGETS struct termios * -TCSETS const struct termios * -TCSETSW const struct termios * -TCSETSF const struct termios * -TCGETA struct termio * -TCSETA const struct termio * -TCSETAW const struct termio * -TCSETAF const struct termio * -TCSBRK int -TCXONC int -TCFLSH int -TIOCEXCL void -TIOCNXCL void -TIOCSCTTY int -TIOCGPGRP pid_t * -TIOCSPGRP const pid_t * -TIOCOUTQ int * -TIOCSTI const char * -TIOCGWINSZ struct winsize * -TIOCSWINSZ const struct winsize * -TIOCMGET int * -TIOCMBIS const int * -TIOCMBIC const int * -TIOCMSET const int * -TIOCGSOFTCAR int * -TIOCSSOFTCAR const int * -FIONREAD int * -TIOCINQ int * -TIOCLINUX const char * // MORE -TIOCCONS void -TIOCGSERIAL struct serial_struct * -TIOCSSERIAL const struct serial_struct * -TIOCPKT const int * -FIONBIO const int * -TIOCNOTTY void -TIOCSETD const int * -TIOCGETD int * -TCSBRKP int -TIOCTTYGSTRUCT struct tty_struct * -FIONCLEX void -FIOCLEX void -FIOASYNC const int * -TIOCSERCONFIG void -TIOCSERGWILD int * -TIOCSERSWILD const int * -TIOCGLCKTRMIOS struct termios * -TIOCSLCKTRMIOS const struct termios * -TIOCSERGSTRUCT struct async_struct * -TIOCSERGETLSR int * -.TE -.\" Some tables are split into two or more to avoid the warning: -.\" "table wider than line width". Some lines are to long to fit -.\" on one line on an 80 columns console -.TS -l l. -TIOCSERGETMULTI struct serial_multiport_struct * -TIOCSERSETMULTI const struct serial_multiport_struct * -.TE -.sp 1 -// -.TS -l l. -SIOCAX25GETUID const struct sockaddr_ax25 * -SIOCAX25ADDUID const struct sockaddr_ax25 * -SIOCAX25DELUID const struct sockaddr_ax25 * -SIOCAX25NOUID const int * -SIOCAX25DIGCTL const int * -SIOCAX25GETPARMS struct ax25_parms_struct * // I-O -.TE -.TS -l l. -SIOCAX25SETPARMS const struct ax25_parms_struct * -.TE -.sp 1 -// -.TS -l l. -STL_BINTR void -STL_BSTART void -STL_BSTOP void -STL_BRESET void -.TE -.sp 1 -// -.TS -l l. -CDROMPAUSE void -CDROMRESUME void -CDROMPLAYMSF const struct cdrom_msf * -CDROMPLAYTRKIND const struct cdrom_ti * -CDROMREADTOCHDR struct cdrom_tochdr * -.TE -.TS -l l l. -CDROMREADTOCENTRY struct cdrom_tocentry * // I-O -.TE -.TS -l l l. -CDROMSTOP void -CDROMSTART void -CDROMEJECT void -CDROMVOLCTRL const struct cdrom_volctrl * -CDROMSUBCHNL struct cdrom_subchnl * // I-O -CDROMREADMODE2 const struct cdrom_msf * // MORE -CDROMREADMODE1 const struct cdrom_msf * // MORE -CDROMREADAUDIO const struct cdrom_read_audio * // MORE -CDROMEJECT_SW int -.TE -.TS -l l l. -CDROMMULTISESSION struct cdrom_multisession * // I-O -.TE -.TS -l l l. -CDROM_GET_UPC struct { char [8]; } * -CDROMRESET void -CDROMVOLREAD struct cdrom_volctrl * -CDROMREADRAW const struct cdrom_msf * // MORE -CDROMREADCOOKED const struct cdrom_msf * // MORE -CDROMSEEK const struct cdrom_msf * -.TE -.sp 1 -// -.TS -l l. -CM206CTL_GET_STAT int -CM206CTL_GET_LAST_STAT int -.TE -.sp 1 -// -.TS -l l. -CYGETMON struct cyclades_monitor * -CYGETTHRESH int * -CYSETTHRESH int -CYGETDEFTHRESH int * -CYSETDEFTHRESH int -CYGETTIMEOUT int * -CYSETTIMEOUT int -CYGETDEFTIMEOUT int * -CYSETDEFTIMEOUT int -.TE -.sp 1 -// -.TS -l l. -FDCLRPRM void -FDSETPRM const struct floppy_struct * -FDDEFPRM const struct floppy_struct * -FDGETPRM struct floppy_struct * -FDMSGON void -FDMSGOFF void -FDFMTBEG void -FDFMTTRK const struct format_descr * -FDFMTEND void -FDSETEMSGTRESH int -FDFLUSH void -FDSETMAXERRS const struct floppy_max_errors * -FDGETMAXERRS struct floppy_max_errors * -FDGETDRVTYP struct { char [16]; } * -FDSETDRVPRM const struct floppy_drive_params * -FDGETDRVPRM struct floppy_drive_params * -FDGETDRVSTAT struct floppy_drive_struct * -FDPOLLDRVSTAT struct floppy_drive_struct * -FDRESET int -FDGETFDCSTAT struct floppy_fdc_state * -FDWERRORCLR void -FDWERRORGET struct floppy_write_errors * -.TE -.TS -l l l. -FDRAWCMD struct floppy_raw_cmd * // MORE // I-O -FDTWADDLE void -.TE -.sp 1 -// -.TS -l l l. -BLKROSET const int * -BLKROGET int * -BLKRRPART void -BLKGETSIZE unsigned long * -BLKFLSBUF void -BLKRASET unsigned long -BLKRAGET unsigned long * -FIBMAP int * // I-O -FIGETBSZ int * -FS_IOC_GETFLAGS int * -FS_IOC_SETFLAGS int * -FS_IOC_GETVERSION int * -FS_IOC_SETVERSION int * -FS_IOC_FIEMAP struct fiemap * -FS_IOC32_SETFLAGS int * -FS_IOC32_SETFLAGS int * -FS_IOC32_GETVERSION int * -FS_IOC32_SETVERSION int * -.TE -.sp 1 -// -.TS -l l. -HDIO_GETGEO struct hd_geometry * -HDIO_GET_UNMASKINTR int * -HDIO_GET_MULTCOUNT int * -HDIO_GET_IDENTITY struct hd_driveid * -HDIO_GET_KEEPSETTINGS int * -HDIO_GET_CHIPSET int * -HDIO_GET_NOWERR int * -HDIO_GET_DMA int * -HDIO_DRIVE_CMD int * // I-O -HDIO_SET_MULTCOUNT int -HDIO_SET_UNMASKINTR int -HDIO_SET_KEEPSETTINGS int -HDIO_SET_CHIPSET int -HDIO_SET_NOWERR int -HDIO_SET_DMA int -.TE -.sp 1 -// -.TS -l l l. -EQL_ENSLAVE struct ifreq * // MORE // I-O -EQL_EMANCIPATE struct ifreq * // MORE // I-O -EQL_GETSLAVECFG struct ifreq * // MORE // I-O -EQL_SETSLAVECFG struct ifreq * // MORE // I-O -EQL_GETMASTRCFG struct ifreq * // MORE // I-O -EQL_SETMASTRCFG struct ifreq * // MORE // I-O -.TE -.sp 1 -// -.TS -l l l. -SIOCDEVPLIP struct ifreq * // I-O -.TE -.sp 1 -// -.TS -l l. -PPPIOCGFLAGS int * -PPPIOCSFLAGS const int * -PPPIOCGASYNCMAP int * -PPPIOCSASYNCMAP const int * -PPPIOCGUNIT int * -PPPIOCSINPSIG const int * -PPPIOCSDEBUG const int * -PPPIOCGDEBUG int * -PPPIOCGSTAT struct ppp_stats * -PPPIOCGTIME struct ppp_ddinfo * -PPPIOCGXASYNCMAP struct { int [8]; } * -PPPIOCSXASYNCMAP const struct { int [8]; } * -PPPIOCSMRU const int * -PPPIOCRASYNCMAP const int * -PPPIOCSMAXCID const int * -.TE -.sp 1 -// -.TS -l l. -SIOCAIPXITFCRT const char * -SIOCAIPXPRISLT const char * -SIOCIPXCFGDATA struct ipx_config_data * -.TE -.sp 1 -// -.TS -l l. -GIO_FONT struct { char [8192]; } * -PIO_FONT const struct { char [8192]; } * -.TE -.TS -l2 l2 l. -GIO_FONTX struct console_font_desc * // MORE // I-O -PIO_FONTX const struct console_font_desc * //MORE -.TE -.TS -l l l. -GIO_CMAP struct { char [48]; } * -PIO_CMAP const struct { char [48]; } -.TE -.TS -l l l. -KIOCSOUND int -KDMKTONE int -KDGETLED char * -KDSETLED int -KDGKBTYPE char * -KDADDIO int // MORE -KDDELIO int // MORE -KDENABIO void // MORE -KDDISABIO void // MORE -KDSETMODE int -KDGETMODE int * -KDMAPDISP void // MORE -KDUNMAPDISP void // MORE -GIO_SCRNMAP struct { char [E_TABSZ]; } * -.TE -.TS -l l. -PIO_SCRNMAP const struct { char [E_TABSZ]; } * -GIO_UNISCRNMAP struct { short [E_TABSZ]; } * -PIO_UNISCRNMAP const struct { short [E_TABSZ]; } * -.TE -.TS -l l l. -GIO_UNIMAP struct unimapdesc * // MORE // I-O -PIO_UNIMAP const struct unimapdesc * // MORE -PIO_UNIMAPCLR const struct unimapinit * -KDGKBMODE int * -KDSKBMODE int -KDGKBMETA int * -KDSKBMETA int -KDGKBLED int * -KDSKBLED int -KDGKBENT struct kbentry * // I-O -KDSKBENT const struct kbentry * -KDGKBSENT struct kbsentry * // I-O -KDSKBSENT const struct kbsentry * -KDGKBDIACR struct kbdiacrs * -KDSKBDIACR const struct kbdiacrs * -KDGETKEYCODE struct kbkeycode * // I-O -KDSETKEYCODE const struct kbkeycode * -KDSIGACCEPT int -.TE -.sp 1 -// -.TS -l l. -LPCHAR int -LPTIME int -LPABORT int -LPSETIRQ int -LPGETIRQ int * -LPWAIT int -LPCAREFUL int -LPABORTOPEN int -LPGETSTATUS int * -LPRESET void -LPGETSTATS struct lp_stats * -.TE -.sp 1 -// -.TS -l l l. -SIOCGETVIFCNT struct sioc_vif_req * // I-O -SIOCGETSGCNT struct sioc_sg_req * // I-O -.TE -.sp 1 -// see -.BR ioctl_fat (2) -.TS -l l. -VFAT_IOCTL_READDIR_BOTH struct dirent [2] -VFAT_IOCTL_READDIR_SHORT struct dirent [2] -FAT_IOCTL_GET_ATTRIBUTES __u32 * -FAT_IOCTL_SET_ATTRIBUTES const __u32 * -FAT_IOCTL_GET_VOLUME_ID __u32 * -.TE -.sp 1 -// -.TS -l l. -MTIOCTOP const struct mtop * -MTIOCGET struct mtget * -MTIOCPOS struct mtpos * -MTIOCGETCONFIG struct mtconfiginfo * -MTIOCSETCONFIG const struct mtconfiginfo * -.TE -.sp 1 -// -.TS -l l l. -SIOCNRGETPARMS struct nr_parms_struct * // I-O -SIOCNRSETPARMS const struct nr_parms_struct * -SIOCNRDECOBS void -SIOCNRRTCTL const int * -.TE -.sp 1 -// -.br -// This API is deprecated. -.br -// It is being replaced by nl80211 and cfg80211. -See -.br -// -.I https://wireless.wiki.kernel.org/en/developers/documentation/nl80211 -.TS -l l l. -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 * -.TE -.sp 1 -// -.TS -l l. -DDIOCSDBG const int * -CDROMAUDIOBUFSIZ int -.TE -.sp 1 -// -.TS -l l l. -TIOCSCCINI void -TIOCCHANINI const struct scc_modem * -TIOCGKISS struct ioctl_command * // I-O -TIOCSKISS const struct ioctl_command * -TIOCSCCSTAT struct scc_stat * -.TE -.sp 1 -// -.TS -l l. -SCSI_IOCTL_GET_IDLUN struct { int [2]; } * -SCSI_IOCTL_TAGGED_ENABLE void -SCSI_IOCTL_TAGGED_DISABLE void -.TE -.TS -l l l. -SCSI_IOCTL_PROBE_HOST const int * // MORE -.TE -.sp 1 -// -.TS -l l l. -SMB_IOC_GETMOUNTUID uid_t * -.TE -.sp 1 -// see -.BR netdevice (7) -.PP -.TS -l l l. -SIOCADDRT const struct rtentry * // MORE -SIOCDELRT const struct rtentry * // MORE -SIOCGIFNAME char [] -SIOCSIFLINK void -SIOCGIFCONF struct ifconf * // MORE // I-O -SIOCGIFFLAGS struct ifreq * // I-O -SIOCSIFFLAGS const struct ifreq * -SIOCGIFADDR struct ifreq * // I-O -SIOCSIFADDR const struct ifreq * -SIOCGIFDSTADDR struct ifreq * // I-O -SIOCSIFDSTADDR const struct ifreq * -SIOCGIFBRDADDR struct ifreq * // I-O -SIOCSIFBRDADDR const struct ifreq * -SIOCGIFNETMASK struct ifreq * // I-O -SIOCSIFNETMASK const struct ifreq * -SIOCGIFMETRIC struct ifreq * // I-O -SIOCSIFMETRIC const struct ifreq * -SIOCGIFMEM struct ifreq * // I-O -SIOCSIFMEM const struct ifreq * -SIOCGIFMTU struct ifreq * // I-O -SIOCSIFMTU const struct ifreq * -.TE -.TS -l l l. -OLD_SIOCGIFHWADDR struct ifreq * // I-O -SIOCSIFHWADDR const struct ifreq * // MORE -SIOCGIFENCAP int * -SIOCSIFENCAP const int * -SIOCGIFHWADDR struct ifreq * // I-O -SIOCGIFSLAVE void -SIOCSIFSLAVE void -SIOCADDMULTI const struct ifreq * -SIOCDELMULTI const struct ifreq * -SIOCADDRTOLD void -SIOCDELRTOLD void -SIOCDARP const struct arpreq * -SIOCGARP struct arpreq * // I-O -SIOCSARP const struct arpreq * -SIOCDRARP const struct arpreq * -SIOCGRARP struct arpreq * // I-O -SIOCSRARP const struct arpreq * -SIOCGIFMAP struct ifreq * // I-O -SIOCSIFMAP const struct ifreq * -.TE -.sp 1 -// -.TS -l l. -SNDCTL_SEQ_RESET void -SNDCTL_SEQ_SYNC void -.TE -.TS -l l l. -SNDCTL_SYNTH_INFO struct synth_info * // I-O -SNDCTL_SEQ_CTRLRATE int * // I-O -SNDCTL_SEQ_GETOUTCOUNT int * -SNDCTL_SEQ_GETINCOUNT int * -SNDCTL_SEQ_PERCMODE void -.TE -.TS -l l. -SNDCTL_FM_LOAD_INSTR const struct sbi_instrument * -.TE -.TS -l l l. -SNDCTL_SEQ_TESTMIDI const int * -SNDCTL_SEQ_RESETSAMPLES const int * -SNDCTL_SEQ_NRSYNTHS int * -SNDCTL_SEQ_NRMIDIS int * -SNDCTL_MIDI_INFO struct midi_info * // I-O -SNDCTL_SEQ_THRESHOLD const int * -SNDCTL_SYNTH_MEMAVL int * // I-O -SNDCTL_FM_4OP_ENABLE const int * -SNDCTL_PMGR_ACCESS struct patmgr_info * // I-O -SNDCTL_SEQ_PANIC void -.TE -.TS -l l. -SNDCTL_SEQ_OUTOFBAND const struct seq_event_rec * -.TE -.TS -l l l. -SNDCTL_TMR_TIMEBASE int * // I-O -SNDCTL_TMR_START void -SNDCTL_TMR_STOP void -SNDCTL_TMR_CONTINUE void -SNDCTL_TMR_TEMPO int * // I-O -SNDCTL_TMR_SOURCE int * // I-O -SNDCTL_TMR_METRONOME const int * -SNDCTL_TMR_SELECT int * // I-O -SNDCTL_PMGR_IFACE struct patmgr_info * // I-O -SNDCTL_MIDI_PRETIME int * // I-O -SNDCTL_MIDI_MPUMODE const int * -.TE -.TS -l l l. -SNDCTL_MIDI_MPUCMD struct mpu_command_rec * // I-O -.TE -.TS -l l l. -SNDCTL_DSP_RESET void -SNDCTL_DSP_SYNC void -SNDCTL_DSP_SPEED int * // I-O -SNDCTL_DSP_STEREO int * // I-O -SNDCTL_DSP_GETBLKSIZE int * // I-O -SOUND_PCM_WRITE_CHANNELS int * // I-O -SOUND_PCM_WRITE_FILTER int * // I-O -SNDCTL_DSP_POST void -SNDCTL_DSP_SUBDIVIDE int * // I-O -SNDCTL_DSP_SETFRAGMENT int * // I-O -SNDCTL_DSP_GETFMTS int * -SNDCTL_DSP_SETFMT int * // I-O -.TE -.TS -l l. -SNDCTL_DSP_GETOSPACE struct audio_buf_info * -SNDCTL_DSP_GETISPACE struct audio_buf_info * -SNDCTL_DSP_NONBLOCK void -SOUND_PCM_READ_RATE int * -SOUND_PCM_READ_CHANNELS int * -SOUND_PCM_READ_BITS int * -SOUND_PCM_READ_FILTER int * -SNDCTL_COPR_RESET void -SNDCTL_COPR_LOAD const struct copr_buffer * -.TE -.TS -l l l. -SNDCTL_COPR_RDATA struct copr_debug_buf * // I-O -SNDCTL_COPR_RCODE struct copr_debug_buf * // I-O -.TE -.TS -l l. -SNDCTL_COPR_WDATA const struct copr_debug_buf * -SNDCTL_COPR_WCODE const struct copr_debug_buf * -.TE -.TS -l l l. -SNDCTL_COPR_RUN struct copr_debug_buf * // I-O -SNDCTL_COPR_HALT struct copr_debug_buf * // I-O -.TE -.TS -l l. -SNDCTL_COPR_SENDMSG const struct copr_msg * -SNDCTL_COPR_RCVMSG struct copr_msg * -SOUND_MIXER_READ_VOLUME int * -SOUND_MIXER_READ_BASS int * -SOUND_MIXER_READ_TREBLE int * -SOUND_MIXER_READ_SYNTH int * -SOUND_MIXER_READ_PCM int * -SOUND_MIXER_READ_SPEAKER int * -SOUND_MIXER_READ_LINE int * -SOUND_MIXER_READ_MIC int * -SOUND_MIXER_READ_CD int * -SOUND_MIXER_READ_IMIX int * -SOUND_MIXER_READ_ALTPCM int * -SOUND_MIXER_READ_RECLEV int * -SOUND_MIXER_READ_IGAIN int * -SOUND_MIXER_READ_OGAIN int * -SOUND_MIXER_READ_LINE1 int * -SOUND_MIXER_READ_LINE2 int * -SOUND_MIXER_READ_LINE3 int * -SOUND_MIXER_READ_MUTE int * -SOUND_MIXER_READ_ENHANCE int * -SOUND_MIXER_READ_LOUD int * -SOUND_MIXER_READ_RECSRC int * -SOUND_MIXER_READ_DEVMASK int * -SOUND_MIXER_READ_RECMASK int * -SOUND_MIXER_READ_STEREODEVS int * -SOUND_MIXER_READ_CAPS int * -.TE -.TS -l l l. -SOUND_MIXER_WRITE_VOLUME int * // I-O -SOUND_MIXER_WRITE_BASS int * // I-O -SOUND_MIXER_WRITE_TREBLE int * // I-O -SOUND_MIXER_WRITE_SYNTH int * // I-O -SOUND_MIXER_WRITE_PCM int * // I-O -SOUND_MIXER_WRITE_SPEAKER int * // I-O -SOUND_MIXER_WRITE_LINE int * // I-O -SOUND_MIXER_WRITE_MIC int * // I-O -SOUND_MIXER_WRITE_CD int * // I-O -SOUND_MIXER_WRITE_IMIX int * // I-O -SOUND_MIXER_WRITE_ALTPCM int * // I-O -SOUND_MIXER_WRITE_RECLEV int * // I-O -SOUND_MIXER_WRITE_IGAIN int * // I-O -SOUND_MIXER_WRITE_OGAIN int * // I-O -SOUND_MIXER_WRITE_LINE1 int * // I-O -SOUND_MIXER_WRITE_LINE2 int * // I-O -SOUND_MIXER_WRITE_LINE3 int * // I-O -SOUND_MIXER_WRITE_MUTE int * // I-O -SOUND_MIXER_WRITE_ENHANCE int * // I-O -SOUND_MIXER_WRITE_LOUD int * // I-O -SOUND_MIXER_WRITE_RECSRC int * // I-O -.TE -.sp 1 -// see -.BR timerfd_create (2) -.TS -l l l. -TFD_IOC_SET_TICKS uint64_t * -.TE -.sp 1 -// -.TS -l l l. -UMSDOS_READDIR_DOS struct umsdos_ioctl * // I-O -UMSDOS_UNLINK_DOS const struct umsdos_ioctl * -UMSDOS_RMDIR_DOS const struct umsdos_ioctl * -UMSDOS_STAT_DOS struct umsdos_ioctl * // I-O -UMSDOS_CREAT_EMD const struct umsdos_ioctl * -UMSDOS_UNLINK_EMD const struct umsdos_ioctl * -UMSDOS_READDIR_EMD struct umsdos_ioctl * // I-O -UMSDOS_GETVERSION struct umsdos_ioctl * -UMSDOS_INIT_EMD void -UMSDOS_DOS_SETUP const struct umsdos_ioctl * -UMSDOS_RENAME_DOS const struct umsdos_ioctl * -.TE -.sp 1 -// -.TS -l l. -VT_OPENQRY int * -VT_GETMODE struct vt_mode * -VT_SETMODE const struct vt_mode * -VT_GETSTATE struct vt_stat * -VT_SENDSIG void -VT_RELDISP int -VT_ACTIVATE int -VT_WAITACTIVE int -VT_DISALLOCATE int -VT_RESIZE const struct vt_sizes * -VT_RESIZEX const struct vt_consize * -.TE -.sp 1 -// More arguments. -Some ioctl's take a pointer to a structure which contains additional -pointers. -These are documented here in alphabetical order. -.PP -.B CDROMREADAUDIO -takes an input pointer -.IR "const struct cdrom_read_audio\ *" . -The -.I buf -field points to an output buffer of length -.IR "nframes\ * CD_FRAMESIZE_RAW" . -.PP -.BR CDROMREADCOOKED , -.BR CDROMREADMODE1 , -.BR CDROMREADMODE2 , -and -.B CDROMREADRAW -take an input pointer -.IR "const struct cdrom_msf\ *" . -They use the same pointer as an output pointer to -.IR "char []" . -The length varies by request. -For -.BR CDROMREADMODE1 , -most drivers use CD_FRAMESIZE, but the Optics Storage -driver uses OPT_BLOCKSIZE instead (both have the numerical value -2048). -.PP -.nf - CDROMREADCOOKED char [CD_FRAMESIZE] - CDROMREADMODE1 char [CD_FRAMESIZE or OPT_BLOCKSIZE] - CDROMREADMODE2 char [CD_FRAMESIZE_RAW0] - CDROMREADRAW char [CD_FRAMESIZE_RAW] -.fi -.PP -.BR EQL_ENSLAVE , -.BR EQL_EMANCIPATE , -.BR EQL_GETSLAVECFG , -.BR EQL_SETSLAVECFG , -.BR EQL_GETMASTERCFG , -and -.B EQL_SETMASTERCFG -take a -.IR "struct ifreq\ *" . -The -.I ifr_data -field is a pointer to another structure as follows: -.PP -.nf - EQL_ENSLAVE const struct slaving_request * - EQL_EMANCIPATE const struct slaving_request * - EQL_GETSLAVECFG struct slave_config * // I-O - EQL_SETSLAVECFG const struct slave_config * - EQL_GETMASTERCFG struct master_config * - EQL_SETMASTERCFG const struct master_config * -.fi -.PP -.B FDRAWCMD -takes a -.IR "struct floppy raw_cmd\ *" . -If -.I flags & FD_RAW_WRITE -is nonzero, then -.I data -points to an input buffer of length -.IR length . -If -.I flags & FD_RAW_READ -is nonzero, then -.I data -points to an output buffer of length -.IR length . -.PP -.B GIO_FONTX -and -.B PIO_FONTX -take a -.I struct console_font_desc\ * -or a -.IR "const struct console_font_desc\ *" , -respectively. -.I chardata -points to a buffer of -.IR "char [charcount]" . -This is an output buffer for -.B GIO_FONTX -and an input buffer for -.BR PIO_FONTX . -.PP -.B GIO_UNIMAP -and -.B PIO_UNIMAP -take a -.I "struct unimapdesc\ *" -or a -.IR "const struct unimapdesc\ *" , -respectively. -.I entries -points to a buffer of -.IR "struct unipair [entry_ct]" . -This is an output buffer for -.B GIO_UNIMAP -and an input buffer for -.BR PIO_UNIMAP . -.PP -KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to -I/O ports. -They are essentially alternate interfaces to 'ioperm'. -.PP -.B KDMAPDISP -and -.B KDUNMAPDISP -enable or disable memory mappings or I/O port access. -They are not implemented in the kernel. -.PP -.B SCSI_IOCTL_PROBE_HOST -takes an input pointer -.IR "const int\ *" , -which is a length. -It uses the same pointer as an output pointer to a -.I char [] -buffer of this length. -.PP -.B SIOCADDRT -and -.B SIOCDELRT -take an input pointer whose type depends on -the protocol: -.PP -.nf - Most protocols const struct rtentry * - AX.25 const struct ax25_route * - NET/ROM const struct nr_route_struct * - INET6 const struct in6_rtmsg * -.fi -.PP -.B SIOCGIFCONF -takes a -.IR "struct ifconf\ *" . -The -.I ifc_buf -field points to a buffer of length -.I ifc_len -bytes, into which the kernel writes a list of type -.IR "struct ifreq []" . -.PP -.B SIOCSIFHWADDR -takes an input pointer whose type depends on the protocol: -.PP -.nf - Most protocols const struct ifreq * - AX.25 const char [AX25_ADDR_LEN] -.fi -.PP -.B TIOCLINUX -takes a -.IR "const char\ *" . -It uses this to distinguish several -independent subcases. -In the table below, -.I N + foo -means -.I foo -after an N-byte pad. -.I struct selection -is implicitly defined in -.IR drivers/char/selection.c -.PP -.nf - 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 * -.fi -.PP -// Duplicate ioctls -.PP -This list does not include ioctls in the range -.B SIOCDEVPRIVATE -and -.BR SIOCPROTOPRIVATE . -.TS -l l l. -FDSETPRM FIBMAP -FDDEFPRM FIGETBSZ -SCSI_IOCTL_GET_IDLUN -SNDCTL_TMR_START TCSETS -SNDCTL_TMR_STOP TCSETSW -SNDCTL_TMR_CONTINUE TCSETSF -.TE -.SH SEE ALSO -.BR ioctl (2), -.BR ioctl_fat (2), -.BR netdevice (7)