]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man2/ioctl_list.2
ioctl_list.2: Remove hex values from constants
[thirdparty/man-pages.git] / man2 / ioctl_list.2
CommitLineData
2297bf0e 1.\" Ioctl List 1.3.27 is copyright 1995 by Michael Elizabeth Chastain.
fea681da
MK
2.\" Michael Elizabeth Chastain
3.\" <mec@duracef.shout.net>
c13182ef 4.\"
ef06249a 5.\" %%%LICENSE_START(GPLv2_MISC)
0ffb4f81 6.\" It is licensed under the GNU General Public License, Version 2.
8ff7380d 7.\" %%%LICENSE_END
c13182ef 8.\"
2297bf0e
MK
9.\" Ioctl List 1.3.27
10.\" Sun 17 Sep 1995
11.\"
12.\" // Copyright
13.\"
c13182ef
MK
14.\"
15.\"
fea681da 16.\" // Change Log
c13182ef 17.\"
fea681da
MK
18.\" 1.3.27 421 ioctls.
19.\" Type information for non-pointer args.
20.\" SIOCDEVPRIVATE, SIOCPROTOPRIVATE ioctls.
21.\" Descriptions of extended arguments.
c13182ef 22.\"
fea681da
MK
23.\" 1.2.9 365 ioctls.
24.\" First public version.
c13182ef
MK
25.\"
26.\"
e23e4c26 27.\" 2007-12-29 Alain Portal <aportal@univ-montp2.fr> and Michael Kerrisk
ec113208 28.\" <mtk.manpages@gmail.com>:
e23e4c26 29.\" Various formatting improvements
60dd1421 30.\"
a5409de9 31.TH IOCTL_LIST 2 2019-11-19 "Linux" "Linux Programmer's Manual"
fea681da
MK
32.SH NAME
33ioctl_list \- list of ioctl calls in Linux/i386 kernel
fea681da 34.SH DESCRIPTION
fea681da 35This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel
c13182ef 361.3.27.
4bd8c614 37It contains 421 ioctls from
e23e4c26 38.IR </usr/include/{asm,linux}/*.h> .
fea681da
MK
39For each ioctl, its numerical value, its name, and its argument
40type are given.
41.PP
e23e4c26 42An argument type of
5049da5b 43.I "const struct foo\ *"
e23e4c26 44means the argument is input to the kernel.
5049da5b 45.I "struct foo\ *"
e23e4c26 46means the kernel outputs the argument.
fea681da 47If the kernel uses the argument for both input and output, this is
e23e4c26 48marked with \fI//\ I-O\fP.
fea681da
MK
49.PP
50Some ioctls take more arguments or return more values than a single
c13182ef 51structure.
e23e4c26 52These are marked \fI//\ MORE\fP and documented further in a
fea681da 53separate section.
556e715a
MK
54In addition, information about some ioctls can be found in
55the pages listed under SEE ALSO in
56.BR ioctl (2).
fea681da
MK
57.PP
58This list is very incomplete.
73d8cece 59.SS ioctl structure
fea681da
MK
60.\" added two sections - aeb
61Ioctl command values are 32-bit constants.
62In principle these constants are completely arbitrary, but people have
63tried to build some structure into them.
dd3568a1 64.PP
fea681da
MK
65The old Linux situation was that of mostly 16-bit constants, where the
66last byte is a serial number, and the preceding byte(s) give a type
c13182ef
MK
67indicating the driver.
68Sometimes the major number was used: 0x03
e23e4c26
MK
69for the
70.B HDIO_*
71ioctls, 0x06 for the
72.B LP*
73ioctls.
c13182ef
MK
74And sometimes
75one or more ASCII letters were used.
e23e4c26
MK
76For example,
77.B TCGETS
78has value
f81fb444 790x00005401, with 0x54 = \(aqT\(aq indicating the terminal driver, and
e23e4c26 80.B CYGETTIMEOUT
f81fb444 81has value 0x00435906, with 0x43 0x59 = \(aqC\(aq \(aqY\(aq
fea681da 82indicating the cyclades driver.
dd3568a1 83.PP
fea681da
MK
84Later (0.98p5) some more information was built into the number.
85One has 2 direction bits
86(00: none, 01: write, 10: read, 11: read/write)
87followed by 14 size bits (giving the size of the argument),
88followed by an 8-bit type (collecting the ioctls in groups
89for a common purpose or a common driver), and an 8-bit
90serial number.
dd3568a1 91.PP
c9942389
MK
92The macros describing this structure live in
93.I <asm/ioctl.h>
e23e4c26
MK
94and are
95.B _IO(type,nr)
96and
97.BR "{_IOR,_IOW,_IOWR}(type,nr,size)" .
98They use
99.I sizeof(size)
100so that size is a
c4bb193f 101misnomer here: this third argument is a data type.
dd3568a1 102.PP
e9496f74
MK
103Note that the size bits are very unreliable: in lots of cases
104they are wrong, either because of buggy macros using
e23e4c26
MK
105.IR sizeof(sizeof(struct)) ,
106or because of legacy values.
dd3568a1 107.PP
fea681da
MK
108Thus, it seems that the new structure only gave disadvantages:
109it does not help in checking, but it causes varying values
110for the various architectures.
47297adb 111.SH RETURN VALUE
fea681da 112Decent ioctls return 0 on success and \-1 on error, while
c13182ef
MK
113any output value is stored via the argument.
114However,
fea681da
MK
115quite a few ioctls in fact return an output value.
116This is not yet indicated below.
e646a1ba 117.PP
fea681da 118// Main table.
e646a1ba 119.PP
fea681da 120// <include/asm-i386/socket.h>
e23e4c26 121.TS
ebf3a7d5
MK
122l l.
123FIOSETOWN const int *
124SIOCSPGRP const int *
125FIOGETOWN int *
126SIOCGPGRP int *
127SIOCATMAR int *
128SIOCGSTAMP timeval *
e23e4c26 129.TE
e646a1ba 130.sp 1
fea681da 131// <include/asm-i386/termios.h>
e23e4c26 132.TS
ebf3a7d5
MK
133l l.
134TCGETS struct termios *
135TCSETS const struct termios *
136TCSETSW const struct termios *
137TCSETSF const struct termios *
138TCGETA struct termio *
139TCSETA const struct termio *
140TCSETAW const struct termio *
141TCSETAF const struct termio *
142TCSBRK int
143TCXONC int
144TCFLSH int
145TIOCEXCL void
146TIOCNXCL void
147TIOCSCTTY int
148TIOCGPGRP pid_t *
149TIOCSPGRP const pid_t *
150TIOCOUTQ int *
151TIOCSTI const char *
152TIOCGWINSZ struct winsize *
153TIOCSWINSZ const struct winsize *
154TIOCMGET int *
155TIOCMBIS const int *
156TIOCMBIC const int *
157TIOCMSET const int *
158TIOCGSOFTCAR int *
159TIOCSSOFTCAR const int *
160FIONREAD int *
161TIOCINQ int *
162TIOCLINUX const char * // MORE
163TIOCCONS void
164TIOCGSERIAL struct serial_struct *
165TIOCSSERIAL const struct serial_struct *
166TIOCPKT const int *
167FIONBIO const int *
168TIOCNOTTY void
169TIOCSETD const int *
170TIOCGETD int *
171TCSBRKP int
172TIOCTTYGSTRUCT struct tty_struct *
173FIONCLEX void
174FIOCLEX void
175FIOASYNC const int *
176TIOCSERCONFIG void
177TIOCSERGWILD int *
178TIOCSERSWILD const int *
179TIOCGLCKTRMIOS struct termios *
180TIOCSLCKTRMIOS const struct termios *
181TIOCSERGSTRUCT struct async_struct *
182TIOCSERGETLSR int *
e53eca74
BIG
183.TE
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
187.TS
ebf3a7d5
MK
188l l.
189TIOCSERGETMULTI struct serial_multiport_struct *
190TIOCSERSETMULTI const struct serial_multiport_struct *
e23e4c26 191.TE
e646a1ba 192.sp 1
fea681da 193// <include/linux/ax25.h>
e23e4c26 194.TS
ebf3a7d5
MK
195l l.
196SIOCAX25GETUID const struct sockaddr_ax25 *
197SIOCAX25ADDUID const struct sockaddr_ax25 *
198SIOCAX25DELUID const struct sockaddr_ax25 *
199SIOCAX25NOUID const int *
200SIOCAX25DIGCTL const int *
201SIOCAX25GETPARMS struct ax25_parms_struct * // I-O
e53eca74
BIG
202.TE
203.TS
ebf3a7d5
MK
204l l.
205SIOCAX25SETPARMS const struct ax25_parms_struct *
e23e4c26 206.TE
e646a1ba 207.sp 1
fea681da 208// <include/linux/cdk.h>
e23e4c26 209.TS
ebf3a7d5
MK
210l l.
211STL_BINTR void
212STL_BSTART void
213STL_BSTOP void
214STL_BRESET void
e23e4c26 215.TE
e646a1ba 216.sp 1
fea681da 217// <include/linux/cdrom.h>
e23e4c26 218.TS
ebf3a7d5
MK
219l l.
220CDROMPAUSE void
221CDROMRESUME void
222CDROMPLAYMSF const struct cdrom_msf *
223CDROMPLAYTRKIND const struct cdrom_ti *
224CDROMREADTOCHDR struct cdrom_tochdr *
e53eca74
BIG
225.TE
226.TS
ebf3a7d5
MK
227l l l.
228CDROMREADTOCENTRY struct cdrom_tocentry * // I-O
e53eca74
BIG
229.TE
230.TS
ebf3a7d5
MK
231l l l.
232CDROMSTOP void
233CDROMSTART void
234CDROMEJECT void
235CDROMVOLCTRL const struct cdrom_volctrl *
236CDROMSUBCHNL struct cdrom_subchnl * // I-O
237CDROMREADMODE2 const struct cdrom_msf * // MORE
238CDROMREADMODE1 const struct cdrom_msf * // MORE
239CDROMREADAUDIO const struct cdrom_read_audio * // MORE
240CDROMEJECT_SW int
e53eca74
BIG
241.TE
242.TS
ebf3a7d5
MK
243l l l.
244CDROMMULTISESSION struct cdrom_multisession * // I-O
e53eca74
BIG
245.TE
246.TS
ebf3a7d5
MK
247l l l.
248CDROM_GET_UPC struct { char [8]; } *
249CDROMRESET void
250CDROMVOLREAD struct cdrom_volctrl *
251CDROMREADRAW const struct cdrom_msf * // MORE
252CDROMREADCOOKED const struct cdrom_msf * // MORE
253CDROMSEEK const struct cdrom_msf *
e23e4c26 254.TE
e646a1ba 255.sp 1
fea681da 256// <include/linux/cm206.h>
e23e4c26 257.TS
ebf3a7d5
MK
258l l.
259CM206CTL_GET_STAT int
260CM206CTL_GET_LAST_STAT int
e23e4c26 261.TE
e646a1ba 262.sp 1
fea681da 263// <include/linux/cyclades.h>
e23e4c26 264.TS
ebf3a7d5
MK
265l l.
266CYGETMON struct cyclades_monitor *
267CYGETTHRESH int *
268CYSETTHRESH int
269CYGETDEFTHRESH int *
270CYSETDEFTHRESH int
271CYGETTIMEOUT int *
272CYSETTIMEOUT int
273CYGETDEFTIMEOUT int *
274CYSETDEFTIMEOUT int
e23e4c26 275.TE
e646a1ba 276.sp 1
fea681da 277// <include/linux/fd.h>
e23e4c26 278.TS
ebf3a7d5
MK
279l l.
280FDCLRPRM void
281FDSETPRM const struct floppy_struct *
282FDDEFPRM const struct floppy_struct *
283FDGETPRM struct floppy_struct *
284FDMSGON void
285FDMSGOFF void
286FDFMTBEG void
287FDFMTTRK const struct format_descr *
288FDFMTEND void
289FDSETEMSGTRESH int
290FDFLUSH void
291FDSETMAXERRS const struct floppy_max_errors *
292FDGETMAXERRS struct floppy_max_errors *
293FDGETDRVTYP struct { char [16]; } *
294FDSETDRVPRM const struct floppy_drive_params *
295FDGETDRVPRM struct floppy_drive_params *
296FDGETDRVSTAT struct floppy_drive_struct *
297FDPOLLDRVSTAT struct floppy_drive_struct *
298FDRESET int
299FDGETFDCSTAT struct floppy_fdc_state *
300FDWERRORCLR void
301FDWERRORGET struct floppy_write_errors *
e53eca74
BIG
302.TE
303.TS
ebf3a7d5
MK
304l l l.
305FDRAWCMD struct floppy_raw_cmd * // MORE // I-O
306FDTWADDLE void
e23e4c26 307.TE
e646a1ba 308.sp 1
fea681da 309// <include/linux/fs.h>
e23e4c26 310.TS
ebf3a7d5
MK
311l l l.
312BLKROSET const int *
313BLKROGET int *
314BLKRRPART void
315BLKGETSIZE unsigned long *
316BLKFLSBUF void
317BLKRASET unsigned long
318BLKRAGET unsigned long *
319FIBMAP int * // I-O
320FIGETBSZ int *
321FS_IOC_GETFLAGS int *
322FS_IOC_SETFLAGS int *
323FS_IOC_GETVERSION int *
324FS_IOC_SETVERSION int *
325FS_IOC_FIEMAP struct fiemap *
326FS_IOC32_SETFLAGS int *
327FS_IOC32_SETFLAGS int *
328FS_IOC32_GETVERSION int *
329FS_IOC32_SETVERSION int *
e23e4c26 330.TE
e646a1ba 331.sp 1
fea681da 332// <include/linux/hdreg.h>
e23e4c26 333.TS
ebf3a7d5
MK
334l l.
335HDIO_GETGEO struct hd_geometry *
336HDIO_GET_UNMASKINTR int *
337HDIO_GET_MULTCOUNT int *
338HDIO_GET_IDENTITY struct hd_driveid *
339HDIO_GET_KEEPSETTINGS int *
340HDIO_GET_CHIPSET int *
341HDIO_GET_NOWERR int *
342HDIO_GET_DMA int *
343HDIO_DRIVE_CMD int * // I-O
344HDIO_SET_MULTCOUNT int
345HDIO_SET_UNMASKINTR int
346HDIO_SET_KEEPSETTINGS int
347HDIO_SET_CHIPSET int
348HDIO_SET_NOWERR int
349HDIO_SET_DMA int
e23e4c26 350.TE
e646a1ba 351.sp 1
fea681da 352// <include/linux/if_eql.h>
e23e4c26 353.TS
ebf3a7d5
MK
354l l l.
355EQL_ENSLAVE struct ifreq * // MORE // I-O
356EQL_EMANCIPATE struct ifreq * // MORE // I-O
357EQL_GETSLAVECFG struct ifreq * // MORE // I-O
358EQL_SETSLAVECFG struct ifreq * // MORE // I-O
359EQL_GETMASTRCFG struct ifreq * // MORE // I-O
360EQL_SETMASTRCFG struct ifreq * // MORE // I-O
e23e4c26 361.TE
e646a1ba 362.sp 1
fea681da 363// <include/linux/if_plip.h>
e23e4c26 364.TS
ebf3a7d5
MK
365l l l.
366SIOCDEVPLIP struct ifreq * // I-O
e23e4c26 367.TE
e646a1ba 368.sp 1
fea681da 369// <include/linux/if_ppp.h>
e23e4c26 370.TS
ebf3a7d5
MK
371l l.
372PPPIOCGFLAGS int *
373PPPIOCSFLAGS const int *
374PPPIOCGASYNCMAP int *
375PPPIOCSASYNCMAP const int *
376PPPIOCGUNIT int *
377PPPIOCSINPSIG const int *
378PPPIOCSDEBUG const int *
379PPPIOCGDEBUG int *
380PPPIOCGSTAT struct ppp_stats *
381PPPIOCGTIME struct ppp_ddinfo *
382PPPIOCGXASYNCMAP struct { int [8]; } *
383PPPIOCSXASYNCMAP const struct { int [8]; } *
384PPPIOCSMRU const int *
385PPPIOCRASYNCMAP const int *
386PPPIOCSMAXCID const int *
e23e4c26 387.TE
e646a1ba 388.sp 1
fea681da 389// <include/linux/ipx.h>
e23e4c26 390.TS
ebf3a7d5
MK
391l l.
392SIOCAIPXITFCRT const char *
393SIOCAIPXPRISLT const char *
394SIOCIPXCFGDATA struct ipx_config_data *
e23e4c26 395.TE
e646a1ba 396.sp 1
fea681da 397// <include/linux/kd.h>
e23e4c26 398.TS
ebf3a7d5
MK
399l l.
400GIO_FONT struct { char [8192]; } *
401PIO_FONT const struct { char [8192]; } *
e53eca74
BIG
402.TE
403.TS
ebf3a7d5
MK
404l2 l2 l.
405GIO_FONTX struct console_font_desc * // MORE // I-O
406PIO_FONTX const struct console_font_desc * //MORE
e53eca74
BIG
407.TE
408.TS
409l l l.
ebf3a7d5
MK
410GIO_CMAP struct { char [48]; } *
411PIO_CMAP const struct { char [48]; }
e53eca74
BIG
412.TE
413.TS
ebf3a7d5
MK
414l l l.
415KIOCSOUND int
416KDMKTONE int
417KDGETLED char *
418KDSETLED int
419KDGKBTYPE char *
420KDADDIO int // MORE
421KDDELIO int // MORE
422KDENABIO void // MORE
423KDDISABIO void // MORE
424KDSETMODE int
425KDGETMODE int *
426KDMAPDISP void // MORE
427KDUNMAPDISP void // MORE
428GIO_SCRNMAP struct { char [E_TABSZ]; } *
e53eca74
BIG
429.TE
430.TS
ebf3a7d5
MK
431l l.
432PIO_SCRNMAP const struct { char [E_TABSZ]; } *
433GIO_UNISCRNMAP struct { short [E_TABSZ]; } *
434PIO_UNISCRNMAP const struct { short [E_TABSZ]; } *
e53eca74
BIG
435.TE
436.TS
ebf3a7d5
MK
437l l l.
438GIO_UNIMAP struct unimapdesc * // MORE // I-O
439PIO_UNIMAP const struct unimapdesc * // MORE
440PIO_UNIMAPCLR const struct unimapinit *
441KDGKBMODE int *
442KDSKBMODE int
443KDGKBMETA int *
444KDSKBMETA int
445KDGKBLED int *
446KDSKBLED int
447KDGKBENT struct kbentry * // I-O
448KDSKBENT const struct kbentry *
449KDGKBSENT struct kbsentry * // I-O
450KDSKBSENT const struct kbsentry *
451KDGKBDIACR struct kbdiacrs *
452KDSKBDIACR const struct kbdiacrs *
453KDGETKEYCODE struct kbkeycode * // I-O
454KDSETKEYCODE const struct kbkeycode *
455KDSIGACCEPT int
e23e4c26 456.TE
e646a1ba 457.sp 1
fea681da 458// <include/linux/lp.h>
e23e4c26 459.TS
ebf3a7d5
MK
460l l.
461LPCHAR int
462LPTIME int
463LPABORT int
464LPSETIRQ int
465LPGETIRQ int *
466LPWAIT int
467LPCAREFUL int
468LPABORTOPEN int
469LPGETSTATUS int *
470LPRESET void
471LPGETSTATS struct lp_stats *
e23e4c26 472.TE
e646a1ba 473.sp 1
fea681da 474// <include/linux/mroute.h>
e23e4c26 475.TS
ebf3a7d5
MK
476l l l.
477SIOCGETVIFCNT struct sioc_vif_req * // I-O
478SIOCGETSGCNT struct sioc_sg_req * // I-O
e23e4c26 479.TE
e646a1ba 480.sp 1
458abbe6 481// <include/linux/msdos_fs.h> see
60dd1421 482.BR ioctl_fat (2)
237565c9 483.TS
ebf3a7d5
MK
484l l.
485VFAT_IOCTL_READDIR_BOTH struct dirent [2]
486VFAT_IOCTL_READDIR_SHORT struct dirent [2]
487FAT_IOCTL_GET_ATTRIBUTES __u32 *
488FAT_IOCTL_SET_ATTRIBUTES const __u32 *
489FAT_IOCTL_GET_VOLUME_ID __u32 *
237565c9 490.TE
e646a1ba 491.sp 1
fea681da 492// <include/linux/mtio.h>
e23e4c26 493.TS
ebf3a7d5
MK
494l l.
495MTIOCTOP const struct mtop *
496MTIOCGET struct mtget *
497MTIOCPOS struct mtpos *
498MTIOCGETCONFIG struct mtconfiginfo *
499MTIOCSETCONFIG const struct mtconfiginfo *
e23e4c26 500.TE
e646a1ba 501.sp 1
fea681da 502// <include/linux/netrom.h>
e23e4c26 503.TS
ebf3a7d5
MK
504l l l.
505SIOCNRGETPARMS struct nr_parms_struct * // I-O
506SIOCNRSETPARMS const struct nr_parms_struct *
507SIOCNRDECOBS void
508SIOCNRRTCTL const int *
e23e4c26 509.TE
e646a1ba 510.sp 1
938bcc08 511// <include/uapi/linux/wireless.h>
eb56b04b
HS
512.br
513// This API is deprecated.
514.br
515// It is being replaced by nl80211 and cfg80211.
516See
517.br
518//
519.I https://wireless.wiki.kernel.org/en/developers/documentation/nl80211
938bcc08 520.TS
eb56b04b
HS
521l l l.
522x00008b00 SIOCSIWCOMMIT struct iwreq *
523x00008b01 SIOCGIWNAME struct iwreq *
524x00008b02 SIOCSIWNWID struct iwreq *
525x00008b03 SIOCGIWNWID struct iwreq *
526x00008b04 SIOCSIWFREQ struct iwreq *
527x00008b05 SIOCGIWFREQ struct iwreq *
528x00008b06 SIOCSIWMODE struct iwreq *
529x00008b07 SIOCGIWMODE struct iwreq *
530x00008b08 SIOCSIWSENS struct iwreq *
531x00008b09 SIOCGIWSENS struct iwreq *
532x00008b0a SIOCSIWRANGE struct iwreq *
533x00008b0b SIOCGIWRANGE struct iwreq *
534x00008b0c SIOCSIWPRIV struct iwreq *
535x00008b0d SIOCGIWPRIV struct iwreq *
536x00008b0e SIOCSIWSTATS struct iwreq *
537x00008b0f SIOCGIWSTATS struct iwreq *
538x00008b10 SIOCSIWSPY struct iwreq *
539x00008b11 SIOCGIWSPY struct iwreq *
540x00008b12 SIOCSIWTHRSPY struct iwreq *
541x00008b13 SIOCGIWTHRSPY struct iwreq *
542x00008b14 SIOCSIWAP struct iwreq *
543x00008b15 SIOCGIWAP struct iwreq *
544x00008b17 SIOCGIWAPLIST struct iwreq *
545x00008b18 SIOCSIWSCAN struct iwreq *
546x00008b19 SIOCGIWSCAN struct iwreq *
547x00008b1a SIOCSIWESSID struct iwreq *
548x00008b1b SIOCGIWESSID struct iwreq *
549x00008b1c SIOCSIWNICKN struct iwreq *
550x00008b1d SIOCGIWNICKN struct iwreq *
551x00008b20 SIOCSIWRATE struct iwreq *
552x00008b21 SIOCGIWRATE struct iwreq *
553x00008b22 SIOCSIWRTS struct iwreq *
554x00008b23 SIOCGIWRTS struct iwreq *
555x00008b24 SIOCSIWFRAG struct iwreq *
556x00008b25 SIOCGIWFRAG struct iwreq *
557x00008b26 SIOCSIWTXPOW struct iwreq *
558x00008b27 SIOCGIWTXPOW struct iwreq *
559x00008b28 SIOCSIWRETRY struct iwreq *
560x00008b29 SIOCGIWRETRY struct iwreq *
561x00008b2a SIOCSIWENCODE struct iwreq *
562x00008b2b SIOCGIWENCODE struct iwreq *
563x00008b2c SIOCSIWPOWER struct iwreq *
564x00008b2d SIOCGIWPOWER struct iwreq *
565x00008b30 SIOCSIWGENIE struct iwreq *
566x00008b31 SIOCGIWGENIE struct iwreq *
567x00008b16 SIOCSIWMLME struct iwreq *
568x00008b32 SIOCSIWAUTH struct iwreq *
569x00008b33 SIOCGIWAUTH struct iwreq *
570x00008b34 SIOCSIWENCODEEXT struct iwreq *
571x00008b35 SIOCGIWENCODEEXT struct iwreq *
572x00008b36 SIOCSIWPMKSA struct iwreq *
938bcc08 573.TE
e646a1ba 574.sp 1
fea681da 575// <include/linux/sbpcd.h>
e23e4c26 576.TS
ebf3a7d5
MK
577l l.
578DDIOCSDBG const int *
579CDROMAUDIOBUFSIZ int
e23e4c26 580.TE
e646a1ba 581.sp 1
fea681da 582// <include/linux/scc.h>
e23e4c26 583.TS
ebf3a7d5
MK
584l l l.
585TIOCSCCINI void
586TIOCCHANINI const struct scc_modem *
587TIOCGKISS struct ioctl_command * // I-O
588TIOCSKISS const struct ioctl_command *
589TIOCSCCSTAT struct scc_stat *
e23e4c26 590.TE
e646a1ba 591.sp 1
fea681da 592// <include/linux/scsi.h>
e23e4c26 593.TS
ebf3a7d5
MK
594l l.
595SCSI_IOCTL_GET_IDLUN struct { int [2]; } *
596SCSI_IOCTL_TAGGED_ENABLE void
597SCSI_IOCTL_TAGGED_DISABLE void
e53eca74
BIG
598.TE
599.TS
ebf3a7d5
MK
600l l l.
601SCSI_IOCTL_PROBE_HOST const int * // MORE
e23e4c26 602.TE
e646a1ba 603.sp 1
fea681da 604// <include/linux/smb_fs.h>
e23e4c26 605.TS
e53eca74 606l l l.
ebf3a7d5 607SMB_IOC_GETMOUNTUID uid_t *
e23e4c26 608.TE
e646a1ba 609.sp 1
767ffad3 610// <include/uapi/linux/sockios.h> see
a3b9b5da 611.BR netdevice (7)
e646a1ba 612.PP
e23e4c26 613.TS
ebf3a7d5
MK
614l l l.
615SIOCADDRT const struct rtentry * // MORE
616SIOCDELRT const struct rtentry * // MORE
617SIOCGIFNAME char []
618SIOCSIFLINK void
619SIOCGIFCONF struct ifconf * // MORE // I-O
620SIOCGIFFLAGS struct ifreq * // I-O
621SIOCSIFFLAGS const struct ifreq *
622SIOCGIFADDR struct ifreq * // I-O
623SIOCSIFADDR const struct ifreq *
624SIOCGIFDSTADDR struct ifreq * // I-O
625SIOCSIFDSTADDR const struct ifreq *
626SIOCGIFBRDADDR struct ifreq * // I-O
627SIOCSIFBRDADDR const struct ifreq *
628SIOCGIFNETMASK struct ifreq * // I-O
629SIOCSIFNETMASK const struct ifreq *
630SIOCGIFMETRIC struct ifreq * // I-O
631SIOCSIFMETRIC const struct ifreq *
632SIOCGIFMEM struct ifreq * // I-O
633SIOCSIFMEM const struct ifreq *
634SIOCGIFMTU struct ifreq * // I-O
635SIOCSIFMTU const struct ifreq *
e53eca74
BIG
636.TE
637.TS
ebf3a7d5
MK
638l l l.
639OLD_SIOCGIFHWADDR struct ifreq * // I-O
640SIOCSIFHWADDR const struct ifreq * // MORE
641SIOCGIFENCAP int *
642SIOCSIFENCAP const int *
643SIOCGIFHWADDR struct ifreq * // I-O
644SIOCGIFSLAVE void
645SIOCSIFSLAVE void
646SIOCADDMULTI const struct ifreq *
647SIOCDELMULTI const struct ifreq *
648SIOCADDRTOLD void
649SIOCDELRTOLD void
650SIOCDARP const struct arpreq *
651SIOCGARP struct arpreq * // I-O
652SIOCSARP const struct arpreq *
653SIOCDRARP const struct arpreq *
654SIOCGRARP struct arpreq * // I-O
655SIOCSRARP const struct arpreq *
656SIOCGIFMAP struct ifreq * // I-O
657SIOCSIFMAP const struct ifreq *
e23e4c26 658.TE
e646a1ba 659.sp 1
fea681da 660// <include/linux/soundcard.h>
e23e4c26 661.TS
ebf3a7d5
MK
662l l.
663SNDCTL_SEQ_RESET void
664SNDCTL_SEQ_SYNC void
665.TE
666.TS
e53eca74 667l l l.
ebf3a7d5
MK
668SNDCTL_SYNTH_INFO struct synth_info * // I-O
669SNDCTL_SEQ_CTRLRATE int * // I-O
670SNDCTL_SEQ_GETOUTCOUNT int *
671SNDCTL_SEQ_GETINCOUNT int *
672SNDCTL_SEQ_PERCMODE void
e53eca74
BIG
673.TE
674.TS
ebf3a7d5
MK
675l l.
676SNDCTL_FM_LOAD_INSTR const struct sbi_instrument *
e53eca74
BIG
677.TE
678.TS
679l l l.
ebf3a7d5
MK
680SNDCTL_SEQ_TESTMIDI const int *
681SNDCTL_SEQ_RESETSAMPLES const int *
682SNDCTL_SEQ_NRSYNTHS int *
683SNDCTL_SEQ_NRMIDIS int *
684SNDCTL_MIDI_INFO struct midi_info * // I-O
685SNDCTL_SEQ_THRESHOLD const int *
686SNDCTL_SYNTH_MEMAVL int * // I-O
687SNDCTL_FM_4OP_ENABLE const int *
688SNDCTL_PMGR_ACCESS struct patmgr_info * // I-O
689SNDCTL_SEQ_PANIC void
e53eca74
BIG
690.TE
691.TS
ebf3a7d5
MK
692l l.
693SNDCTL_SEQ_OUTOFBAND const struct seq_event_rec *
e53eca74
BIG
694.TE
695.TS
696l l l.
ebf3a7d5
MK
697SNDCTL_TMR_TIMEBASE int * // I-O
698SNDCTL_TMR_START void
699SNDCTL_TMR_STOP void
700SNDCTL_TMR_CONTINUE void
701SNDCTL_TMR_TEMPO int * // I-O
702SNDCTL_TMR_SOURCE int * // I-O
703SNDCTL_TMR_METRONOME const int *
704SNDCTL_TMR_SELECT int * // I-O
705SNDCTL_PMGR_IFACE struct patmgr_info * // I-O
706SNDCTL_MIDI_PRETIME int * // I-O
707SNDCTL_MIDI_MPUMODE const int *
e53eca74
BIG
708.TE
709.TS
ebf3a7d5
MK
710l l l.
711SNDCTL_MIDI_MPUCMD struct mpu_command_rec * // I-O
e53eca74
BIG
712.TE
713.TS
ebf3a7d5
MK
714l l l.
715SNDCTL_DSP_RESET void
716SNDCTL_DSP_SYNC void
717SNDCTL_DSP_SPEED int * // I-O
718SNDCTL_DSP_STEREO int * // I-O
719SNDCTL_DSP_GETBLKSIZE int * // I-O
720SOUND_PCM_WRITE_CHANNELS int * // I-O
721SOUND_PCM_WRITE_FILTER int * // I-O
722SNDCTL_DSP_POST void
723SNDCTL_DSP_SUBDIVIDE int * // I-O
724SNDCTL_DSP_SETFRAGMENT int * // I-O
725SNDCTL_DSP_GETFMTS int *
726SNDCTL_DSP_SETFMT int * // I-O
e53eca74
BIG
727.TE
728.TS
ebf3a7d5
MK
729l l.
730SNDCTL_DSP_GETOSPACE struct audio_buf_info *
731SNDCTL_DSP_GETISPACE struct audio_buf_info *
732SNDCTL_DSP_NONBLOCK void
733SOUND_PCM_READ_RATE int *
734SOUND_PCM_READ_CHANNELS int *
735SOUND_PCM_READ_BITS int *
736SOUND_PCM_READ_FILTER int *
737SNDCTL_COPR_RESET void
738SNDCTL_COPR_LOAD const struct copr_buffer *
e53eca74
BIG
739.TE
740.TS
741l l l.
ebf3a7d5
MK
742SNDCTL_COPR_RDATA struct copr_debug_buf * // I-O
743SNDCTL_COPR_RCODE struct copr_debug_buf * // I-O
e53eca74
BIG
744.TE
745.TS
ebf3a7d5
MK
746l l.
747SNDCTL_COPR_WDATA const struct copr_debug_buf *
748SNDCTL_COPR_WCODE const struct copr_debug_buf *
e53eca74
BIG
749.TE
750.TS
751l l l.
ebf3a7d5
MK
752SNDCTL_COPR_RUN struct copr_debug_buf * // I-O
753SNDCTL_COPR_HALT struct copr_debug_buf * // I-O
e53eca74
BIG
754.TE
755.TS
ebf3a7d5
MK
756l l.
757SNDCTL_COPR_SENDMSG const struct copr_msg *
758SNDCTL_COPR_RCVMSG struct copr_msg *
759SOUND_MIXER_READ_VOLUME int *
760SOUND_MIXER_READ_BASS int *
761SOUND_MIXER_READ_TREBLE int *
762SOUND_MIXER_READ_SYNTH int *
763SOUND_MIXER_READ_PCM int *
764SOUND_MIXER_READ_SPEAKER int *
765SOUND_MIXER_READ_LINE int *
766SOUND_MIXER_READ_MIC int *
767SOUND_MIXER_READ_CD int *
768SOUND_MIXER_READ_IMIX int *
769SOUND_MIXER_READ_ALTPCM int *
770SOUND_MIXER_READ_RECLEV int *
771SOUND_MIXER_READ_IGAIN int *
772SOUND_MIXER_READ_OGAIN int *
773SOUND_MIXER_READ_LINE1 int *
774SOUND_MIXER_READ_LINE2 int *
775SOUND_MIXER_READ_LINE3 int *
776SOUND_MIXER_READ_MUTE int *
777SOUND_MIXER_READ_ENHANCE int *
778SOUND_MIXER_READ_LOUD int *
779SOUND_MIXER_READ_RECSRC int *
780SOUND_MIXER_READ_DEVMASK int *
781SOUND_MIXER_READ_RECMASK int *
782SOUND_MIXER_READ_STEREODEVS int *
783SOUND_MIXER_READ_CAPS int *
e53eca74
BIG
784.TE
785.TS
786l l l.
ebf3a7d5
MK
787SOUND_MIXER_WRITE_VOLUME int * // I-O
788SOUND_MIXER_WRITE_BASS int * // I-O
789SOUND_MIXER_WRITE_TREBLE int * // I-O
790SOUND_MIXER_WRITE_SYNTH int * // I-O
791SOUND_MIXER_WRITE_PCM int * // I-O
792SOUND_MIXER_WRITE_SPEAKER int * // I-O
793SOUND_MIXER_WRITE_LINE int * // I-O
794SOUND_MIXER_WRITE_MIC int * // I-O
795SOUND_MIXER_WRITE_CD int * // I-O
796SOUND_MIXER_WRITE_IMIX int * // I-O
797SOUND_MIXER_WRITE_ALTPCM int * // I-O
798SOUND_MIXER_WRITE_RECLEV int * // I-O
799SOUND_MIXER_WRITE_IGAIN int * // I-O
800SOUND_MIXER_WRITE_OGAIN int * // I-O
801SOUND_MIXER_WRITE_LINE1 int * // I-O
802SOUND_MIXER_WRITE_LINE2 int * // I-O
803SOUND_MIXER_WRITE_LINE3 int * // I-O
804SOUND_MIXER_WRITE_MUTE int * // I-O
805SOUND_MIXER_WRITE_ENHANCE int * // I-O
806SOUND_MIXER_WRITE_LOUD int * // I-O
807SOUND_MIXER_WRITE_RECSRC int * // I-O
e23e4c26 808.TE
e646a1ba 809.sp 1
9537fb3c
HS
810// <include/linux/timerfd.h> see
811.BR timerfd_create (2)
812.TS
ebf3a7d5
MK
813l l l.
814TFD_IOC_SET_TICKS uint64_t *
9537fb3c 815.TE
e646a1ba 816.sp 1
fea681da 817// <include/linux/umsdos_fs.h>
e23e4c26 818.TS
ebf3a7d5
MK
819l l l.
820UMSDOS_READDIR_DOS struct umsdos_ioctl * // I-O
821UMSDOS_UNLINK_DOS const struct umsdos_ioctl *
822UMSDOS_RMDIR_DOS const struct umsdos_ioctl *
823UMSDOS_STAT_DOS struct umsdos_ioctl * // I-O
824UMSDOS_CREAT_EMD const struct umsdos_ioctl *
825UMSDOS_UNLINK_EMD const struct umsdos_ioctl *
826UMSDOS_READDIR_EMD struct umsdos_ioctl * // I-O
827UMSDOS_GETVERSION struct umsdos_ioctl *
828UMSDOS_INIT_EMD void
829UMSDOS_DOS_SETUP const struct umsdos_ioctl *
830UMSDOS_RENAME_DOS const struct umsdos_ioctl *
e23e4c26 831.TE
e646a1ba 832.sp 1
fea681da 833// <include/linux/vt.h>
e23e4c26 834.TS
ebf3a7d5
MK
835l l.
836VT_OPENQRY int *
837VT_GETMODE struct vt_mode *
838VT_SETMODE const struct vt_mode *
839VT_GETSTATE struct vt_stat *
840VT_SENDSIG void
841VT_RELDISP int
842VT_ACTIVATE int
843VT_WAITACTIVE int
844VT_DISALLOCATE int
845VT_RESIZE const struct vt_sizes *
846VT_RESIZEX const struct vt_consize *
e23e4c26 847.TE
e646a1ba 848.sp 1
fea681da 849// More arguments.
fea681da 850Some ioctl's take a pointer to a structure which contains additional
20523df7
MK
851pointers.
852These are documented here in alphabetical order.
e646a1ba 853.PP
e23e4c26
MK
854.B CDROMREADAUDIO
855takes an input pointer
5049da5b 856.IR "const struct cdrom_read_audio\ *" .
e23e4c26
MK
857The
858.I buf
859field points to an output buffer of length
5049da5b 860.IR "nframes\ * CD_FRAMESIZE_RAW" .
e646a1ba 861.PP
e23e4c26
MK
862.BR CDROMREADCOOKED ,
863.BR CDROMREADMODE1 ,
864.BR CDROMREADMODE2 ,
865and
866.B CDROMREADRAW
867take an input pointer
5049da5b 868.IR "const struct cdrom_msf\ *" .
e23e4c26
MK
869They use the same pointer as an output pointer to
870.IR "char []" .
c13182ef 871The length varies by request.
e23e4c26
MK
872For
873.BR CDROMREADMODE1 ,
84c517a4
MK
874most drivers use CD_FRAMESIZE, but the Optics Storage
875driver uses OPT_BLOCKSIZE instead (both have the numerical value
fea681da 8762048).
408731d4 877.PP
88933758 878.nf
e23e4c26
MK
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]
88933758 883.fi
408731d4 884.PP
e23e4c26
MK
885.BR EQL_ENSLAVE ,
886.BR EQL_EMANCIPATE ,
887.BR EQL_GETSLAVECFG ,
888.BR EQL_SETSLAVECFG ,
889.BR EQL_GETMASTERCFG ,
890and
891.B EQL_SETMASTERCFG
892take a
5049da5b 893.IR "struct ifreq\ *" .
e23e4c26
MK
894The
895.I ifr_data
896field is a pointer to another structure as follows:
408731d4 897.PP
88933758 898.nf
e23e4c26
MK
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 *
88933758 905.fi
408731d4 906.PP
e23e4c26
MK
907.B FDRAWCMD
908takes a
5049da5b 909.IR "struct floppy raw_cmd\ *" .
e23e4c26
MK
910If
911.I flags & FD_RAW_WRITE
c7094399 912is nonzero, then
e23e4c26
MK
913.I data
914points to an input buffer of length
915.IR length .
916If
917.I flags & FD_RAW_READ
c7094399 918is nonzero, then
e23e4c26
MK
919.I data
920points to an output buffer of length
921.IR length .
e646a1ba 922.PP
e23e4c26
MK
923.B GIO_FONTX
924and
925.B PIO_FONTX
926take a
5049da5b 927.I struct console_font_desc\ *
e23e4c26 928or a
5049da5b 929.IR "const struct console_font_desc\ *" ,
e23e4c26
MK
930respectively.
931.I chardata
932points to a buffer of
933.IR "char [charcount]" .
934This is an output buffer for
935.B GIO_FONTX
936and an input buffer for
937.BR PIO_FONTX .
e646a1ba 938.PP
e23e4c26
MK
939.B GIO_UNIMAP
940and
941.B PIO_UNIMAP
942take a
5049da5b 943.I "struct unimapdesc\ *"
e23e4c26 944or a
5049da5b 945.IR "const struct unimapdesc\ *" ,
e23e4c26
MK
946respectively.
947.I entries
948points to a buffer of
949.IR "struct unipair [entry_ct]" .
950This is an output buffer for
951.B GIO_UNIMAP
952and an input buffer for
953.BR PIO_UNIMAP .
e646a1ba 954.PP
fea681da 955KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to
c13182ef
MK
956I/O ports.
957They are essentially alternate interfaces to 'ioperm'.
e646a1ba 958.PP
e23e4c26
MK
959.B KDMAPDISP
960and
961.B KDUNMAPDISP
962enable or disable memory mappings or I/O port access.
c13182ef 963They are not implemented in the kernel.
e646a1ba 964.PP
e23e4c26
MK
965.B SCSI_IOCTL_PROBE_HOST
966takes an input pointer
5049da5b 967.IR "const int\ *" ,
e23e4c26
MK
968which is a length.
969It uses the same pointer as an output pointer to a
970.I char []
fea681da 971buffer of this length.
e646a1ba 972.PP
e23e4c26
MK
973.B SIOCADDRT
974and
975.B SIOCDELRT
976take an input pointer whose type depends on
fea681da 977the protocol:
408731d4 978.PP
88933758 979.nf
e23e4c26
MK
980 Most protocols const struct rtentry *
981 AX.25 const struct ax25_route *
982 NET/ROM const struct nr_route_struct *
24e9c95d 983 INET6 const struct in6_rtmsg *
88933758 984.fi
408731d4 985.PP
e23e4c26
MK
986.B SIOCGIFCONF
987takes a
5049da5b 988.IR "struct ifconf\ *" .
e23e4c26
MK
989The
990.I ifc_buf
991field points to a buffer of length
992.I ifc_len
993bytes, into which the kernel writes a list of type
994.IR "struct ifreq []" .
e646a1ba 995.PP
e23e4c26
MK
996.B SIOCSIFHWADDR
997takes an input pointer whose type depends on the protocol:
408731d4 998.PP
88933758 999.nf
e23e4c26
MK
1000 Most protocols const struct ifreq *
1001 AX.25 const char [AX25_ADDR_LEN]
88933758 1002.fi
408731d4 1003.PP
e23e4c26
MK
1004.B TIOCLINUX
1005takes a
5049da5b 1006.IR "const char\ *" .
c13182ef 1007It uses this to distinguish several
310672d6 1008independent subcases.
e23e4c26
MK
1009In the table below,
1010.I N + foo
1011means
1012.I foo
1013after an N-byte pad.
1014.I struct selection
1015is implicitly defined in
1016.IR drivers/char/selection.c
408731d4 1017.PP
88933758 1018.nf
e23e4c26
MK
1019 TIOCLINUX-2 1 + const struct selection *
1020 TIOCLINUX-3 void
1021 TIOCLINUX-4 void
1022 TIOCLINUX-5 4 + const struct { long [8]; } *
1023 TIOCLINUX-6 char *
1024 TIOCLINUX-7 char *
1025 TIOCLINUX-10 1 + const char *
88933758 1026.fi
408731d4 1027.PP
fea681da 1028// Duplicate ioctls
e646a1ba 1029.PP
e23e4c26
MK
1030This list does not include ioctls in the range
1031.B SIOCDEVPRIVATE
1032and
1033.BR SIOCPROTOPRIVATE .
1034.TS
1035l l l.
ebf3a7d5
MK
1036FDSETPRM FIBMAP
1037FDDEFPRM FIGETBSZ
1038SCSI_IOCTL_GET_IDLUN
1039SNDCTL_TMR_START TCSETS
1040SNDCTL_TMR_STOP TCSETSW
1041SNDCTL_TMR_CONTINUE TCSETSF
e23e4c26 1042.TE
7b5ab594 1043.SH SEE ALSO
60dd1421 1044.BR ioctl (2),
a3b9b5da
HS
1045.BR ioctl_fat (2),
1046.BR netdevice (7)