1 .\" Ioctl List 1.3.27 is copyright 1995 by Michael Elizabeth Chastain.
2 .\" Michael Elizabeth Chastain
3 .\" <mec@duracef.shout.net>
5 .\" %%%LICENSE_START(GPLv2_MISC)
6 .\" It is licensed under the GNU General Public License, Version 2.
18 .\" 1.3.27 421 ioctls.
19 .\" Type information for non-pointer args.
20 .\" SIOCDEVPRIVATE, SIOCPROTOPRIVATE ioctls.
21 .\" Descriptions of extended arguments.
24 .\" First public version.
27 .\" 2007-12-29 Alain Portal <aportal@univ-montp2.fr> and Michael Kerrisk
28 .\" <mtk.manpages@gmail.com>:
29 .\" Various formatting improvements
31 .TH IOCTL_LIST 2 2019-11-19 "Linux" "Linux Programmer's Manual"
33 ioctl_list \- list of ioctl calls in Linux/i386 kernel
35 This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel
37 It contains 421 ioctls from
38 .IR </usr/include/{asm,linux}/*.h> .
39 For each ioctl, its numerical value, its name, and its argument
43 .I "const struct foo\ *"
44 means the argument is input to the kernel.
46 means the kernel outputs the argument.
47 If the kernel uses the argument for both input and output, this is
48 marked with \fI//\ I-O\fP.
50 Some ioctls take more arguments or return more values than a single
52 These are marked \fI//\ MORE\fP and documented further in a
54 In addition, information about some ioctls can be found in
55 the pages listed under SEE ALSO in
58 This list is very incomplete.
60 .\" added two sections - aeb
61 Ioctl command values are 32-bit constants.
62 In principle these constants are completely arbitrary, but people have
63 tried to build some structure into them.
65 The old Linux situation was that of mostly 16-bit constants, where the
66 last byte is a serial number, and the preceding byte(s) give a type
67 indicating the driver.
68 Sometimes the major number was used: 0x03
75 one or more ASCII letters were used.
79 0x00005401, with 0x54 = \(aqT\(aq indicating the terminal driver, and
81 has value 0x00435906, with 0x43 0x59 = \(aqC\(aq \(aqY\(aq
82 indicating the cyclades driver.
84 Later (0.98p5) some more information was built into the number.
85 One has 2 direction bits
86 (00: none, 01: write, 10: read, 11: read/write)
87 followed by 14 size bits (giving the size of the argument),
88 followed by an 8-bit type (collecting the ioctls in groups
89 for a common purpose or a common driver), and an 8-bit
92 The macros describing this structure live in
97 .BR "{_IOR,_IOW,_IOWR}(type,nr,size)" .
101 misnomer here: this third argument is a data type.
103 Note that the size bits are very unreliable: in lots of cases
104 they are wrong, either because of buggy macros using
105 .IR sizeof(sizeof(struct)) ,
106 or because of legacy values.
108 Thus, it seems that the new structure only gave disadvantages:
109 it does not help in checking, but it causes varying values
110 for the various architectures.
112 Decent ioctls return 0 on success and \-1 on error, while
113 any output value is stored via the argument.
115 quite a few ioctls in fact return an output value.
116 This is not yet indicated below.
120 // <include/asm-i386/socket.h>
123 FIOSETOWN const int *
124 SIOCSPGRP const int *
131 // <include/asm-i386/termios.h>
134 TCGETS struct termios *
135 TCSETS const struct termios *
136 TCSETSW const struct termios *
137 TCSETSF const struct termios *
138 TCGETA struct termio *
139 TCSETA const struct termio *
140 TCSETAW const struct termio *
141 TCSETAF const struct termio *
149 TIOCSPGRP const pid_t *
152 TIOCGWINSZ struct winsize *
153 TIOCSWINSZ const struct winsize *
159 TIOCSSOFTCAR const int *
162 TIOCLINUX const char * // MORE
164 TIOCGSERIAL struct serial_struct *
165 TIOCSSERIAL const struct serial_struct *
172 TIOCTTYGSTRUCT struct tty_struct *
178 TIOCSERSWILD const int *
179 TIOCGLCKTRMIOS struct termios *
180 TIOCSLCKTRMIOS const struct termios *
181 TIOCSERGSTRUCT struct async_struct *
184 .\" Some tables are split into two or more to avoid the warning:
185 .\" "table wider than line width". Some lines are to long to fit
186 .\" on one line on an 80 columns console
189 TIOCSERGETMULTI struct serial_multiport_struct *
190 TIOCSERSETMULTI const struct serial_multiport_struct *
193 // <include/linux/ax25.h>
196 SIOCAX25GETUID const struct sockaddr_ax25 *
197 SIOCAX25ADDUID const struct sockaddr_ax25 *
198 SIOCAX25DELUID const struct sockaddr_ax25 *
199 SIOCAX25NOUID const int *
200 SIOCAX25DIGCTL const int *
201 SIOCAX25GETPARMS struct ax25_parms_struct * // I-O
205 SIOCAX25SETPARMS const struct ax25_parms_struct *
208 // <include/linux/cdk.h>
217 // <include/linux/cdrom.h>
222 CDROMPLAYMSF const struct cdrom_msf *
223 CDROMPLAYTRKIND const struct cdrom_ti *
224 CDROMREADTOCHDR struct cdrom_tochdr *
228 CDROMREADTOCENTRY struct cdrom_tocentry * // I-O
235 CDROMVOLCTRL const struct cdrom_volctrl *
236 CDROMSUBCHNL struct cdrom_subchnl * // I-O
237 CDROMREADMODE2 const struct cdrom_msf * // MORE
238 CDROMREADMODE1 const struct cdrom_msf * // MORE
239 CDROMREADAUDIO const struct cdrom_read_audio * // MORE
244 CDROMMULTISESSION struct cdrom_multisession * // I-O
248 CDROM_GET_UPC struct { char [8]; } *
250 CDROMVOLREAD struct cdrom_volctrl *
251 CDROMREADRAW const struct cdrom_msf * // MORE
252 CDROMREADCOOKED const struct cdrom_msf * // MORE
253 CDROMSEEK const struct cdrom_msf *
256 // <include/linux/cm206.h>
259 CM206CTL_GET_STAT int
260 CM206CTL_GET_LAST_STAT int
263 // <include/linux/cyclades.h>
266 CYGETMON struct cyclades_monitor *
273 CYGETDEFTIMEOUT int *
277 // <include/linux/fd.h>
281 FDSETPRM const struct floppy_struct *
282 FDDEFPRM const struct floppy_struct *
283 FDGETPRM struct floppy_struct *
287 FDFMTTRK const struct format_descr *
291 FDSETMAXERRS const struct floppy_max_errors *
292 FDGETMAXERRS struct floppy_max_errors *
293 FDGETDRVTYP struct { char [16]; } *
294 FDSETDRVPRM const struct floppy_drive_params *
295 FDGETDRVPRM struct floppy_drive_params *
296 FDGETDRVSTAT struct floppy_drive_struct *
297 FDPOLLDRVSTAT struct floppy_drive_struct *
299 FDGETFDCSTAT struct floppy_fdc_state *
301 FDWERRORGET struct floppy_write_errors *
305 FDRAWCMD struct floppy_raw_cmd * // MORE // I-O
309 // <include/linux/fs.h>
315 BLKGETSIZE unsigned long *
317 BLKRASET unsigned long
318 BLKRAGET unsigned long *
321 FS_IOC_GETFLAGS int *
322 FS_IOC_SETFLAGS int *
323 FS_IOC_GETVERSION int *
324 FS_IOC_SETVERSION int *
325 FS_IOC_FIEMAP struct fiemap *
326 FS_IOC32_SETFLAGS int *
327 FS_IOC32_SETFLAGS int *
328 FS_IOC32_GETVERSION int *
329 FS_IOC32_SETVERSION int *
332 // <include/linux/hdreg.h>
335 HDIO_GETGEO struct hd_geometry *
336 HDIO_GET_UNMASKINTR int *
337 HDIO_GET_MULTCOUNT int *
338 HDIO_GET_IDENTITY struct hd_driveid *
339 HDIO_GET_KEEPSETTINGS int *
340 HDIO_GET_CHIPSET int *
341 HDIO_GET_NOWERR int *
343 HDIO_DRIVE_CMD int * // I-O
344 HDIO_SET_MULTCOUNT int
345 HDIO_SET_UNMASKINTR int
346 HDIO_SET_KEEPSETTINGS int
352 // <include/linux/if_eql.h>
355 EQL_ENSLAVE struct ifreq * // MORE // I-O
356 EQL_EMANCIPATE struct ifreq * // MORE // I-O
357 EQL_GETSLAVECFG struct ifreq * // MORE // I-O
358 EQL_SETSLAVECFG struct ifreq * // MORE // I-O
359 EQL_GETMASTRCFG struct ifreq * // MORE // I-O
360 EQL_SETMASTRCFG struct ifreq * // MORE // I-O
363 // <include/linux/if_plip.h>
366 SIOCDEVPLIP struct ifreq * // I-O
369 // <include/linux/if_ppp.h>
373 PPPIOCSFLAGS const int *
374 PPPIOCGASYNCMAP int *
375 PPPIOCSASYNCMAP const int *
377 PPPIOCSINPSIG const int *
378 PPPIOCSDEBUG const int *
380 PPPIOCGSTAT struct ppp_stats *
381 PPPIOCGTIME struct ppp_ddinfo *
382 PPPIOCGXASYNCMAP struct { int [8]; } *
383 PPPIOCSXASYNCMAP const struct { int [8]; } *
384 PPPIOCSMRU const int *
385 PPPIOCRASYNCMAP const int *
386 PPPIOCSMAXCID const int *
389 // <include/linux/ipx.h>
392 SIOCAIPXITFCRT const char *
393 SIOCAIPXPRISLT const char *
394 SIOCIPXCFGDATA struct ipx_config_data *
397 // <include/linux/kd.h>
400 GIO_FONT struct { char [8192]; } *
401 PIO_FONT const struct { char [8192]; } *
405 GIO_FONTX struct console_font_desc * // MORE // I-O
406 PIO_FONTX const struct console_font_desc * //MORE
410 GIO_CMAP struct { char [48]; } *
411 PIO_CMAP const struct { char [48]; }
422 KDENABIO void // MORE
423 KDDISABIO void // MORE
426 KDMAPDISP void // MORE
427 KDUNMAPDISP void // MORE
428 GIO_SCRNMAP struct { char [E_TABSZ]; } *
432 PIO_SCRNMAP const struct { char [E_TABSZ]; } *
433 GIO_UNISCRNMAP struct { short [E_TABSZ]; } *
434 PIO_UNISCRNMAP const struct { short [E_TABSZ]; } *
438 GIO_UNIMAP struct unimapdesc * // MORE // I-O
439 PIO_UNIMAP const struct unimapdesc * // MORE
440 PIO_UNIMAPCLR const struct unimapinit *
447 KDGKBENT struct kbentry * // I-O
448 KDSKBENT const struct kbentry *
449 KDGKBSENT struct kbsentry * // I-O
450 KDSKBSENT const struct kbsentry *
451 KDGKBDIACR struct kbdiacrs *
452 KDSKBDIACR const struct kbdiacrs *
453 KDGETKEYCODE struct kbkeycode * // I-O
454 KDSETKEYCODE const struct kbkeycode *
458 // <include/linux/lp.h>
471 LPGETSTATS struct lp_stats *
474 // <include/linux/mroute.h>
477 SIOCGETVIFCNT struct sioc_vif_req * // I-O
478 SIOCGETSGCNT struct sioc_sg_req * // I-O
481 // <include/linux/msdos_fs.h> see
485 VFAT_IOCTL_READDIR_BOTH struct dirent [2]
486 VFAT_IOCTL_READDIR_SHORT struct dirent [2]
487 FAT_IOCTL_GET_ATTRIBUTES __u32 *
488 FAT_IOCTL_SET_ATTRIBUTES const __u32 *
489 FAT_IOCTL_GET_VOLUME_ID __u32 *
492 // <include/linux/mtio.h>
495 MTIOCTOP const struct mtop *
496 MTIOCGET struct mtget *
497 MTIOCPOS struct mtpos *
498 MTIOCGETCONFIG struct mtconfiginfo *
499 MTIOCSETCONFIG const struct mtconfiginfo *
502 // <include/linux/netrom.h>
505 SIOCNRGETPARMS struct nr_parms_struct * // I-O
506 SIOCNRSETPARMS const struct nr_parms_struct *
508 SIOCNRRTCTL const int *
511 // <include/uapi/linux/wireless.h>
513 // This API is deprecated.
515 // It is being replaced by nl80211 and cfg80211.
519 .I https://wireless.wiki.kernel.org/en/developers/documentation/nl80211
522 x00008b00 SIOCSIWCOMMIT struct iwreq *
523 x00008b01 SIOCGIWNAME struct iwreq *
524 x00008b02 SIOCSIWNWID struct iwreq *
525 x00008b03 SIOCGIWNWID struct iwreq *
526 x00008b04 SIOCSIWFREQ struct iwreq *
527 x00008b05 SIOCGIWFREQ struct iwreq *
528 x00008b06 SIOCSIWMODE struct iwreq *
529 x00008b07 SIOCGIWMODE struct iwreq *
530 x00008b08 SIOCSIWSENS struct iwreq *
531 x00008b09 SIOCGIWSENS struct iwreq *
532 x00008b0a SIOCSIWRANGE struct iwreq *
533 x00008b0b SIOCGIWRANGE struct iwreq *
534 x00008b0c SIOCSIWPRIV struct iwreq *
535 x00008b0d SIOCGIWPRIV struct iwreq *
536 x00008b0e SIOCSIWSTATS struct iwreq *
537 x00008b0f SIOCGIWSTATS struct iwreq *
538 x00008b10 SIOCSIWSPY struct iwreq *
539 x00008b11 SIOCGIWSPY struct iwreq *
540 x00008b12 SIOCSIWTHRSPY struct iwreq *
541 x00008b13 SIOCGIWTHRSPY struct iwreq *
542 x00008b14 SIOCSIWAP struct iwreq *
543 x00008b15 SIOCGIWAP struct iwreq *
544 x00008b17 SIOCGIWAPLIST struct iwreq *
545 x00008b18 SIOCSIWSCAN struct iwreq *
546 x00008b19 SIOCGIWSCAN struct iwreq *
547 x00008b1a SIOCSIWESSID struct iwreq *
548 x00008b1b SIOCGIWESSID struct iwreq *
549 x00008b1c SIOCSIWNICKN struct iwreq *
550 x00008b1d SIOCGIWNICKN struct iwreq *
551 x00008b20 SIOCSIWRATE struct iwreq *
552 x00008b21 SIOCGIWRATE struct iwreq *
553 x00008b22 SIOCSIWRTS struct iwreq *
554 x00008b23 SIOCGIWRTS struct iwreq *
555 x00008b24 SIOCSIWFRAG struct iwreq *
556 x00008b25 SIOCGIWFRAG struct iwreq *
557 x00008b26 SIOCSIWTXPOW struct iwreq *
558 x00008b27 SIOCGIWTXPOW struct iwreq *
559 x00008b28 SIOCSIWRETRY struct iwreq *
560 x00008b29 SIOCGIWRETRY struct iwreq *
561 x00008b2a SIOCSIWENCODE struct iwreq *
562 x00008b2b SIOCGIWENCODE struct iwreq *
563 x00008b2c SIOCSIWPOWER struct iwreq *
564 x00008b2d SIOCGIWPOWER struct iwreq *
565 x00008b30 SIOCSIWGENIE struct iwreq *
566 x00008b31 SIOCGIWGENIE struct iwreq *
567 x00008b16 SIOCSIWMLME struct iwreq *
568 x00008b32 SIOCSIWAUTH struct iwreq *
569 x00008b33 SIOCGIWAUTH struct iwreq *
570 x00008b34 SIOCSIWENCODEEXT struct iwreq *
571 x00008b35 SIOCGIWENCODEEXT struct iwreq *
572 x00008b36 SIOCSIWPMKSA struct iwreq *
575 // <include/linux/sbpcd.h>
578 DDIOCSDBG const int *
582 // <include/linux/scc.h>
586 TIOCCHANINI const struct scc_modem *
587 TIOCGKISS struct ioctl_command * // I-O
588 TIOCSKISS const struct ioctl_command *
589 TIOCSCCSTAT struct scc_stat *
592 // <include/linux/scsi.h>
595 SCSI_IOCTL_GET_IDLUN struct { int [2]; } *
596 SCSI_IOCTL_TAGGED_ENABLE void
597 SCSI_IOCTL_TAGGED_DISABLE void
601 SCSI_IOCTL_PROBE_HOST const int * // MORE
604 // <include/linux/smb_fs.h>
607 SMB_IOC_GETMOUNTUID uid_t *
610 // <include/uapi/linux/sockios.h> see
615 SIOCADDRT const struct rtentry * // MORE
616 SIOCDELRT const struct rtentry * // MORE
619 SIOCGIFCONF struct ifconf * // MORE // I-O
620 SIOCGIFFLAGS struct ifreq * // I-O
621 SIOCSIFFLAGS const struct ifreq *
622 SIOCGIFADDR struct ifreq * // I-O
623 SIOCSIFADDR const struct ifreq *
624 SIOCGIFDSTADDR struct ifreq * // I-O
625 SIOCSIFDSTADDR const struct ifreq *
626 SIOCGIFBRDADDR struct ifreq * // I-O
627 SIOCSIFBRDADDR const struct ifreq *
628 SIOCGIFNETMASK struct ifreq * // I-O
629 SIOCSIFNETMASK const struct ifreq *
630 SIOCGIFMETRIC struct ifreq * // I-O
631 SIOCSIFMETRIC const struct ifreq *
632 SIOCGIFMEM struct ifreq * // I-O
633 SIOCSIFMEM const struct ifreq *
634 SIOCGIFMTU struct ifreq * // I-O
635 SIOCSIFMTU const struct ifreq *
639 OLD_SIOCGIFHWADDR struct ifreq * // I-O
640 SIOCSIFHWADDR const struct ifreq * // MORE
642 SIOCSIFENCAP const int *
643 SIOCGIFHWADDR struct ifreq * // I-O
646 SIOCADDMULTI const struct ifreq *
647 SIOCDELMULTI const struct ifreq *
650 SIOCDARP const struct arpreq *
651 SIOCGARP struct arpreq * // I-O
652 SIOCSARP const struct arpreq *
653 SIOCDRARP const struct arpreq *
654 SIOCGRARP struct arpreq * // I-O
655 SIOCSRARP const struct arpreq *
656 SIOCGIFMAP struct ifreq * // I-O
657 SIOCSIFMAP const struct ifreq *
660 // <include/linux/soundcard.h>
663 SNDCTL_SEQ_RESET void
668 SNDCTL_SYNTH_INFO struct synth_info * // I-O
669 SNDCTL_SEQ_CTRLRATE int * // I-O
670 SNDCTL_SEQ_GETOUTCOUNT int *
671 SNDCTL_SEQ_GETINCOUNT int *
672 SNDCTL_SEQ_PERCMODE void
676 SNDCTL_FM_LOAD_INSTR const struct sbi_instrument *
680 SNDCTL_SEQ_TESTMIDI const int *
681 SNDCTL_SEQ_RESETSAMPLES const int *
682 SNDCTL_SEQ_NRSYNTHS int *
683 SNDCTL_SEQ_NRMIDIS int *
684 SNDCTL_MIDI_INFO struct midi_info * // I-O
685 SNDCTL_SEQ_THRESHOLD const int *
686 SNDCTL_SYNTH_MEMAVL int * // I-O
687 SNDCTL_FM_4OP_ENABLE const int *
688 SNDCTL_PMGR_ACCESS struct patmgr_info * // I-O
689 SNDCTL_SEQ_PANIC void
693 SNDCTL_SEQ_OUTOFBAND const struct seq_event_rec *
697 SNDCTL_TMR_TIMEBASE int * // I-O
698 SNDCTL_TMR_START void
700 SNDCTL_TMR_CONTINUE void
701 SNDCTL_TMR_TEMPO int * // I-O
702 SNDCTL_TMR_SOURCE int * // I-O
703 SNDCTL_TMR_METRONOME const int *
704 SNDCTL_TMR_SELECT int * // I-O
705 SNDCTL_PMGR_IFACE struct patmgr_info * // I-O
706 SNDCTL_MIDI_PRETIME int * // I-O
707 SNDCTL_MIDI_MPUMODE const int *
711 SNDCTL_MIDI_MPUCMD struct mpu_command_rec * // I-O
715 SNDCTL_DSP_RESET void
717 SNDCTL_DSP_SPEED int * // I-O
718 SNDCTL_DSP_STEREO int * // I-O
719 SNDCTL_DSP_GETBLKSIZE int * // I-O
720 SOUND_PCM_WRITE_CHANNELS int * // I-O
721 SOUND_PCM_WRITE_FILTER int * // I-O
723 SNDCTL_DSP_SUBDIVIDE int * // I-O
724 SNDCTL_DSP_SETFRAGMENT int * // I-O
725 SNDCTL_DSP_GETFMTS int *
726 SNDCTL_DSP_SETFMT int * // I-O
730 SNDCTL_DSP_GETOSPACE struct audio_buf_info *
731 SNDCTL_DSP_GETISPACE struct audio_buf_info *
732 SNDCTL_DSP_NONBLOCK void
733 SOUND_PCM_READ_RATE int *
734 SOUND_PCM_READ_CHANNELS int *
735 SOUND_PCM_READ_BITS int *
736 SOUND_PCM_READ_FILTER int *
737 SNDCTL_COPR_RESET void
738 SNDCTL_COPR_LOAD const struct copr_buffer *
742 SNDCTL_COPR_RDATA struct copr_debug_buf * // I-O
743 SNDCTL_COPR_RCODE struct copr_debug_buf * // I-O
747 SNDCTL_COPR_WDATA const struct copr_debug_buf *
748 SNDCTL_COPR_WCODE const struct copr_debug_buf *
752 SNDCTL_COPR_RUN struct copr_debug_buf * // I-O
753 SNDCTL_COPR_HALT struct copr_debug_buf * // I-O
757 SNDCTL_COPR_SENDMSG const struct copr_msg *
758 SNDCTL_COPR_RCVMSG struct copr_msg *
759 SOUND_MIXER_READ_VOLUME int *
760 SOUND_MIXER_READ_BASS int *
761 SOUND_MIXER_READ_TREBLE int *
762 SOUND_MIXER_READ_SYNTH int *
763 SOUND_MIXER_READ_PCM int *
764 SOUND_MIXER_READ_SPEAKER int *
765 SOUND_MIXER_READ_LINE int *
766 SOUND_MIXER_READ_MIC int *
767 SOUND_MIXER_READ_CD int *
768 SOUND_MIXER_READ_IMIX int *
769 SOUND_MIXER_READ_ALTPCM int *
770 SOUND_MIXER_READ_RECLEV int *
771 SOUND_MIXER_READ_IGAIN int *
772 SOUND_MIXER_READ_OGAIN int *
773 SOUND_MIXER_READ_LINE1 int *
774 SOUND_MIXER_READ_LINE2 int *
775 SOUND_MIXER_READ_LINE3 int *
776 SOUND_MIXER_READ_MUTE int *
777 SOUND_MIXER_READ_ENHANCE int *
778 SOUND_MIXER_READ_LOUD int *
779 SOUND_MIXER_READ_RECSRC int *
780 SOUND_MIXER_READ_DEVMASK int *
781 SOUND_MIXER_READ_RECMASK int *
782 SOUND_MIXER_READ_STEREODEVS int *
783 SOUND_MIXER_READ_CAPS int *
787 SOUND_MIXER_WRITE_VOLUME int * // I-O
788 SOUND_MIXER_WRITE_BASS int * // I-O
789 SOUND_MIXER_WRITE_TREBLE int * // I-O
790 SOUND_MIXER_WRITE_SYNTH int * // I-O
791 SOUND_MIXER_WRITE_PCM int * // I-O
792 SOUND_MIXER_WRITE_SPEAKER int * // I-O
793 SOUND_MIXER_WRITE_LINE int * // I-O
794 SOUND_MIXER_WRITE_MIC int * // I-O
795 SOUND_MIXER_WRITE_CD int * // I-O
796 SOUND_MIXER_WRITE_IMIX int * // I-O
797 SOUND_MIXER_WRITE_ALTPCM int * // I-O
798 SOUND_MIXER_WRITE_RECLEV int * // I-O
799 SOUND_MIXER_WRITE_IGAIN int * // I-O
800 SOUND_MIXER_WRITE_OGAIN int * // I-O
801 SOUND_MIXER_WRITE_LINE1 int * // I-O
802 SOUND_MIXER_WRITE_LINE2 int * // I-O
803 SOUND_MIXER_WRITE_LINE3 int * // I-O
804 SOUND_MIXER_WRITE_MUTE int * // I-O
805 SOUND_MIXER_WRITE_ENHANCE int * // I-O
806 SOUND_MIXER_WRITE_LOUD int * // I-O
807 SOUND_MIXER_WRITE_RECSRC int * // I-O
810 // <include/linux/timerfd.h> see
811 .BR timerfd_create (2)
814 TFD_IOC_SET_TICKS uint64_t *
817 // <include/linux/umsdos_fs.h>
820 UMSDOS_READDIR_DOS struct umsdos_ioctl * // I-O
821 UMSDOS_UNLINK_DOS const struct umsdos_ioctl *
822 UMSDOS_RMDIR_DOS const struct umsdos_ioctl *
823 UMSDOS_STAT_DOS struct umsdos_ioctl * // I-O
824 UMSDOS_CREAT_EMD const struct umsdos_ioctl *
825 UMSDOS_UNLINK_EMD const struct umsdos_ioctl *
826 UMSDOS_READDIR_EMD struct umsdos_ioctl * // I-O
827 UMSDOS_GETVERSION struct umsdos_ioctl *
829 UMSDOS_DOS_SETUP const struct umsdos_ioctl *
830 UMSDOS_RENAME_DOS const struct umsdos_ioctl *
833 // <include/linux/vt.h>
837 VT_GETMODE struct vt_mode *
838 VT_SETMODE const struct vt_mode *
839 VT_GETSTATE struct vt_stat *
845 VT_RESIZE const struct vt_sizes *
846 VT_RESIZEX const struct vt_consize *
850 Some ioctl's take a pointer to a structure which contains additional
852 These are documented here in alphabetical order.
855 takes an input pointer
856 .IR "const struct cdrom_read_audio\ *" .
859 field points to an output buffer of length
860 .IR "nframes\ * CD_FRAMESIZE_RAW" .
862 .BR CDROMREADCOOKED ,
867 take an input pointer
868 .IR "const struct cdrom_msf\ *" .
869 They use the same pointer as an output pointer to
871 The length varies by request.
874 most drivers use CD_FRAMESIZE, but the Optics Storage
875 driver uses OPT_BLOCKSIZE instead (both have the numerical value
879 CDROMREADCOOKED char [CD_FRAMESIZE]
880 CDROMREADMODE1 char [CD_FRAMESIZE or OPT_BLOCKSIZE]
881 CDROMREADMODE2 char [CD_FRAMESIZE_RAW0]
882 CDROMREADRAW char [CD_FRAMESIZE_RAW]
887 .BR EQL_GETSLAVECFG ,
888 .BR EQL_SETSLAVECFG ,
889 .BR EQL_GETMASTERCFG ,
893 .IR "struct ifreq\ *" .
896 field is a pointer to another structure as follows:
899 EQL_ENSLAVE const struct slaving_request *
900 EQL_EMANCIPATE const struct slaving_request *
901 EQL_GETSLAVECFG struct slave_config * // I-O
902 EQL_SETSLAVECFG const struct slave_config *
903 EQL_GETMASTERCFG struct master_config *
904 EQL_SETMASTERCFG const struct master_config *
909 .IR "struct floppy raw_cmd\ *" .
911 .I flags & FD_RAW_WRITE
914 points to an input buffer of length
917 .I flags & FD_RAW_READ
920 points to an output buffer of length
927 .I struct console_font_desc\ *
929 .IR "const struct console_font_desc\ *" ,
932 points to a buffer of
933 .IR "char [charcount]" .
934 This is an output buffer for
936 and an input buffer for
943 .I "struct unimapdesc\ *"
945 .IR "const struct unimapdesc\ *" ,
948 points to a buffer of
949 .IR "struct unipair [entry_ct]" .
950 This is an output buffer for
952 and an input buffer for
955 KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to
957 They are essentially alternate interfaces to 'ioperm'.
962 enable or disable memory mappings or I/O port access.
963 They are not implemented in the kernel.
965 .B SCSI_IOCTL_PROBE_HOST
966 takes an input pointer
969 It uses the same pointer as an output pointer to a
971 buffer of this length.
976 take an input pointer whose type depends on
980 Most protocols const struct rtentry *
981 AX.25 const struct ax25_route *
982 NET/ROM const struct nr_route_struct *
983 INET6 const struct in6_rtmsg *
988 .IR "struct ifconf\ *" .
991 field points to a buffer of length
993 bytes, into which the kernel writes a list of type
994 .IR "struct ifreq []" .
997 takes an input pointer whose type depends on the protocol:
1000 Most protocols const struct ifreq *
1001 AX.25 const char [AX25_ADDR_LEN]
1006 .IR "const char\ *" .
1007 It uses this to distinguish several
1008 independent subcases.
1013 after an N-byte pad.
1015 is implicitly defined in
1016 .IR drivers/char/selection.c
1019 TIOCLINUX-2 1 + const struct selection *
1022 TIOCLINUX-5 4 + const struct { long [8]; } *
1025 TIOCLINUX-10 1 + const char *
1030 This list does not include ioctls in the range
1033 .BR SIOCPROTOPRIVATE .
1038 SCSI_IOCTL_GET_IDLUN
1039 SNDCTL_TMR_START TCSETS
1040 SNDCTL_TMR_STOP TCSETSW
1041 SNDCTL_TMR_CONTINUE TCSETSF