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