]>
Commit | Line | Data |
---|---|---|
fea681da MK |
1 | .\" Ioctl List 1.3.27 |
2 | .\" Sun 17 Sep 1995 | |
3 | .\" Michael Elizabeth Chastain | |
4 | .\" <mec@duracef.shout.net> | |
c13182ef | 5 | .\" |
fea681da | 6 | .\" // Copyright |
c13182ef | 7 | .\" |
fea681da MK |
8 | .\" Ioctl List 1.3.27 is copyright 1995 by Michael Elizabeth Chastain. |
9 | .\" It is licensed under the Gnu Public License, Version 2. | |
c13182ef MK |
10 | .\" |
11 | .\" | |
12 | .\" | |
fea681da | 13 | .\" // Change Log |
c13182ef | 14 | .\" |
fea681da MK |
15 | .\" 1.3.27 421 ioctls. |
16 | .\" Type information for non-pointer args. | |
17 | .\" SIOCDEVPRIVATE, SIOCPROTOPRIVATE ioctls. | |
18 | .\" Descriptions of extended arguments. | |
c13182ef | 19 | .\" |
fea681da MK |
20 | .\" 1.2.9 365 ioctls. |
21 | .\" First public version. | |
c13182ef MK |
22 | .\" |
23 | .\" | |
d9343c5c | 24 | .TH IOCTL_LIST 2 2003-03-30 "Linux" "Linux Programmer's Manual" |
fea681da MK |
25 | .SH NAME |
26 | ioctl_list \- list of ioctl calls in Linux/i386 kernel | |
fea681da | 27 | .SH DESCRIPTION |
fea681da | 28 | This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel |
c13182ef | 29 | 1.3.27. |
4bd8c614 MK |
30 | It contains 421 ioctls from |
31 | .IR /usr/include/{asm,linux}/*.h . | |
fea681da MK |
32 | For each ioctl, its numerical value, its name, and its argument |
33 | type are given. | |
34 | .PP | |
35 | An argument type of 'const struct foo *' means the argument is input | |
36 | to the kernel. 'struct foo *' means the kernel outputs the argument. | |
37 | If the kernel uses the argument for both input and output, this is | |
38 | marked with // I-O. | |
39 | .PP | |
40 | Some ioctls take more arguments or return more values than a single | |
c13182ef MK |
41 | structure. |
42 | These are marked // MORE and documented further in a | |
fea681da MK |
43 | separate section. |
44 | .PP | |
45 | This list is very incomplete. | |
46 | Please e-mail changes and comments to <mec@duracef.shout.net>. | |
3fc15e60 | 47 | .SS "ioctl structure" |
fea681da MK |
48 | .\" added two sections - aeb |
49 | Ioctl command values are 32-bit constants. | |
50 | In principle these constants are completely arbitrary, but people have | |
51 | tried to build some structure into them. | |
52 | .LP | |
53 | The old Linux situation was that of mostly 16-bit constants, where the | |
54 | last byte is a serial number, and the preceding byte(s) give a type | |
c13182ef MK |
55 | indicating the driver. |
56 | Sometimes the major number was used: 0x03 | |
57 | for the HDIO_* ioctls, 0x06 for the LP* ioctls. | |
58 | And sometimes | |
59 | one or more ASCII letters were used. | |
60 | For example, TCGETS has value | |
fea681da MK |
61 | 0x00005401, with 0x54 = 'T' indicating the terminal driver, and |
62 | CYGETTIMEOUT has value 0x00435906, with 0x43 0x59 = 'C' 'Y' | |
63 | indicating the cyclades driver. | |
64 | .LP | |
65 | Later (0.98p5) some more information was built into the number. | |
66 | One has 2 direction bits | |
67 | (00: none, 01: write, 10: read, 11: read/write) | |
68 | followed by 14 size bits (giving the size of the argument), | |
69 | followed by an 8-bit type (collecting the ioctls in groups | |
70 | for a common purpose or a common driver), and an 8-bit | |
71 | serial number. | |
72 | .LP | |
c84371c6 | 73 | The macros describing this structure live in \fI<asm/ioctl.h>\fP |
fea681da MK |
74 | and are _IO(type,nr) and {_IOR,_IOW,_IOWR}(type,nr,size). |
75 | They use sizeof(size) so that size is a | |
e9496f74 | 76 | misnomer here: this third parameter is a data type. |
fea681da | 77 | .LP |
e9496f74 MK |
78 | Note that the size bits are very unreliable: in lots of cases |
79 | they are wrong, either because of buggy macros using | |
fea681da MK |
80 | sizeof(sizeof(struct)), or because of legacy values. |
81 | .LP | |
82 | Thus, it seems that the new structure only gave disadvantages: | |
83 | it does not help in checking, but it causes varying values | |
84 | for the various architectures. | |
fea681da MK |
85 | .SH "RETURN VALUE" |
86 | Decent ioctls return 0 on success and \-1 on error, while | |
c13182ef MK |
87 | any output value is stored via the argument. |
88 | However, | |
fea681da MK |
89 | quite a few ioctls in fact return an output value. |
90 | This is not yet indicated below. | |
fea681da MK |
91 | .nf |
92 | ||
93 | // Main table. | |
94 | ||
95 | // <include/asm-i386/socket.h> | |
96 | 0x00008901 FIOSETOWN const int * | |
97 | 0x00008902 SIOCSPGRP const int * | |
98 | 0x00008903 FIOGETOWN int * | |
99 | 0x00008904 SIOCGPGRP int * | |
100 | 0x00008905 SIOCATMARK int * | |
101 | 0x00008906 SIOCGSTAMP timeval * | |
102 | ||
103 | // <include/asm-i386/termios.h> | |
104 | 0x00005401 TCGETS struct termios * | |
105 | 0x00005402 TCSETS const struct termios * | |
106 | 0x00005403 TCSETSW const struct termios * | |
107 | 0x00005404 TCSETSF const struct termios * | |
108 | 0x00005405 TCGETA struct termio * | |
109 | 0x00005406 TCSETA const struct termio * | |
110 | 0x00005407 TCSETAW const struct termio * | |
111 | 0x00005408 TCSETAF const struct termio * | |
112 | 0x00005409 TCSBRK int | |
113 | 0x0000540A TCXONC int | |
114 | 0x0000540B TCFLSH int | |
115 | 0x0000540C TIOCEXCL void | |
116 | 0x0000540D TIOCNXCL void | |
117 | 0x0000540E TIOCSCTTY int | |
118 | 0x0000540F TIOCGPGRP pid_t * | |
119 | 0x00005410 TIOCSPGRP const pid_t * | |
120 | 0x00005411 TIOCOUTQ int * | |
121 | 0x00005412 TIOCSTI const char * | |
122 | 0x00005413 TIOCGWINSZ struct winsize * | |
123 | 0x00005414 TIOCSWINSZ const struct winsize * | |
124 | 0x00005415 TIOCMGET int * | |
125 | 0x00005416 TIOCMBIS const int * | |
126 | 0x00005417 TIOCMBIC const int * | |
127 | 0x00005418 TIOCMSET const int * | |
128 | 0x00005419 TIOCGSOFTCAR int * | |
129 | 0x0000541A TIOCSSOFTCAR const int * | |
130 | 0x0000541B FIONREAD int * | |
131 | 0x0000541B TIOCINQ int * | |
132 | 0x0000541C TIOCLINUX const char * // MORE | |
133 | 0x0000541D TIOCCONS void | |
134 | 0x0000541E TIOCGSERIAL struct serial_struct * | |
135 | 0x0000541F TIOCSSERIAL const struct serial_struct * | |
136 | 0x00005420 TIOCPKT const int * | |
137 | 0x00005421 FIONBIO const int * | |
138 | 0x00005422 TIOCNOTTY void | |
139 | 0x00005423 TIOCSETD const int * | |
140 | 0x00005424 TIOCGETD int * | |
141 | 0x00005425 TCSBRKP int | |
142 | 0x00005426 TIOCTTYGSTRUCT struct tty_struct * | |
143 | 0x00005450 FIONCLEX void | |
144 | 0x00005451 FIOCLEX void | |
145 | 0x00005452 FIOASYNC const int * | |
146 | 0x00005453 TIOCSERCONFIG void | |
147 | 0x00005454 TIOCSERGWILD int * | |
148 | 0x00005455 TIOCSERSWILD const int * | |
149 | 0x00005456 TIOCGLCKTRMIOS struct termios * | |
150 | 0x00005457 TIOCSLCKTRMIOS const struct termios * | |
151 | 0x00005458 TIOCSERGSTRUCT struct async_struct * | |
152 | 0x00005459 TIOCSERGETLSR int * | |
153 | 0x0000545A TIOCSERGETMULTI struct serial_multiport_struct * | |
154 | 0x0000545B TIOCSERSETMULTI const struct serial_multiport_struct * | |
155 | ||
156 | // <include/linux/ax25.h> | |
157 | 0x000089E0 SIOCAX25GETUID const struct sockaddr_ax25 * | |
158 | 0x000089E1 SIOCAX25ADDUID const struct sockaddr_ax25 * | |
159 | 0x000089E2 SIOCAX25DELUID const struct sockaddr_ax25 * | |
160 | 0x000089E3 SIOCAX25NOUID const int * | |
161 | 0x000089E4 SIOCAX25DIGCTL const int * | |
162 | 0x000089E5 SIOCAX25GETPARMS struct ax25_parms_struct * // I-O | |
ecbd70cd | 163 | 0x000089E6 SIOCAX25SETPARMS const struct ax25_parms_struct * |
fea681da MK |
164 | |
165 | // <include/linux/cdk.h> | |
166 | 0x00007314 STL_BINTR void | |
167 | 0x00007315 STL_BSTART void | |
168 | 0x00007316 STL_BSTOP void | |
169 | 0x00007317 STL_BRESET void | |
170 | ||
171 | // <include/linux/cdrom.h> | |
172 | 0x00005301 CDROMPAUSE void | |
173 | 0x00005302 CDROMRESUME void | |
174 | 0x00005303 CDROMPLAYMSF const struct cdrom_msf * | |
175 | 0x00005304 CDROMPLAYTRKIND const struct cdrom_ti * | |
176 | 0x00005305 CDROMREADTOCHDR struct cdrom_tochdr * | |
177 | 0x00005306 CDROMREADTOCENTRY struct cdrom_tocentry * // I-O | |
178 | 0x00005307 CDROMSTOP void | |
179 | 0x00005308 CDROMSTART void | |
180 | 0x00005309 CDROMEJECT void | |
181 | 0x0000530A CDROMVOLCTRL const struct cdrom_volctrl * | |
182 | 0x0000530B CDROMSUBCHNL struct cdrom_subchnl * // I-O | |
183 | 0x0000530C CDROMREADMODE2 const struct cdrom_msf * // MORE | |
184 | 0x0000530D CDROMREADMODE1 const struct cdrom_msf * // MORE | |
185 | 0x0000530E CDROMREADAUDIO const struct cdrom_read_audio * // MORE | |
186 | 0x0000530F CDROMEJECT_SW int | |
187 | 0x00005310 CDROMMULTISESSION struct cdrom_multisession * // I-O | |
188 | 0x00005311 CDROM_GET_UPC struct { char [8]; } * | |
189 | 0x00005312 CDROMRESET void | |
190 | 0x00005313 CDROMVOLREAD struct cdrom_volctrl * | |
191 | 0x00005314 CDROMREADRAW const struct cdrom_msf * // MORE | |
192 | 0x00005315 CDROMREADCOOKED const struct cdrom_msf * // MORE | |
193 | 0x00005316 CDROMSEEK const struct cdrom_msf * | |
194 | ||
195 | // <include/linux/cm206.h> | |
196 | 0x00002000 CM206CTL_GET_STAT int | |
197 | 0x00002001 CM206CTL_GET_LAST_STAT int | |
198 | ||
199 | // <include/linux/cyclades.h> | |
200 | 0x00435901 CYGETMON struct cyclades_monitor * | |
201 | 0x00435902 CYGETTHRESH int * | |
202 | 0x00435903 CYSETTHRESH int | |
203 | 0x00435904 CYGETDEFTHRESH int * | |
204 | 0x00435905 CYSETDEFTHRESH int | |
205 | 0x00435906 CYGETTIMEOUT int * | |
206 | 0x00435907 CYSETTIMEOUT int | |
207 | 0x00435908 CYGETDEFTIMEOUT int * | |
208 | 0x00435909 CYSETDEFTIMEOUT int | |
209 | ||
210 | // <include/linux/ext2_fs.h> | |
211 | 0x80046601 EXT2_IOC_GETFLAGS int * | |
212 | 0x40046602 EXT2_IOC_SETFLAGS const int * | |
213 | 0x80047601 EXT2_IOC_GETVERSION int * | |
214 | 0x40047602 EXT2_IOC_SETVERSION const int * | |
215 | ||
216 | // <include/linux/fd.h> | |
217 | 0x00000000 FDCLRPRM void | |
218 | 0x00000001 FDSETPRM const struct floppy_struct * | |
219 | 0x00000002 FDDEFPRM const struct floppy_struct * | |
220 | 0x00000003 FDGETPRM struct floppy_struct * | |
221 | 0x00000004 FDMSGON void | |
222 | 0x00000005 FDMSGOFF void | |
223 | 0x00000006 FDFMTBEG void | |
224 | 0x00000007 FDFMTTRK const struct format_descr * | |
225 | 0x00000008 FDFMTEND void | |
226 | 0x0000000A FDSETEMSGTRESH int | |
227 | 0x0000000B FDFLUSH void | |
228 | 0x0000000C FDSETMAXERRS const struct floppy_max_errors * | |
229 | 0x0000000E FDGETMAXERRS struct floppy_max_errors * | |
230 | 0x00000010 FDGETDRVTYP struct { char [16]; } * | |
231 | 0x00000014 FDSETDRVPRM const struct floppy_drive_params * | |
232 | 0x00000015 FDGETDRVPRM struct floppy_drive_params * | |
233 | 0x00000016 FDGETDRVSTAT struct floppy_drive_struct * | |
234 | 0x00000017 FDPOLLDRVSTAT struct floppy_drive_struct * | |
235 | 0x00000018 FDRESET int | |
236 | 0x00000019 FDGETFDCSTAT struct floppy_fdc_state * | |
237 | 0x0000001B FDWERRORCLR void | |
238 | 0x0000001C FDWERRORGET struct floppy_write_errors * | |
239 | 0x0000001E FDRAWCMD struct floppy_raw_cmd * // MORE // I-O | |
240 | 0x00000028 FDTWADDLE void | |
241 | ||
242 | // <include/linux/fs.h> | |
243 | 0x0000125D BLKROSET const int * | |
244 | 0x0000125E BLKROGET int * | |
245 | 0x0000125F BLKRRPART void | |
cf4224d4 | 246 | 0x00001260 BLKGETSIZE unsigned long * |
fea681da MK |
247 | 0x00001261 BLKFLSBUF void |
248 | 0x00001262 BLKRASET int | |
249 | 0x00001263 BLKRAGET int * | |
250 | 0x00000001 FIBMAP int * // I-O | |
251 | 0x00000002 FIGETBSZ int * | |
252 | ||
253 | // <include/linux/hdreg.h> | |
254 | 0x00000301 HDIO_GETGEO struct hd_geometry * | |
255 | 0x00000302 HDIO_GET_UNMASKINTR int * | |
256 | 0x00000304 HDIO_GET_MULTCOUNT int * | |
257 | 0x00000307 HDIO_GET_IDENTITY struct hd_driveid * | |
258 | 0x00000308 HDIO_GET_KEEPSETTINGS int * | |
259 | 0x00000309 HDIO_GET_CHIPSET int * | |
260 | 0x0000030A HDIO_GET_NOWERR int * | |
261 | 0x0000030B HDIO_GET_DMA int * | |
262 | 0x0000031F HDIO_DRIVE_CMD int * // I-O | |
263 | 0x00000321 HDIO_SET_MULTCOUNT int | |
264 | 0x00000322 HDIO_SET_UNMASKINTR int | |
265 | 0x00000323 HDIO_SET_KEEPSETTINGS int | |
266 | 0x00000324 HDIO_SET_CHIPSET int | |
267 | 0x00000325 HDIO_SET_NOWERR int | |
268 | 0x00000326 HDIO_SET_DMA int | |
269 | ||
270 | // <include/linux/if_eql.h> | |
271 | 0x000089F0 EQL_ENSLAVE struct ifreq * // MORE // I-O | |
272 | 0x000089F1 EQL_EMANCIPATE struct ifreq * // MORE // I-O | |
273 | 0x000089F2 EQL_GETSLAVECFG struct ifreq * // MORE // I-O | |
274 | 0x000089F3 EQL_SETSLAVECFG struct ifreq * // MORE // I-O | |
275 | 0x000089F4 EQL_GETMASTRCFG struct ifreq * // MORE // I-O | |
276 | 0x000089F5 EQL_SETMASTRCFG struct ifreq * // MORE // I-O | |
277 | ||
278 | // <include/linux/if_plip.h> | |
279 | 0x000089F0 SIOCDEVPLIP struct ifreq * // I-O | |
280 | ||
281 | // <include/linux/if_ppp.h> | |
282 | 0x00005490 PPPIOCGFLAGS int * | |
283 | 0x00005491 PPPIOCSFLAGS const int * | |
284 | 0x00005492 PPPIOCGASYNCMAP int * | |
285 | 0x00005493 PPPIOCSASYNCMAP const int * | |
286 | 0x00005494 PPPIOCGUNIT int * | |
287 | 0x00005495 PPPIOCSINPSIG const int * | |
288 | 0x00005497 PPPIOCSDEBUG const int * | |
289 | 0x00005498 PPPIOCGDEBUG int * | |
290 | 0x00005499 PPPIOCGSTAT struct ppp_stats * | |
291 | 0x0000549A PPPIOCGTIME struct ppp_ddinfo * | |
292 | 0x0000549B PPPIOCGXASYNCMAP struct { int [8]; } * | |
293 | 0x0000549C PPPIOCSXASYNCMAP const struct { int [8]; } * | |
294 | 0x0000549D PPPIOCSMRU const int * | |
295 | 0x0000549E PPPIOCRASYNCMAP const int * | |
296 | 0x0000549F PPPIOCSMAXCID const int * | |
297 | ||
298 | // <include/linux/ipx.h> | |
299 | 0x000089E0 SIOCAIPXITFCRT const char * | |
300 | 0x000089E1 SIOCAIPXPRISLT const char * | |
301 | 0x000089E2 SIOCIPXCFGDATA struct ipx_config_data * | |
302 | ||
303 | // <include/linux/kd.h> | |
304 | 0x00004B60 GIO_FONT struct { char [8192]; } * | |
305 | 0x00004B61 PIO_FONT const struct { char [8192]; } * | |
306 | 0x00004B6B GIO_FONTX struct console_font_desc * // MORE I-O | |
307 | 0x00004B6C PIO_FONTX const struct console_font_desc * //MORE | |
308 | 0x00004B70 GIO_CMAP struct { char [48]; } * | |
309 | 0x00004B71 PIO_CMAP const struct { char [48]; } | |
310 | 0x00004B2F KIOCSOUND int | |
311 | 0x00004B30 KDMKTONE int | |
312 | 0x00004B31 KDGETLED char * | |
313 | 0x00004B32 KDSETLED int | |
314 | 0x00004B33 KDGKBTYPE char * | |
315 | 0x00004B34 KDADDIO int // MORE | |
316 | 0x00004B35 KDDELIO int // MORE | |
317 | 0x00004B36 KDENABIO void // MORE | |
318 | 0x00004B37 KDDISABIO void // MORE | |
319 | 0x00004B3A KDSETMODE int | |
320 | 0x00004B3B KDGETMODE int * | |
321 | 0x00004B3C KDMAPDISP void // MORE | |
322 | 0x00004B3D KDUNMAPDISP void // MORE | |
323 | 0x00004B40 GIO_SCRNMAP struct { char [E_TABSZ]; } * | |
324 | 0x00004B41 PIO_SCRNMAP const struct { char [E_TABSZ]; } * | |
325 | 0x00004B69 GIO_UNISCRNMAP struct { short [E_TABSZ]; } * | |
326 | 0x00004B6A PIO_UNISCRNMAP const struct { short [E_TABSZ]; } * | |
327 | 0x00004B66 GIO_UNIMAP struct unimapdesc * // MORE // I-O | |
328 | 0x00004B67 PIO_UNIMAP const struct unimapdesc * // MORE | |
329 | 0x00004B68 PIO_UNIMAPCLR const struct unimapinit * | |
330 | 0x00004B44 KDGKBMODE int * | |
331 | 0x00004B45 KDSKBMODE int | |
332 | 0x00004B62 KDGKBMETA int * | |
333 | 0x00004B63 KDSKBMETA int | |
334 | 0x00004B64 KDGKBLED int * | |
335 | 0x00004B65 KDSKBLED int | |
336 | 0x00004B46 KDGKBENT struct kbentry * // I-O | |
337 | 0x00004B47 KDSKBENT const struct kbentry * | |
338 | 0x00004B48 KDGKBSENT struct kbsentry * // I-O | |
339 | 0x00004B49 KDSKBSENT const struct kbsentry * | |
340 | 0x00004B4A KDGKBDIACR struct kbdiacrs * | |
341 | 0x00004B4B KDSKBDIACR const struct kbdiacrs * | |
342 | 0x00004B4C KDGETKEYCODE struct kbkeycode * // I-O | |
343 | 0x00004B4D KDSETKEYCODE const struct kbkeycode * | |
344 | 0x00004B4E KDSIGACCEPT int | |
345 | ||
346 | // <include/linux/lp.h> | |
347 | 0x00000601 LPCHAR int | |
348 | 0x00000602 LPTIME int | |
349 | 0x00000604 LPABORT int | |
350 | 0x00000605 LPSETIRQ int | |
351 | 0x00000606 LPGETIRQ int * | |
352 | 0x00000608 LPWAIT int | |
353 | 0x00000609 LPCAREFUL int | |
354 | 0x0000060A LPABORTOPEN int | |
355 | 0x0000060B LPGETSTATUS int * | |
356 | 0x0000060C LPRESET void | |
357 | 0x0000060D LPGETSTATS struct lp_stats * | |
358 | ||
359 | // <include/linux/mroute.h> | |
360 | 0x000089E0 SIOCGETVIFCNT struct sioc_vif_req * // I-O | |
361 | 0x000089E1 SIOCGETSGCNT struct sioc_sg_req * // I-O | |
362 | ||
363 | // <include/linux/mtio.h> | |
364 | 0x40086D01 MTIOCTOP const struct mtop * | |
365 | 0x801C6D02 MTIOCGET struct mtget * | |
366 | 0x80046D03 MTIOCPOS struct mtpos * | |
367 | 0x80206D04 MTIOCGETCONFIG struct mtconfiginfo * | |
368 | 0x40206D05 MTIOCSETCONFIG const struct mtconfiginfo * | |
369 | ||
370 | // <include/linux/netrom.h> | |
371 | 0x000089E0 SIOCNRGETPARMS struct nr_parms_struct * // I-O | |
372 | 0x000089E1 SIOCNRSETPARMS const struct nr_parms_struct * | |
373 | 0x000089E2 SIOCNRDECOBS void | |
374 | 0x000089E3 SIOCNRRTCTL const int * | |
375 | ||
376 | // <include/linux/sbpcd.h> | |
377 | 0x00009000 DDIOCSDBG const int * | |
378 | 0x00005382 CDROMAUDIOBUFSIZ int | |
379 | ||
380 | // <include/linux/scc.h> | |
381 | 0x00005470 TIOCSCCINI void | |
382 | 0x00005471 TIOCCHANINI const struct scc_modem * | |
383 | 0x00005472 TIOCGKISS struct ioctl_command * // I-O | |
384 | 0x00005473 TIOCSKISS const struct ioctl_command * | |
385 | 0x00005474 TIOCSCCSTAT struct scc_stat * | |
386 | ||
387 | // <include/linux/scsi.h> | |
388 | 0x00005382 SCSI_IOCTL_GET_IDLUN struct { int [2]; } * | |
389 | 0x00005383 SCSI_IOCTL_TAGGED_ENABLE void | |
390 | 0x00005384 SCSI_IOCTL_TAGGED_DISABLE void | |
391 | 0x00005385 SCSI_IOCTL_PROBE_HOST const int * // MORE | |
392 | ||
393 | // <include/linux/smb_fs.h> | |
394 | 0x80027501 SMB_IOC_GETMOUNTUID uid_t * | |
395 | ||
396 | // <include/linux/sockios.h> | |
397 | 0x0000890B SIOCADDRT const struct rtentry * // MORE | |
398 | 0x0000890C SIOCDELRT const struct rtentry * // MORE | |
399 | 0x00008910 SIOCGIFNAME char [] | |
400 | 0x00008911 SIOCSIFLINK void | |
401 | 0x00008912 SIOCGIFCONF struct ifconf * // MORE // I-O | |
402 | 0x00008913 SIOCGIFFLAGS struct ifreq * // I-O | |
403 | 0x00008914 SIOCSIFFLAGS const struct ifreq * | |
404 | 0x00008915 SIOCGIFADDR struct ifreq * // I-O | |
405 | 0x00008916 SIOCSIFADDR const struct ifreq * | |
406 | 0x00008917 SIOCGIFDSTADDR struct ifreq * // I-O | |
407 | 0x00008918 SIOCSIFDSTADDR const struct ifreq * | |
408 | 0x00008919 SIOCGIFBRDADDR struct ifreq * // I-O | |
409 | 0x0000891A SIOCSIFBRDADDR const struct ifreq * | |
410 | 0x0000891B SIOCGIFNETMASK struct ifreq * // I-O | |
411 | 0x0000891C SIOCSIFNETMASK const struct ifreq * | |
412 | 0x0000891D SIOCGIFMETRIC struct ifreq * // I-O | |
413 | 0x0000891E SIOCSIFMETRIC const struct ifreq * | |
414 | 0x0000891F SIOCGIFMEM struct ifreq * // I-O | |
415 | 0x00008920 SIOCSIFMEM const struct ifreq * | |
416 | 0x00008921 SIOCGIFMTU struct ifreq * // I-O | |
417 | 0x00008922 SIOCSIFMTU const struct ifreq * | |
418 | 0x00008923 OLD_SIOCGIFHWADDR struct ifreq * // I-O | |
419 | 0x00008924 SIOCSIFHWADDR const struct ifreq * // MORE | |
420 | 0x00008925 SIOCGIFENCAP int * | |
421 | 0x00008926 SIOCSIFENCAP const int * | |
422 | 0x00008927 SIOCGIFHWADDR struct ifreq * // I-O | |
423 | 0x00008929 SIOCGIFSLAVE void | |
424 | 0x00008930 SIOCSIFSLAVE void | |
425 | 0x00008931 SIOCADDMULTI const struct ifreq * | |
426 | 0x00008932 SIOCDELMULTI const struct ifreq * | |
427 | 0x00008940 SIOCADDRTOLD void | |
428 | 0x00008941 SIOCDELRTOLD void | |
429 | 0x00008950 SIOCDARP const struct arpreq * | |
430 | 0x00008951 SIOCGARP struct arpreq * // I-O | |
431 | 0x00008952 SIOCSARP const struct arpreq * | |
432 | 0x00008960 SIOCDRARP const struct arpreq * | |
433 | 0x00008961 SIOCGRARP struct arpreq * // I-O | |
434 | 0x00008962 SIOCSRARP const struct arpreq * | |
435 | 0x00008970 SIOCGIFMAP struct ifreq * // I-O | |
436 | 0x00008971 SIOCSIFMAP const struct ifreq * | |
437 | ||
438 | // <include/linux/soundcard.h> | |
439 | 0x00005100 SNDCTL_SEQ_RESET void | |
440 | 0x00005101 SNDCTL_SEQ_SYNC void | |
441 | 0xC08C5102 SNDCTL_SYNTH_INFO struct synth_info * // I-O | |
442 | 0xC0045103 SNDCTL_SEQ_CTRLRATE int * // I-O | |
443 | 0x80045104 SNDCTL_SEQ_GETOUTCOUNT int * | |
444 | 0x80045105 SNDCTL_SEQ_GETINCOUNT int * | |
445 | 0x40045106 SNDCTL_SEQ_PERCMODE void | |
446 | 0x40285107 SNDCTL_FM_LOAD_INSTR const struct sbi_instrument * | |
447 | 0x40045108 SNDCTL_SEQ_TESTMIDI const int * | |
448 | 0x40045109 SNDCTL_SEQ_RESETSAMPLES const int * | |
449 | 0x8004510A SNDCTL_SEQ_NRSYNTHS int * | |
450 | 0x8004510B SNDCTL_SEQ_NRMIDIS int * | |
451 | 0xC074510C SNDCTL_MIDI_INFO struct midi_info * // I-O | |
452 | 0x4004510D SNDCTL_SEQ_THRESHOLD const int * | |
453 | 0xC004510E SNDCTL_SYNTH_MEMAVL int * // I-O | |
454 | 0x4004510F SNDCTL_FM_4OP_ENABLE const int * | |
455 | 0xCFB85110 SNDCTL_PMGR_ACCESS struct patmgr_info * // I-O | |
456 | 0x00005111 SNDCTL_SEQ_PANIC void | |
457 | 0x40085112 SNDCTL_SEQ_OUTOFBAND const struct seq_event_rec * | |
458 | 0xC0045401 SNDCTL_TMR_TIMEBASE int * // I-O | |
459 | 0x00005402 SNDCTL_TMR_START void | |
460 | 0x00005403 SNDCTL_TMR_STOP void | |
461 | 0x00005404 SNDCTL_TMR_CONTINUE void | |
462 | 0xC0045405 SNDCTL_TMR_TEMPO int * // I-O | |
463 | 0xC0045406 SNDCTL_TMR_SOURCE int * // I-O | |
464 | 0x40045407 SNDCTL_TMR_METRONOME const int * | |
465 | 0x40045408 SNDCTL_TMR_SELECT int * // I-O | |
466 | 0xCFB85001 SNDCTL_PMGR_IFACE struct patmgr_info * // I-O | |
467 | 0xC0046D00 SNDCTL_MIDI_PRETIME int * // I-O | |
468 | 0xC0046D01 SNDCTL_MIDI_MPUMODE const int * | |
469 | 0xC0216D02 SNDCTL_MIDI_MPUCMD struct mpu_command_rec * // I-O | |
470 | 0x00005000 SNDCTL_DSP_RESET void | |
471 | 0x00005001 SNDCTL_DSP_SYNC void | |
472 | 0xC0045002 SNDCTL_DSP_SPEED int * // I-O | |
473 | 0xC0045003 SNDCTL_DSP_STEREO int * // I-O | |
474 | 0xC0045004 SNDCTL_DSP_GETBLKSIZE int * // I-O | |
475 | 0xC0045006 SOUND_PCM_WRITE_CHANNELS int * // I-O | |
476 | 0xC0045007 SOUND_PCM_WRITE_FILTER int * // I-O | |
477 | 0x00005008 SNDCTL_DSP_POST void | |
478 | 0xC0045009 SNDCTL_DSP_SUBDIVIDE int * // I-O | |
479 | 0xC004500A SNDCTL_DSP_SETFRAGMENT int * // I-O | |
480 | 0x8004500B SNDCTL_DSP_GETFMTS int * | |
481 | 0xC0045005 SNDCTL_DSP_SETFMT int * // I-O | |
482 | 0x800C500C SNDCTL_DSP_GETOSPACE struct audio_buf_info * | |
483 | 0x800C500D SNDCTL_DSP_GETISPACE struct audio_buf_info * | |
484 | 0x0000500E SNDCTL_DSP_NONBLOCK void | |
485 | 0x80045002 SOUND_PCM_READ_RATE int * | |
486 | 0x80045006 SOUND_PCM_READ_CHANNELS int * | |
487 | 0x80045005 SOUND_PCM_READ_BITS int * | |
488 | 0x80045007 SOUND_PCM_READ_FILTER int * | |
489 | 0x00004300 SNDCTL_COPR_RESET void | |
490 | 0xCFB04301 SNDCTL_COPR_LOAD const struct copr_buffer * | |
491 | 0xC0144302 SNDCTL_COPR_RDATA struct copr_debug_buf * // I-O | |
492 | 0xC0144303 SNDCTL_COPR_RCODE struct copr_debug_buf * // I-O | |
493 | 0x40144304 SNDCTL_COPR_WDATA const struct copr_debug_buf * | |
494 | 0x40144305 SNDCTL_COPR_WCODE const struct copr_debug_buf * | |
495 | 0xC0144306 SNDCTL_COPR_RUN struct copr_debug_buf * // I-O | |
496 | 0xC0144307 SNDCTL_COPR_HALT struct copr_debug_buf * // I-O | |
497 | 0x4FA44308 SNDCTL_COPR_SENDMSG const struct copr_msg * | |
498 | 0x8FA44309 SNDCTL_COPR_RCVMSG struct copr_msg * | |
499 | 0x80044D00 SOUND_MIXER_READ_VOLUME int * | |
500 | 0x80044D01 SOUND_MIXER_READ_BASS int * | |
501 | 0x80044D02 SOUND_MIXER_READ_TREBLE int * | |
502 | 0x80044D03 SOUND_MIXER_READ_SYNTH int * | |
503 | 0x80044D04 SOUND_MIXER_READ_PCM int * | |
504 | 0x80044D05 SOUND_MIXER_READ_SPEAKER int * | |
505 | 0x80044D06 SOUND_MIXER_READ_LINE int * | |
506 | 0x80044D07 SOUND_MIXER_READ_MIC int * | |
507 | 0x80044D08 SOUND_MIXER_READ_CD int * | |
508 | 0x80044D09 SOUND_MIXER_READ_IMIX int * | |
509 | 0x80044D0A SOUND_MIXER_READ_ALTPCM int * | |
510 | 0x80044D0B SOUND_MIXER_READ_RECLEV int * | |
511 | 0x80044D0C SOUND_MIXER_READ_IGAIN int * | |
512 | 0x80044D0D SOUND_MIXER_READ_OGAIN int * | |
513 | 0x80044D0E SOUND_MIXER_READ_LINE1 int * | |
514 | 0x80044D0F SOUND_MIXER_READ_LINE2 int * | |
515 | 0x80044D10 SOUND_MIXER_READ_LINE3 int * | |
516 | 0x80044D1C SOUND_MIXER_READ_MUTE int * | |
517 | 0x80044D1D SOUND_MIXER_READ_ENHANCE int * | |
518 | 0x80044D1E SOUND_MIXER_READ_LOUD int * | |
519 | 0x80044DFF SOUND_MIXER_READ_RECSRC int * | |
520 | 0x80044DFE SOUND_MIXER_READ_DEVMASK int * | |
521 | 0x80044DFD SOUND_MIXER_READ_RECMASK int * | |
522 | 0x80044DFB SOUND_MIXER_READ_STEREODEVS int * | |
523 | 0x80044DFC SOUND_MIXER_READ_CAPS int * | |
524 | 0xC0044D00 SOUND_MIXER_WRITE_VOLUME int * // I-O | |
525 | 0xC0044D01 SOUND_MIXER_WRITE_BASS int * // I-O | |
526 | 0xC0044D02 SOUND_MIXER_WRITE_TREBLE int * // I-O | |
527 | 0xC0044D03 SOUND_MIXER_WRITE_SYNTH int * // I-O | |
528 | 0xC0044D04 SOUND_MIXER_WRITE_PCM int * // I-O | |
529 | 0xC0044D05 SOUND_MIXER_WRITE_SPEAKER int * // I-O | |
530 | 0xC0044D06 SOUND_MIXER_WRITE_LINE int * // I-O | |
531 | 0xC0044D07 SOUND_MIXER_WRITE_MIC int * // I-O | |
532 | 0xC0044D08 SOUND_MIXER_WRITE_CD int * // I-O | |
533 | 0xC0044D09 SOUND_MIXER_WRITE_IMIX int * // I-O | |
534 | 0xC0044D0A SOUND_MIXER_WRITE_ALTPCM int * // I-O | |
535 | 0xC0044D0B SOUND_MIXER_WRITE_RECLEV int * // I-O | |
536 | 0xC0044D0C SOUND_MIXER_WRITE_IGAIN int * // I-O | |
537 | 0xC0044D0D SOUND_MIXER_WRITE_OGAIN int * // I-O | |
538 | 0xC0044D0E SOUND_MIXER_WRITE_LINE1 int * // I-O | |
539 | 0xC0044D0F SOUND_MIXER_WRITE_LINE2 int * // I-O | |
540 | 0xC0044D10 SOUND_MIXER_WRITE_LINE3 int * // I-O | |
541 | 0xC0044D1C SOUND_MIXER_WRITE_MUTE int * // I-O | |
542 | 0xC0044D1D SOUND_MIXER_WRITE_ENHANCE int * // I-O | |
543 | 0xC0044D1E SOUND_MIXER_WRITE_LOUD int * // I-O | |
544 | 0xC0044DFF SOUND_MIXER_WRITE_RECSRC int * // I-O | |
545 | ||
546 | // <include/linux/umsdos_fs.h> | |
547 | 0x000004D2 UMSDOS_READDIR_DOS struct umsdos_ioctl * // I-O | |
548 | 0x000004D3 UMSDOS_UNLINK_DOS const struct umsdos_ioctl * | |
549 | 0x000004D4 UMSDOS_RMDIR_DOS const struct umsdos_ioctl * | |
550 | 0x000004D5 UMSDOS_STAT_DOS struct umsdos_ioctl * // I-O | |
551 | 0x000004D6 UMSDOS_CREAT_EMD const struct umsdos_ioctl * | |
552 | 0x000004D7 UMSDOS_UNLINK_EMD const struct umsdos_ioctl * | |
553 | 0x000004D8 UMSDOS_READDIR_EMD struct umsdos_ioctl * // I-O | |
554 | 0x000004D9 UMSDOS_GETVERSION struct umsdos_ioctl * | |
555 | 0x000004DA UMSDOS_INIT_EMD void | |
556 | 0x000004DB UMSDOS_DOS_SETUP const struct umsdos_ioctl * | |
557 | 0x000004DC UMSDOS_RENAME_DOS const struct umsdos_ioctl * | |
558 | ||
559 | // <include/linux/vt.h> | |
560 | 0x00005600 VT_OPENQRY int * | |
561 | 0x00005601 VT_GETMODE struct vt_mode * | |
562 | 0x00005602 VT_SETMODE const struct vt_mode * | |
563 | 0x00005603 VT_GETSTATE struct vt_stat * | |
564 | 0x00005604 VT_SENDSIG void | |
565 | 0x00005605 VT_RELDISP int | |
566 | 0x00005606 VT_ACTIVATE int | |
567 | 0x00005607 VT_WAITACTIVE int | |
568 | 0x00005608 VT_DISALLOCATE int | |
569 | 0x00005609 VT_RESIZE const struct vt_sizes * | |
570 | 0x0000560A VT_RESIZEX const struct vt_consize * | |
571 | ||
fea681da | 572 | // More arguments. |
88933758 | 573 | .fi |
fea681da | 574 | Some ioctl's take a pointer to a structure which contains additional |
88933758 | 575 | pointers. These are documented here in alphabetical order. |
fea681da MK |
576 | |
577 | CDROMREADAUDIO takes an input pointer 'const struct cdrom_read_audio *'. | |
88933758 | 578 | The 'buf' field points to an output buffer of length 'nframes * CD_FRAMESIZE_RAW'. |
fea681da MK |
579 | |
580 | CDROMREADCOOKED, CDROMREADMODE1, CDROMREADMODE2, and CDROMREADRAW take | |
c13182ef MK |
581 | an input pointer 'const struct cdrom_msf *'. |
582 | They use the same pointer as an output pointer to 'char []'. | |
583 | The length varies by request. | |
584 | For CDROMREADMODE1, most drivers use 'CD_FRAMESIZE', but the Optics Storage | |
fea681da MK |
585 | driver uses 'OPT_BLOCKSIZE' instead (both have the numerical value |
586 | 2048). | |
88933758 | 587 | .nf |
fea681da MK |
588 | |
589 | CDROMREADCOOKED char [CD_FRAMESIZE] | |
590 | CDROMREADMODE1 char [CD_FRAMESIZE or OPT_BLOCKSIZE] | |
591 | CDROMREADMODE2 char [CD_FRAMESIZE_RAW0] | |
592 | CDROMREADRAW char [CD_FRAMESIZE_RAW] | |
593 | ||
88933758 | 594 | .fi |
fea681da MK |
595 | EQL_ENSLAVE, EQL_EMANCIPATE, EQL_GETSLAVECFG, EQL_SETSLAVECFG, |
596 | EQL_GETMASTERCFG, and EQL_SETMASTERCFG take a 'struct ifreq *'. | |
597 | The 'ifr_data' field is a pointer to another structure as follows: | |
88933758 | 598 | .nf |
fea681da | 599 | |
74d32233 | 600 | EQL_ENSLAVE const struct slaving_request * |
fea681da MK |
601 | EQL_EMANCIPATE const struct slaving_request * |
602 | EQL_GETSLAVECFG struct slave_config * // I-O | |
603 | EQL_SETSLAVECFG const struct slave_config * | |
604 | EQL_GETMASTERCFG struct master_config * | |
605 | EQL_SETMASTERCFG const struct master_config * | |
606 | ||
88933758 | 607 | .fi |
c13182ef MK |
608 | FDRAWCMD takes a 'struct floppy raw_cmd *'. |
609 | If 'flags & FD_RAW_WRITE' | |
fea681da MK |
610 | is non-zero, then 'data' points to an input buffer of length 'length'. |
611 | If 'flags & FD_RAW_READ' is non-zero, then 'data' points to an output | |
612 | buffer of length 'length'. | |
613 | ||
614 | GIO_FONTX and PIO_FONTX take a 'struct console_font_desc *' or | |
615 | a 'const struct console_font_desc *', respectively. 'chardata' points to | |
c13182ef MK |
616 | a buffer of 'char [charcount]'. |
617 | This is an output buffer for GIO_FONTX | |
fea681da MK |
618 | and an input buffer for PIO_FONTX. |
619 | ||
620 | GIO_UNIMAP and PIO_UNIMAP take a 'struct unimapdesc *' or | |
621 | a 'const struct unimapdesc *', respectively. 'entries' points to a buffer | |
c13182ef MK |
622 | of 'struct unipair [entry_ct]'. |
623 | This is an output buffer for GIO_UNIMAP | |
fea681da MK |
624 | and an input buffer for PIO_UNIMAP. |
625 | ||
626 | KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to | |
c13182ef MK |
627 | I/O ports. |
628 | They are essentially alternate interfaces to 'ioperm'. | |
fea681da MK |
629 | |
630 | KDMAPDISP and KDUNMAPDISP enable or disable memory mappings or I/O port | |
c13182ef MK |
631 | access. |
632 | They are not implemented in the kernel. | |
fea681da MK |
633 | |
634 | SCSI_IOCTL_PROBE_HOST takes an input pointer 'const int *', which is a | |
c13182ef MK |
635 | length. |
636 | It uses the same pointer as an output pointer to a 'char []' | |
fea681da MK |
637 | buffer of this length. |
638 | ||
639 | SIOCADDRT and SIOCDELRT take an input pointer whose type depends on | |
640 | the protocol: | |
88933758 | 641 | .nf |
fea681da MK |
642 | |
643 | Most protocols const struct rtentry * | |
644 | AX.25 const struct ax25_route * | |
645 | NET/ROM const struct nr_route_struct * | |
646 | ||
88933758 | 647 | .fi |
c13182ef MK |
648 | SIOCGIFCONF takes a 'struct ifconf *'. |
649 | The 'ifc_buf' field points to a | |
fea681da MK |
650 | buffer of length 'ifc_len' bytes, into which the kernel writes a list of |
651 | type 'struct ifreq []'. | |
652 | ||
653 | SIOCSIFHWADDR takes an input pointer whose type depends on the protocol: | |
88933758 | 654 | .nf |
fea681da MK |
655 | |
656 | Most protocols const struct ifreq * | |
657 | AX.25 const char [AX25_ADDR_LEN] | |
658 | ||
88933758 | 659 | .fi |
c13182ef MK |
660 | TIOCLINUX takes a 'const char *'. |
661 | It uses this to distinguish several | |
662 | independent sub-cases. | |
663 | In the table below, 'N + foo' means 'foo' after | |
fea681da MK |
664 | an N-byte pad. 'struct selection' is implicitly defined |
665 | in 'drivers/char/selection.c' | |
88933758 | 666 | .nf |
fea681da MK |
667 | |
668 | TIOCLINUX-2 1 + const struct selection * | |
669 | TIOCLINUX-3 void | |
670 | TIOCLINUX-4 void | |
671 | TIOCLINUX-5 4 + const struct { long [8]; } * | |
672 | TIOCLINUX-6 char * | |
673 | TIOCLINUX-7 char * | |
674 | TIOCLINUX-10 1 + const char * | |
675 | ||
88933758 | 676 | .fi |
fea681da MK |
677 | // Duplicate ioctls |
678 | ||
679 | This list does not include ioctls in the range SIOCDEVPRIVATE and | |
680 | SIOCPROTOPRIVATE. | |
88933758 | 681 | .nf |
fea681da MK |
682 | |
683 | 0x00000001 FDSETPRM FIBMAP | |
684 | 0x00000002 FDDEFPRM FIGETBSZ | |
685 | 0x00005382 CDROMAUDIOBUFSIZ SCSI_IOCTL_GET_IDLUN | |
686 | 0x00005402 SNDCTL_TMR_START TCSETS | |
687 | 0x00005403 SNDCTL_TMR_STOP TCSETSW | |
688 | 0x00005404 SNDCTL_TMR_CONTINUE TCSETSF | |
7b5ab594 MK |
689 | .SH SEE ALSO |
690 | .BR ioctl (2) |