summaryrefslogtreecommitdiffstats
path: root/man2/ioctl_list.2
blob: d2094a0dab0dbe66b6d04e7126d50837475a1831 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
.\" Ioctl List 1.3.27
.\" Sun 17 Sep 1995
.\" Michael Elizabeth Chastain
.\" <mec@duracef.shout.net>
.\" 
.\" // Copyright
.\" 
.\" Ioctl List 1.3.27 is copyright 1995 by Michael Elizabeth Chastain.
.\" It is licensed under the Gnu Public License, Version 2.
.\" 
.\" 
.\" 
.\" // Change Log
.\" 
.\" 1.3.27	421 ioctls.
.\" 	Type information for non-pointer args.
.\" 	SIOCDEVPRIVATE, SIOCPROTOPRIVATE ioctls.
.\" 	Descriptions of extended arguments.
.\" 
.\" 1.2.9	365 ioctls.
.\" 	First public version.
.\" 
.\" 
.TH IOCTL_LIST 2 2003-03-30 "Linux 1.3" "Linux Programmer's Manual"
.SH NAME
ioctl_list \- list of ioctl calls in Linux/i386 kernel

.SH DESCRIPTION

This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel
1.3.27.  It contains 421 ioctls from /usr/include/{asm,linux}/*.h.
For each ioctl, its numerical value, its name, and its argument
type are given.
.PP
An argument type of 'const struct foo *' means the argument is input
to the kernel.  'struct foo *' means the kernel outputs the argument.
If the kernel uses the argument for both input and output, this is
marked with // I-O.
.PP
Some ioctls take more arguments or return more values than a single
structure.  These are marked // MORE and documented further in a
separate section.
.PP
This list is very incomplete.
Please e-mail changes and comments to <mec@duracef.shout.net>.

.SH "IOCTL STRUCTURE"
.\" added two sections - aeb
Ioctl command values are 32-bit constants.
In principle these constants are completely arbitrary, but people have
tried to build some structure into them.
.LP
The old Linux situation was that of mostly 16-bit constants, where the
last byte is a serial number, and the preceding byte(s) give a type
indicating the driver. Sometimes the major number was used: 0x03
for the HDIO_* ioctls, 0x06 for the LP* ioctls. And sometimes
one or more ASCII letters were used. For example, TCGETS has value
0x00005401, with 0x54 = 'T' indicating the terminal driver, and
CYGETTIMEOUT has value 0x00435906, with 0x43 0x59 = 'C' 'Y'
indicating the cyclades driver.
.LP
Later (0.98p5) some more information was built into the number.
One has 2 direction bits
(00: none, 01: write, 10: read, 11: read/write)
followed by 14 size bits (giving the size of the argument),
followed by an 8-bit type (collecting the ioctls in groups
for a common purpose or a common driver), and an 8-bit
serial number.
.LP
The macros describing this structure live in <asm/ioctl.h>
and are _IO(type,nr) and {_IOR,_IOW,_IOWR}(type,nr,size).
They use sizeof(size) so that size is a
misnomer here - this third parameter is a data type.
.LP
Note that the size bits are very unreliable - in lots of cases
they are wrong - either because of buggy macros using
sizeof(sizeof(struct)), or because of legacy values.
.LP
Thus, it seems that the new structure only gave disadvantages:
it does not help in checking, but it causes varying values
for the various architectures.

.SH "RETURN VALUE"
Decent ioctls return 0 on success and \-1 on error, while
any output value is stored via the argument. However,
quite a few ioctls in fact return an output value.
This is not yet indicated below.

.nf

// Main table.

// <include/asm-i386/socket.h>
0x00008901  FIOSETOWN			const int *
0x00008902  SIOCSPGRP			const int *
0x00008903  FIOGETOWN			int *
0x00008904  SIOCGPGRP			int *
0x00008905  SIOCATMARK			int *
0x00008906  SIOCGSTAMP			timeval *

// <include/asm-i386/termios.h>
0x00005401  TCGETS			struct termios *
0x00005402  TCSETS			const struct termios *
0x00005403  TCSETSW			const struct termios *
0x00005404  TCSETSF			const struct termios *
0x00005405  TCGETA			struct termio *
0x00005406  TCSETA			const struct termio *
0x00005407  TCSETAW			const struct termio *
0x00005408  TCSETAF			const struct termio *
0x00005409  TCSBRK			int
0x0000540A  TCXONC			int
0x0000540B  TCFLSH			int
0x0000540C  TIOCEXCL			void
0x0000540D  TIOCNXCL			void
0x0000540E  TIOCSCTTY			int
0x0000540F  TIOCGPGRP			pid_t *
0x00005410  TIOCSPGRP			const pid_t *
0x00005411  TIOCOUTQ			int *
0x00005412  TIOCSTI			const char *
0x00005413  TIOCGWINSZ			struct winsize *
0x00005414  TIOCSWINSZ			const struct winsize *
0x00005415  TIOCMGET			int *
0x00005416  TIOCMBIS			const int *
0x00005417  TIOCMBIC			const int *
0x00005418  TIOCMSET			const int *
0x00005419  TIOCGSOFTCAR		int *
0x0000541A  TIOCSSOFTCAR		const int *
0x0000541B  FIONREAD			int *
0x0000541B  TIOCINQ			int *
0x0000541C  TIOCLINUX			const char *			// MORE
0x0000541D  TIOCCONS			void
0x0000541E  TIOCGSERIAL			struct serial_struct *
0x0000541F  TIOCSSERIAL			const struct serial_struct *
0x00005420  TIOCPKT			const int *
0x00005421  FIONBIO			const int *
0x00005422  TIOCNOTTY			void
0x00005423  TIOCSETD			const int *
0x00005424  TIOCGETD			int *
0x00005425  TCSBRKP			int
0x00005426  TIOCTTYGSTRUCT		struct tty_struct *
0x00005450  FIONCLEX			void
0x00005451  FIOCLEX			void
0x00005452  FIOASYNC			const int *
0x00005453  TIOCSERCONFIG		void
0x00005454  TIOCSERGWILD		int *
0x00005455  TIOCSERSWILD		const int *
0x00005456  TIOCGLCKTRMIOS		struct termios *
0x00005457  TIOCSLCKTRMIOS		const struct termios *
0x00005458  TIOCSERGSTRUCT		struct async_struct *
0x00005459  TIOCSERGETLSR		int *
0x0000545A  TIOCSERGETMULTI		struct serial_multiport_struct *
0x0000545B  TIOCSERSETMULTI		const struct serial_multiport_struct *

// <include/linux/ax25.h>
0x000089E0  SIOCAX25GETUID		const struct sockaddr_ax25 *
0x000089E1  SIOCAX25ADDUID		const struct sockaddr_ax25 *
0x000089E2  SIOCAX25DELUID		const struct sockaddr_ax25 *
0x000089E3  SIOCAX25NOUID		const int *
0x000089E4  SIOCAX25DIGCTL		const int *
0x000089E5  SIOCAX25GETPARMS		struct ax25_parms_struct *	// I-O
0x000089E6  SIOCAX25SETPARMS		const struct ax25_parms-struct *

// <include/linux/cdk.h>
0x00007314  STL_BINTR			void
0x00007315  STL_BSTART			void
0x00007316  STL_BSTOP			void
0x00007317  STL_BRESET			void

// <include/linux/cdrom.h>
0x00005301  CDROMPAUSE			void
0x00005302  CDROMRESUME			void
0x00005303  CDROMPLAYMSF		const struct cdrom_msf *
0x00005304  CDROMPLAYTRKIND		const struct cdrom_ti *
0x00005305  CDROMREADTOCHDR		struct cdrom_tochdr *
0x00005306  CDROMREADTOCENTRY		struct cdrom_tocentry *		// I-O
0x00005307  CDROMSTOP			void
0x00005308  CDROMSTART			void
0x00005309  CDROMEJECT			void
0x0000530A  CDROMVOLCTRL		const struct cdrom_volctrl *
0x0000530B  CDROMSUBCHNL		struct cdrom_subchnl *		// I-O
0x0000530C  CDROMREADMODE2		const struct cdrom_msf *	// MORE
0x0000530D  CDROMREADMODE1		const struct cdrom_msf *	// MORE
0x0000530E  CDROMREADAUDIO		const struct cdrom_read_audio *	// MORE
0x0000530F  CDROMEJECT_SW		int
0x00005310  CDROMMULTISESSION		struct cdrom_multisession *	// I-O
0x00005311  CDROM_GET_UPC		struct { char [8]; } *
0x00005312  CDROMRESET			void
0x00005313  CDROMVOLREAD		struct cdrom_volctrl *
0x00005314  CDROMREADRAW		const struct cdrom_msf *	// MORE
0x00005315  CDROMREADCOOKED		const struct cdrom_msf *	// MORE
0x00005316  CDROMSEEK			const struct cdrom_msf *

// <include/linux/cm206.h>
0x00002000  CM206CTL_GET_STAT		int
0x00002001  CM206CTL_GET_LAST_STAT	int

// <include/linux/cyclades.h>
0x00435901  CYGETMON			struct cyclades_monitor *
0x00435902  CYGETTHRESH			int *
0x00435903  CYSETTHRESH			int
0x00435904  CYGETDEFTHRESH		int *
0x00435905  CYSETDEFTHRESH		int
0x00435906  CYGETTIMEOUT		int *
0x00435907  CYSETTIMEOUT		int
0x00435908  CYGETDEFTIMEOUT		int *
0x00435909  CYSETDEFTIMEOUT		int

// <include/linux/ext2_fs.h>
0x80046601  EXT2_IOC_GETFLAGS		int *
0x40046602  EXT2_IOC_SETFLAGS		const int *
0x80047601  EXT2_IOC_GETVERSION		int *
0x40047602  EXT2_IOC_SETVERSION		const int *

// <include/linux/fd.h>
0x00000000  FDCLRPRM			void
0x00000001  FDSETPRM			const struct floppy_struct *
0x00000002  FDDEFPRM			const struct floppy_struct *
0x00000003  FDGETPRM			struct floppy_struct *
0x00000004  FDMSGON			void
0x00000005  FDMSGOFF			void
0x00000006  FDFMTBEG			void
0x00000007  FDFMTTRK			const struct format_descr *
0x00000008  FDFMTEND			void
0x0000000A  FDSETEMSGTRESH		int
0x0000000B  FDFLUSH			void
0x0000000C  FDSETMAXERRS		const struct floppy_max_errors *
0x0000000E  FDGETMAXERRS		struct floppy_max_errors *
0x00000010  FDGETDRVTYP			struct { char [16]; } *
0x00000014  FDSETDRVPRM			const struct floppy_drive_params *
0x00000015  FDGETDRVPRM			struct floppy_drive_params *
0x00000016  FDGETDRVSTAT		struct floppy_drive_struct *
0x00000017  FDPOLLDRVSTAT		struct floppy_drive_struct *
0x00000018  FDRESET			int
0x00000019  FDGETFDCSTAT		struct floppy_fdc_state *
0x0000001B  FDWERRORCLR			void
0x0000001C  FDWERRORGET			struct floppy_write_errors *
0x0000001E  FDRAWCMD			struct floppy_raw_cmd *	// MORE	// I-O
0x00000028  FDTWADDLE			void

// <include/linux/fs.h>
0x0000125D  BLKROSET			const int *
0x0000125E  BLKROGET			int *
0x0000125F  BLKRRPART			void
0x00001260  BLKGETSIZE			int *
0x00001261  BLKFLSBUF			void
0x00001262  BLKRASET			int
0x00001263  BLKRAGET			int *
0x00000001  FIBMAP			int *				// I-O
0x00000002  FIGETBSZ			int *

// <include/linux/hdreg.h>
0x00000301  HDIO_GETGEO			struct hd_geometry *
0x00000302  HDIO_GET_UNMASKINTR		int *
0x00000304  HDIO_GET_MULTCOUNT		int *
0x00000307  HDIO_GET_IDENTITY		struct hd_driveid *
0x00000308  HDIO_GET_KEEPSETTINGS	int *
0x00000309  HDIO_GET_CHIPSET		int *
0x0000030A  HDIO_GET_NOWERR		int *
0x0000030B  HDIO_GET_DMA		int *
0x0000031F  HDIO_DRIVE_CMD		int *				// I-O
0x00000321  HDIO_SET_MULTCOUNT		int
0x00000322  HDIO_SET_UNMASKINTR		int
0x00000323  HDIO_SET_KEEPSETTINGS	int
0x00000324  HDIO_SET_CHIPSET		int
0x00000325  HDIO_SET_NOWERR		int
0x00000326  HDIO_SET_DMA		int

// <include/linux/if_eql.h>
0x000089F0  EQL_ENSLAVE			struct ifreq *		// MORE // I-O
0x000089F1  EQL_EMANCIPATE		struct ifreq *		// MORE // I-O
0x000089F2  EQL_GETSLAVECFG		struct ifreq *		// MORE // I-O
0x000089F3  EQL_SETSLAVECFG		struct ifreq *		// MORE // I-O
0x000089F4  EQL_GETMASTRCFG		struct ifreq *		// MORE // I-O
0x000089F5  EQL_SETMASTRCFG		struct ifreq *		// MORE // I-O

// <include/linux/if_plip.h>
0x000089F0  SIOCDEVPLIP			struct ifreq *			// I-O

// <include/linux/if_ppp.h>
0x00005490  PPPIOCGFLAGS		int *
0x00005491  PPPIOCSFLAGS		const int *
0x00005492  PPPIOCGASYNCMAP		int *
0x00005493  PPPIOCSASYNCMAP		const int *
0x00005494  PPPIOCGUNIT			int *
0x00005495  PPPIOCSINPSIG		const int *
0x00005497  PPPIOCSDEBUG		const int *
0x00005498  PPPIOCGDEBUG		int *
0x00005499  PPPIOCGSTAT			struct ppp_stats *
0x0000549A  PPPIOCGTIME			struct ppp_ddinfo *
0x0000549B  PPPIOCGXASYNCMAP		struct { int [8]; } *
0x0000549C  PPPIOCSXASYNCMAP		const struct { int [8]; } *
0x0000549D  PPPIOCSMRU			const int *
0x0000549E  PPPIOCRASYNCMAP		const int *
0x0000549F  PPPIOCSMAXCID		const int *

// <include/linux/ipx.h>
0x000089E0  SIOCAIPXITFCRT		const char *
0x000089E1  SIOCAIPXPRISLT		const char *
0x000089E2  SIOCIPXCFGDATA		struct ipx_config_data *

// <include/linux/kd.h>
0x00004B60  GIO_FONT			struct { char [8192]; } *
0x00004B61  PIO_FONT			const struct { char [8192]; } *
0x00004B6B  GIO_FONTX			struct console_font_desc *  // MORE I-O
0x00004B6C  PIO_FONTX			const struct console_font_desc * //MORE
0x00004B70  GIO_CMAP			struct { char [48]; } *
0x00004B71  PIO_CMAP			const struct { char [48]; }
0x00004B2F  KIOCSOUND			int
0x00004B30  KDMKTONE			int
0x00004B31  KDGETLED			char *
0x00004B32  KDSETLED			int
0x00004B33  KDGKBTYPE			char *
0x00004B34  KDADDIO			int				// MORE
0x00004B35  KDDELIO			int				// MORE
0x00004B36  KDENABIO			void				// MORE
0x00004B37  KDDISABIO			void				// MORE
0x00004B3A  KDSETMODE			int
0x00004B3B  KDGETMODE			int *
0x00004B3C  KDMAPDISP			void				// MORE
0x00004B3D  KDUNMAPDISP			void				// MORE
0x00004B40  GIO_SCRNMAP			struct { char [E_TABSZ]; } *
0x00004B41  PIO_SCRNMAP			const struct { char [E_TABSZ]; } *
0x00004B69  GIO_UNISCRNMAP		struct { short [E_TABSZ]; } *
0x00004B6A  PIO_UNISCRNMAP		const struct { short [E_TABSZ]; } *
0x00004B66  GIO_UNIMAP			struct unimapdesc *	// MORE	// I-O
0x00004B67  PIO_UNIMAP			const struct unimapdesc *	// MORE
0x00004B68  PIO_UNIMAPCLR		const struct unimapinit *
0x00004B44  KDGKBMODE			int *
0x00004B45  KDSKBMODE			int
0x00004B62  KDGKBMETA			int *
0x00004B63  KDSKBMETA			int
0x00004B64  KDGKBLED			int *
0x00004B65  KDSKBLED			int
0x00004B46  KDGKBENT			struct kbentry *		// I-O
0x00004B47  KDSKBENT			const struct kbentry *
0x00004B48  KDGKBSENT			struct kbsentry *		// I-O
0x00004B49  KDSKBSENT			const struct kbsentry *
0x00004B4A  KDGKBDIACR			struct kbdiacrs *
0x00004B4B  KDSKBDIACR			const struct kbdiacrs *
0x00004B4C  KDGETKEYCODE		struct kbkeycode *		// I-O
0x00004B4D  KDSETKEYCODE		const struct kbkeycode *
0x00004B4E  KDSIGACCEPT			int

// <include/linux/lp.h>
0x00000601  LPCHAR			int
0x00000602  LPTIME			int
0x00000604  LPABORT			int
0x00000605  LPSETIRQ			int
0x00000606  LPGETIRQ			int *
0x00000608  LPWAIT			int
0x00000609  LPCAREFUL			int
0x0000060A  LPABORTOPEN			int
0x0000060B  LPGETSTATUS			int *
0x0000060C  LPRESET			void
0x0000060D  LPGETSTATS			struct lp_stats *

// <include/linux/mroute.h>
0x000089E0  SIOCGETVIFCNT		struct sioc_vif_req *		// I-O
0x000089E1  SIOCGETSGCNT		struct sioc_sg_req *		// I-O

// <include/linux/mtio.h>
0x40086D01  MTIOCTOP			const struct mtop *
0x801C6D02  MTIOCGET			struct mtget *
0x80046D03  MTIOCPOS			struct mtpos *
0x80206D04  MTIOCGETCONFIG		struct mtconfiginfo *
0x40206D05  MTIOCSETCONFIG		const struct mtconfiginfo *

// <include/linux/netrom.h>
0x000089E0  SIOCNRGETPARMS		struct nr_parms_struct *	// I-O
0x000089E1  SIOCNRSETPARMS		const struct nr_parms_struct *
0x000089E2  SIOCNRDECOBS		void
0x000089E3  SIOCNRRTCTL			const int *

// <include/linux/sbpcd.h>
0x00009000  DDIOCSDBG			const int *
0x00005382  CDROMAUDIOBUFSIZ		int

// <include/linux/scc.h>
0x00005470  TIOCSCCINI			void
0x00005471  TIOCCHANINI			const struct scc_modem *
0x00005472  TIOCGKISS			struct ioctl_command *		// I-O
0x00005473  TIOCSKISS			const struct ioctl_command *
0x00005474  TIOCSCCSTAT			struct scc_stat *

// <include/linux/scsi.h>
0x00005382  SCSI_IOCTL_GET_IDLUN	struct { int [2]; } *
0x00005383  SCSI_IOCTL_TAGGED_ENABLE	void
0x00005384  SCSI_IOCTL_TAGGED_DISABLE	void
0x00005385  SCSI_IOCTL_PROBE_HOST	const int *			// MORE

// <include/linux/smb_fs.h>
0x80027501  SMB_IOC_GETMOUNTUID		uid_t *

// <include/linux/sockios.h>
0x0000890B  SIOCADDRT			const struct rtentry *		// MORE
0x0000890C  SIOCDELRT			const struct rtentry *		// MORE
0x00008910  SIOCGIFNAME			char []
0x00008911  SIOCSIFLINK			void
0x00008912  SIOCGIFCONF			struct ifconf *		// MORE	// I-O
0x00008913  SIOCGIFFLAGS		struct ifreq *			// I-O
0x00008914  SIOCSIFFLAGS		const struct ifreq *
0x00008915  SIOCGIFADDR			struct ifreq *			// I-O
0x00008916  SIOCSIFADDR			const struct ifreq *
0x00008917  SIOCGIFDSTADDR		struct ifreq *			// I-O
0x00008918  SIOCSIFDSTADDR		const struct ifreq *
0x00008919  SIOCGIFBRDADDR		struct ifreq *			// I-O
0x0000891A  SIOCSIFBRDADDR		const struct ifreq *
0x0000891B  SIOCGIFNETMASK		struct ifreq *			// I-O
0x0000891C  SIOCSIFNETMASK		const struct ifreq *
0x0000891D  SIOCGIFMETRIC		struct ifreq *			// I-O
0x0000891E  SIOCSIFMETRIC		const struct ifreq *
0x0000891F  SIOCGIFMEM			struct ifreq *			// I-O
0x00008920  SIOCSIFMEM			const struct ifreq *
0x00008921  SIOCGIFMTU			struct ifreq *			// I-O
0x00008922  SIOCSIFMTU			const struct ifreq *
0x00008923  OLD_SIOCGIFHWADDR		struct ifreq *			// I-O
0x00008924  SIOCSIFHWADDR		const struct ifreq *		// MORE
0x00008925  SIOCGIFENCAP		int *
0x00008926  SIOCSIFENCAP		const int *
0x00008927  SIOCGIFHWADDR		struct ifreq *			// I-O
0x00008929  SIOCGIFSLAVE		void
0x00008930  SIOCSIFSLAVE		void
0x00008931  SIOCADDMULTI		const struct ifreq *
0x00008932  SIOCDELMULTI		const struct ifreq *
0x00008940  SIOCADDRTOLD		void
0x00008941  SIOCDELRTOLD		void
0x00008950  SIOCDARP			const struct arpreq *
0x00008951  SIOCGARP			struct arpreq *			// I-O
0x00008952  SIOCSARP			const struct arpreq *
0x00008960  SIOCDRARP			const struct arpreq *
0x00008961  SIOCGRARP			struct arpreq *			// I-O
0x00008962  SIOCSRARP			const struct arpreq *
0x00008970  SIOCGIFMAP			struct ifreq *			// I-O
0x00008971  SIOCSIFMAP			const struct ifreq *

// <include/linux/soundcard.h>
0x00005100  SNDCTL_SEQ_RESET		void
0x00005101  SNDCTL_SEQ_SYNC		void
0xC08C5102  SNDCTL_SYNTH_INFO		struct synth_info *		// I-O
0xC0045103  SNDCTL_SEQ_CTRLRATE		int *				// I-O
0x80045104  SNDCTL_SEQ_GETOUTCOUNT	int *
0x80045105  SNDCTL_SEQ_GETINCOUNT	int *
0x40045106  SNDCTL_SEQ_PERCMODE		void
0x40285107  SNDCTL_FM_LOAD_INSTR	const struct sbi_instrument *
0x40045108  SNDCTL_SEQ_TESTMIDI		const int *
0x40045109  SNDCTL_SEQ_RESETSAMPLES	const int *
0x8004510A  SNDCTL_SEQ_NRSYNTHS		int *
0x8004510B  SNDCTL_SEQ_NRMIDIS		int *
0xC074510C  SNDCTL_MIDI_INFO		struct midi_info *		// I-O
0x4004510D  SNDCTL_SEQ_THRESHOLD	const int *
0xC004510E  SNDCTL_SYNTH_MEMAVL		int *				// I-O
0x4004510F  SNDCTL_FM_4OP_ENABLE	const int *
0xCFB85110  SNDCTL_PMGR_ACCESS		struct patmgr_info *		// I-O
0x00005111  SNDCTL_SEQ_PANIC		void
0x40085112  SNDCTL_SEQ_OUTOFBAND	const struct seq_event_rec *
0xC0045401  SNDCTL_TMR_TIMEBASE		int *				// I-O
0x00005402  SNDCTL_TMR_START		void
0x00005403  SNDCTL_TMR_STOP		void
0x00005404  SNDCTL_TMR_CONTINUE		void
0xC0045405  SNDCTL_TMR_TEMPO		int *				// I-O
0xC0045406  SNDCTL_TMR_SOURCE		int *				// I-O
0x40045407  SNDCTL_TMR_METRONOME	const int *
0x40045408  SNDCTL_TMR_SELECT		int *				// I-O
0xCFB85001  SNDCTL_PMGR_IFACE		struct patmgr_info *		// I-O
0xC0046D00  SNDCTL_MIDI_PRETIME		int *				// I-O
0xC0046D01  SNDCTL_MIDI_MPUMODE		const int *
0xC0216D02  SNDCTL_MIDI_MPUCMD		struct mpu_command_rec *	// I-O
0x00005000  SNDCTL_DSP_RESET		void
0x00005001  SNDCTL_DSP_SYNC		void
0xC0045002  SNDCTL_DSP_SPEED		int *				// I-O
0xC0045003  SNDCTL_DSP_STEREO		int *				// I-O
0xC0045004  SNDCTL_DSP_GETBLKSIZE	int *				// I-O
0xC0045006  SOUND_PCM_WRITE_CHANNELS	int *				// I-O
0xC0045007  SOUND_PCM_WRITE_FILTER	int *				// I-O
0x00005008  SNDCTL_DSP_POST		void
0xC0045009  SNDCTL_DSP_SUBDIVIDE	int *				// I-O
0xC004500A  SNDCTL_DSP_SETFRAGMENT	int *				// I-O
0x8004500B  SNDCTL_DSP_GETFMTS		int *
0xC0045005  SNDCTL_DSP_SETFMT		int *				// I-O
0x800C500C  SNDCTL_DSP_GETOSPACE	struct audio_buf_info *
0x800C500D  SNDCTL_DSP_GETISPACE	struct audio_buf_info *
0x0000500E  SNDCTL_DSP_NONBLOCK		void
0x80045002  SOUND_PCM_READ_RATE		int *
0x80045006  SOUND_PCM_READ_CHANNELS	int *
0x80045005  SOUND_PCM_READ_BITS		int *
0x80045007  SOUND_PCM_READ_FILTER	int *
0x00004300  SNDCTL_COPR_RESET		void
0xCFB04301  SNDCTL_COPR_LOAD		const struct copr_buffer *
0xC0144302  SNDCTL_COPR_RDATA		struct copr_debug_buf *		// I-O
0xC0144303  SNDCTL_COPR_RCODE		struct copr_debug_buf *		// I-O
0x40144304  SNDCTL_COPR_WDATA		const struct copr_debug_buf *
0x40144305  SNDCTL_COPR_WCODE		const struct copr_debug_buf *
0xC0144306  SNDCTL_COPR_RUN		struct copr_debug_buf *		// I-O
0xC0144307  SNDCTL_COPR_HALT		struct copr_debug_buf *		// I-O
0x4FA44308  SNDCTL_COPR_SENDMSG		const struct copr_msg *
0x8FA44309  SNDCTL_COPR_RCVMSG		struct copr_msg *
0x80044D00  SOUND_MIXER_READ_VOLUME	int *
0x80044D01  SOUND_MIXER_READ_BASS	int *
0x80044D02  SOUND_MIXER_READ_TREBLE	int *
0x80044D03  SOUND_MIXER_READ_SYNTH	int *
0x80044D04  SOUND_MIXER_READ_PCM	int *
0x80044D05  SOUND_MIXER_READ_SPEAKER	int *
0x80044D06  SOUND_MIXER_READ_LINE	int *
0x80044D07  SOUND_MIXER_READ_MIC	int *
0x80044D08  SOUND_MIXER_READ_CD		int *
0x80044D09  SOUND_MIXER_READ_IMIX	int *
0x80044D0A  SOUND_MIXER_READ_ALTPCM	int *
0x80044D0B  SOUND_MIXER_READ_RECLEV	int *
0x80044D0C  SOUND_MIXER_READ_IGAIN	int *
0x80044D0D  SOUND_MIXER_READ_OGAIN	int *
0x80044D0E  SOUND_MIXER_READ_LINE1	int *
0x80044D0F  SOUND_MIXER_READ_LINE2	int *
0x80044D10  SOUND_MIXER_READ_LINE3	int *
0x80044D1C  SOUND_MIXER_READ_MUTE	int *
0x80044D1D  SOUND_MIXER_READ_ENHANCE	int *
0x80044D1E  SOUND_MIXER_READ_LOUD	int *
0x80044DFF  SOUND_MIXER_READ_RECSRC	int *
0x80044DFE  SOUND_MIXER_READ_DEVMASK	int *
0x80044DFD  SOUND_MIXER_READ_RECMASK	int *
0x80044DFB  SOUND_MIXER_READ_STEREODEVS	int *
0x80044DFC  SOUND_MIXER_READ_CAPS	int *
0xC0044D00  SOUND_MIXER_WRITE_VOLUME	int *				// I-O
0xC0044D01  SOUND_MIXER_WRITE_BASS	int *				// I-O
0xC0044D02  SOUND_MIXER_WRITE_TREBLE	int *				// I-O
0xC0044D03  SOUND_MIXER_WRITE_SYNTH	int *				// I-O
0xC0044D04  SOUND_MIXER_WRITE_PCM	int *				// I-O
0xC0044D05  SOUND_MIXER_WRITE_SPEAKER	int *				// I-O
0xC0044D06  SOUND_MIXER_WRITE_LINE	int *				// I-O
0xC0044D07  SOUND_MIXER_WRITE_MIC	int *				// I-O
0xC0044D08  SOUND_MIXER_WRITE_CD	int *				// I-O
0xC0044D09  SOUND_MIXER_WRITE_IMIX	int *				// I-O
0xC0044D0A  SOUND_MIXER_WRITE_ALTPCM	int *				// I-O
0xC0044D0B  SOUND_MIXER_WRITE_RECLEV	int *				// I-O
0xC0044D0C  SOUND_MIXER_WRITE_IGAIN	int *				// I-O
0xC0044D0D  SOUND_MIXER_WRITE_OGAIN	int *				// I-O
0xC0044D0E  SOUND_MIXER_WRITE_LINE1	int *				// I-O
0xC0044D0F  SOUND_MIXER_WRITE_LINE2	int *				// I-O
0xC0044D10  SOUND_MIXER_WRITE_LINE3	int *				// I-O
0xC0044D1C  SOUND_MIXER_WRITE_MUTE	int *				// I-O
0xC0044D1D  SOUND_MIXER_WRITE_ENHANCE	int *				// I-O
0xC0044D1E  SOUND_MIXER_WRITE_LOUD	int *				// I-O
0xC0044DFF  SOUND_MIXER_WRITE_RECSRC	int *				// I-O

// <include/linux/umsdos_fs.h>
0x000004D2  UMSDOS_READDIR_DOS		struct umsdos_ioctl *		// I-O
0x000004D3  UMSDOS_UNLINK_DOS		const struct umsdos_ioctl *
0x000004D4  UMSDOS_RMDIR_DOS		const struct umsdos_ioctl *
0x000004D5  UMSDOS_STAT_DOS		struct umsdos_ioctl *		// I-O
0x000004D6  UMSDOS_CREAT_EMD		const struct umsdos_ioctl *
0x000004D7  UMSDOS_UNLINK_EMD		const struct umsdos_ioctl *
0x000004D8  UMSDOS_READDIR_EMD		struct umsdos_ioctl *		// I-O
0x000004D9  UMSDOS_GETVERSION		struct umsdos_ioctl *
0x000004DA  UMSDOS_INIT_EMD		void
0x000004DB  UMSDOS_DOS_SETUP		const struct umsdos_ioctl *
0x000004DC  UMSDOS_RENAME_DOS		const struct umsdos_ioctl *

// <include/linux/vt.h>
0x00005600  VT_OPENQRY			int *
0x00005601  VT_GETMODE			struct vt_mode *
0x00005602  VT_SETMODE			const struct vt_mode *
0x00005603  VT_GETSTATE			struct vt_stat *
0x00005604  VT_SENDSIG			void
0x00005605  VT_RELDISP			int
0x00005606  VT_ACTIVATE			int
0x00005607  VT_WAITACTIVE		int
0x00005608  VT_DISALLOCATE		int
0x00005609  VT_RESIZE			const struct vt_sizes *
0x0000560A  VT_RESIZEX			const struct vt_consize *



// More arguments.

Some ioctl's take a pointer to a structure which contains additional
pointers.  These are documented here in alphabetical order.

CDROMREADAUDIO takes an input pointer 'const struct cdrom_read_audio *'.
The 'buf' field points to an output buffer
of length 'nframes * CD_FRAMESIZE_RAW'.

CDROMREADCOOKED, CDROMREADMODE1, CDROMREADMODE2, and CDROMREADRAW take
an input pointer 'const struct cdrom_msf *'.  They use the same pointer
as an output pointer to 'char []'.  The length varies by request.  For
CDROMREADMODE1, most drivers use 'CD_FRAMESIZE', but the Optics Storage
driver uses 'OPT_BLOCKSIZE' instead (both have the numerical value
2048).

	    CDROMREADCOOKED		char [CD_FRAMESIZE]
	    CDROMREADMODE1		char [CD_FRAMESIZE or OPT_BLOCKSIZE]
	    CDROMREADMODE2		char [CD_FRAMESIZE_RAW0]
	    CDROMREADRAW		char [CD_FRAMESIZE_RAW]

EQL_ENSLAVE, EQL_EMANCIPATE, EQL_GETSLAVECFG, EQL_SETSLAVECFG,
EQL_GETMASTERCFG, and EQL_SETMASTERCFG take a 'struct ifreq *'.
The 'ifr_data' field is a pointer to another structure as follows:

	    EQL_ENSLAVE			const struct slaving_request *
	    EQL_EMANCIPATE		const struct slaving_request *
	    EQL_GETSLAVECFG		struct slave_config *		// I-O
	    EQL_SETSLAVECFG		const struct slave_config *
	    EQL_GETMASTERCFG		struct master_config *
	    EQL_SETMASTERCFG		const struct master_config *

FDRAWCMD takes a 'struct floppy raw_cmd *'.  If 'flags & FD_RAW_WRITE'
is non-zero, then 'data' points to an input buffer of length 'length'.
If 'flags & FD_RAW_READ' is non-zero, then 'data' points to an output
buffer of length 'length'.

GIO_FONTX and PIO_FONTX take a 'struct console_font_desc *' or
a 'const struct console_font_desc *', respectively.  'chardata' points to
a buffer of 'char [charcount]'.  This is an output buffer for GIO_FONTX
and an input buffer for PIO_FONTX.

GIO_UNIMAP and PIO_UNIMAP take a 'struct unimapdesc *' or
a 'const struct unimapdesc *', respectively.  'entries' points to a buffer
of 'struct unipair [entry_ct]'.  This is an output buffer for GIO_UNIMAP
and an input buffer for PIO_UNIMAP.

KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to
I/O ports.  They are essentially alternate interfaces to 'ioperm'.

KDMAPDISP and KDUNMAPDISP enable or disable memory mappings or I/O port
access.  They are not implemented in the kernel.

SCSI_IOCTL_PROBE_HOST takes an input pointer 'const int *', which is a
length.  It uses the same pointer as an output pointer to a 'char []'
buffer of this length.

SIOCADDRT and SIOCDELRT take an input pointer whose type depends on
the protocol:

	    Most protocols		const struct rtentry *
	    AX.25			const struct ax25_route *
	    NET/ROM			const struct nr_route_struct *

SIOCGIFCONF takes a 'struct ifconf *'.  The 'ifc_buf' field points to a
buffer of length 'ifc_len' bytes, into which the kernel writes a list of
type 'struct ifreq []'.

SIOCSIFHWADDR takes an input pointer whose type depends on the protocol:

	    Most protocols		const struct ifreq *
	    AX.25			const char [AX25_ADDR_LEN]

TIOCLINUX takes a 'const char *'.  It uses this to distinguish several
independent sub-cases.  In the table below, 'N + foo' means 'foo' after
an N-byte pad.  'struct selection' is implicitly defined
in 'drivers/char/selection.c'

	    TIOCLINUX-2			1 + const struct selection *
	    TIOCLINUX-3			void
	    TIOCLINUX-4			void
	    TIOCLINUX-5			4 + const struct { long [8]; } *
	    TIOCLINUX-6			char *
	    TIOCLINUX-7			char *
	    TIOCLINUX-10		1 + const char *





// Duplicate ioctls

This list does not include ioctls in the range SIOCDEVPRIVATE and
SIOCPROTOPRIVATE.

0x00000001  FDSETPRM			FIBMAP
0x00000002  FDDEFPRM			FIGETBSZ
0x00005382  CDROMAUDIOBUFSIZ		SCSI_IOCTL_GET_IDLUN
0x00005402  SNDCTL_TMR_START		TCSETS
0x00005403  SNDCTL_TMR_STOP		TCSETSW
0x00005404  SNDCTL_TMR_CONTINUE		TCSETSF