Lynx (etc) text mode tables arranged to 110 chars/line - where if properly adjusted the tables appear most "readable"... |
[intro] [a:index] [s:index] [#:index] [sys_ioctl] [man ioctl]
Re asm/ioctl.h,
asm/ioctls.h:
ioctl command encoding: 32 bits total, command in lower 16 bits,
size of the parameter structure in the lower 14 bits of the upper 16 bits.
Encoding the size of the parameter structure in the ioctl request is useful
for catching programs compiled with old versions and to avoid overwriting
user space outside the user buffer area.
The highest 2 bits are reserved for indicating the ``access mode''.
NOTE: This limits the max parameter size to 16kB -1 !
The following is for compatibility across the various Linux platforms.
The i386 ioctl numbering scheme doesn't really enforce a type field.
De facto, however, the top 8 bits of the lower 16 bits are indeed used
as a type field, so we might just as well make this explicit here.
... refer to locally installed Linux sources:
- /usr/src/linux/
- /usr/src/linux/rtl/ for the (optional) "rtl" extension
Abbreviations
- c constant
- l long
- s struct
- v void
[hp: Editted wrt 2.{2,4,6} kernels; false/out-dated refs fixed, others added.]
_IO an ioctl with no parameters _IOW an ioctl with write parameters (from user's point of view) _IOR an ioctl with read parameters (from user's point of view) _IOWR an ioctl with both write and read parameters.
'Write' and 'read' are from the user's point of view. This is like the system calls 'write' and 'read'. For example, a SET_FOO ioctl would be _IOW, although the kernel would actually read data from user space; a GET_FOO ioctl would be _IOR, although the kernel would actually write data to user space.
The first argument to _IO, _IOW, _IOR, or _IOWR is an identifying letter or number from the table below. If you are writing a driver for a new device and need a letter, pick an unused letter. You can register the letter by patching this file and submitting the patch to Linus Torvalds. Or you can e-mail me at mec@shout.net and I'll register one for you.
The second argument to _IO, _IOW, _IOR, or _IOWR is a sequence number to distinguish ioctls from each other. The third argument is the size of the structure going into the kernel or coming out of the kernel.
Some devices use their major number as the identifier; this is not recommended. Some devices are even more irregular and don't follow the convention at all.
Following the convention recommended because:
- Keeping the ioctl's globally unique helps error checking:
if a program calls an ioctl on the wrong device, it will get an error rather than some unexpected behaviour.- The 'strace' build procedure automatically finds ioctl numbers defined with _IO, _IOW, _IOR, or _IOWR.
- 'strace' can decode numbers back into useful names when the numbers are unique.
- People looking for ioctls can grep for them more easily when the convention is used to define the ioctl numbers.
- When following the convention, the driver code can use generic code to call verify_area to validate parameters.
Ioctls visible from user land for Linux/i386, current to Linux 2.1.15:
[hp: some refs editted wrt 2.2+, probably more out-dated ones exist]
Code Seq# Include File Comment 01-02 linux/fs.h conflict! 0x00 01-04 scsi/scsi_ioctl.h conflict! 0x02 all linux/fd.h 0x03 all linux/hdreg.h 0x04 all linux/umsdos_fs.h 0x06 all linux/lp.h 0x09 all linux/md.h 0x12 all linux/fs.h 0x20 all linux/cm206.h 0x22 all scsi/sg.h 'A' all linux/apm_bios.h 'C' all linux/soundcard.h 'F' all linux/fb.h 'I' all linux/isdn.h 'K' all linux/kd.h 'L' all linux/loop.h 'M' all linux/soundcard.h 'P' all linux/soundcard.h 'Q' all linux/soundcard.h 'R' all linux/random.h 'S' 00-7F linux/cdrom.h 'S' 80-FF scsi/scsi_ioctl.h 'T' all linux/soundcard.h conflict! 'T' all asm-i386/ioctls.h conflict! 'V' all linux/vt.h 'W' 00-1F include/wanrouter.h conflict! (-?-) 'W' 00-1F linux/watchdog.h 'W' 20-27 linux/octal-relay.h in development 'W' 28-2F linux/iso16-relay.h in development 'Y' all linux/cyclades.h 'a' all various, see lrcwww.epfl.ch/linux-atm/magic.html 'b' 00-FF bit3 vme host bridge in development: natalia@nikhefk.nikhef.nl 'c' all linux/comstats.h 'c' 00-7F linux/coda.h 'f' all linux/ext2_fs.h and, 'f' all linux/ext3_fs.h 'j' 00-3F linux/joystick.h 'k' all asm-sparc64/kbio.h 'l' 00-3F linux/tcfs_fs.h in development: http://mikonos.dia.unisa.it/tcfs 'm' all linux/mtio.h conflict! 'm' all linux/soundcard.h conflict! 'n' all linux/ncp_fs.h 'p' 00-3F linux/mc146818rtc.h 'p' 40-7F linux/nvram.h 'p' 80-9F user-space parport in development: tim@cyberelk.demon.co.uk 'r' all linux/msdos_fs.h 's' all linux/cdk.h 't' 00-7F linux/if_ppp.h 't' 80-8F linux/isdn_ppp.h 'u' all linux/smb_fs.h 'v' all linux/ext2_fs.h and, 'f' all linux/ext3_fs.h 'w' all CERN SCI driver in development 'z' 00-3F CAN bus card in development: hdstich@connectu.ulm.circular.de 'z' 40-7F CAN bas card in development: mailto:oe@port.de 0x89 00-0F asm-i386/sockios.h 0x89 10-DF linux/sockios.h 0x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range 0x89 F0-FF linux/sockios.h SIOCDEVPRIVATE range 0x8B all linux/wireless.h 0x8C 00-3F WiNRADiO driver in development: www.proximity.com.au/~brian/winradio/ 0x90 00 linux/sbpcd.h 0x93 60-7F linux/auto_fs.h 0x99 00-0F 537-Addinboard driver in development: b.kohl@ipn-b.comlink.apc.org 0xA0 all Small Device Project in development: khollis@northwest.com 0xA3 80-8F Port ACL in development: tlewis@mindspring.com 0xA3 90-9F DoubleTalk driver in development: mailto:jrv@vanzandt.mv.com 0xAB 00-06 Network block device
man pages, 1.35, 1.39, "man 2 ioctl_list":
"ioctl_list - list of ioctl calls in Linux/i386 kernel "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, I list its numerical value, its name, and its argument type. "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. ------------------------------------------------------------------------------- [hp: the original list is quite useless, referring to 1.xx kernels (per 3/2003!), thus newly [ editted and less in-complete, currently about 1500 refs per 2.2.19...2.4.24/2.6.3 kernel: // include/asm-i386/ioctl.h // 'macroes' =============================================================================== // include/asm-i386/mtrr.h =============================================================================== _IOW( 'M',0,struct mtrr_sentry) MTRRIOC_ADD_ENTRY _IOW( 'M',1,struct mtrr_sentry) MTRRIOC_SET_ENTRY _IOW( 'M',2,struct mtrr_sentry) MTRRIOC_DEL_ENTRY _IOWR('M',3,struct mtrr_gentry) MTRRIOC_GET_ENTRY _IOW( 'M',4,struct mtrr_sentry) MTRRIOC_KILL_ENTRY // include/asm-i386/sockios.h =============================================================================== 0x00008901 FIOSETOWN const int * 0x00008902 SIOCSPGRP const int * 0x00008903 FIOGETOWN int * 0x00008904 SIOCGPGRP int * 0x00008905 SIOCATMARK int * 0x00008906 SIOCGSTAMP timeval * // drivers/cdrom/cm206.h =============================================================================== 0x00002000 CM206CTL_GET_STAT int 0x00002001 CM206CTL_GET_LAST_STAT int // drivers/char/bttv.h =============================================================================== // include/linux/videodev.h _IOW('v', 192 + 0 , char [256]) BTTV_READEE _IOR('v', 192 + 1 , char [256]) BTTV_WRITEE _IOR('v', 192 + 2 , unsigned int) BTTV_FIELDNR _IOW('v', 192 + 3 , struct bttv_pll_info) BTTV_PLLSET _IOR('v', 192 + 4 , int) BTTV_BURST_ON _IOR('v', 192 + 5 , int) BTTV_BURST_OFF _IOR('v', 192 + 6 , int) BTTV_VERSION _IOR('v', 192 + 7 , int) BTTV_PICNR // drivers/char/digi.h =============================================================================== (('d'<<8) | 250) TIOCMODG // get modem ctrl state (('d'<<8) | 251) TIOCMODS // set modem ctrl state (('d'<<8) | 252) TIOCMSET // set modem ctrl state (('d'<<8) | 253) TIOCMGET // set modem ctrl state (('d'<<8) | 254) TIOCMBIC // set modem ctrl state (('d'<<8) | 255) TIOCMBIS // set modem ctrl state (('e'<<8) | 0) TIOCSDTR // set DTR (('e'<<8) | 1) TIOCCDTR // clear DTR (('e'<<8) | 94) DIGI_GETA // Read params (('e'<<8) | 95) DIGI_SETA // Set params (('e'<<8) | 96) DIGI_SETAW // Drain & set params (('e'<<8) | 97) DIGI_SETAF // Drain, flush & set params (('e'<<8) | 99) DIGI_GETFLOW // Get startc/stopc flow control characters (('e'<<8) | 100) DIGI_SETFLOW // Set startc/stopc flow control characters (('e'<<8) | 101) DIGI_GETAFLOW // Get Aux. startc/stopc flow control chars (('e'<<8) | 102) DIGI_SETAFLOW // Set Aux. startc/stopc flo // s390/char/hwc_rw.h =============================================================================== _IOW('B',0, _hwc_ioctls.width_htab) TIOCHWCSHTAB _IOW('B',1, _hwc_ioctls.echo) TIOCHWCSECHO _IOW('B',2, _hwc_ioctls.columns) TIOCHWCSCOLS _IOW('B',3, _hwc_ioctls.code) TIOCHWCSCODE _IOW('B',4, _hwc_ioctls.final_nl) TIOCHWCSNL _IOW('B',5, _hwc_ioctls.max_hwcb) TIOCHWCSOBUF _IO ('B',6) TIOCHWCSINIT _IOW('B',7, _hwc_ioctls.tolower) TIOCHWCSCASE _IOW('B',9, _hwc_ioctls.delim) TIOCHWCSDELIM _IOR('B',10, _hwc_ioctls.width_htab) TIOCHWCGHTAB _IOR('B',11, _hwc_ioctls.echo) TIOCHWCGECHO _IOR('B',12, _hwc_ioctls.columns) TIOCHWCGCOLS _IOR('B',13, _hwc_ioctls.code) TIOCHWCGCODE _IOR('B',14, _hwc_ioctls.final_nl) TIOCHWCGNL _IOR('B',15, _hwc_ioctls.max_hwcb) TIOCHWCGOBUF _IOR('B',16, _hwc_ioctls) TIOCHWCGINIT _IOR('B',17, _hwc_ioctls.tolower) TIOCHWCGCASE _IOR('B',19, _hwc_ioctls .delim) TIOCHWCGDELIM _IOR('B',20, _hwc_ioctls.max_hwcb) TIOCHWCGKBUF _IOR('B',21, _hwc_ioctls) TIOCHWCGCURR // drivers/char/pc110pad.h =============================================================================== // Appears as device major=10 (MISC), minor=PC110_PAD _IOR( 0x9a, 0, struct pc110pad_params) PC110PADIOCGETP _IOW( 0x9a, 1, struct pc110pad_params) PC110PADIOCSETP // drivers/char/planb.h =============================================================================== // include/linux/videodev.h _IOWR('v',192 , struct planb_saa_regs) PLANBIOCGSAAREGS // Read a saa7196 reg value _IOW('v', 192 + 1, struct planb_saa_regs) PLANBIOCSSAAREGS // Set a saa7196 reg value _IOR('v', 192 + 2, struct planb_stat_regs) PLANBIOCGSTAT // Read planb status _IOR('v', 192 + 3, int) PLANBIOCGMODE // Get TV/VTR mode _IOW('v', 192 + 4, int) PLANBIOCSMODE // Set TV/VTR mode _IOR('v', 192 + 5, int) PLANBG_GRAB_BPL // # of bytes per scanline in grab buffer // call wake_up_interruptible() with appropriate actions _IOW('v', 192 + 20, int) PLANB_INTR_DEBUG // investigate which reg does what _IOWR('v',192 + 21, struct planb_any_regs) PLANB_INV_REGS // drivers/net/cosa.h =============================================================================== _IO('C',0xf0) COSAIORSET // Reset the device _IOW('C',0xf1,sizeof(int)) COSAIOSTRT // Start microcode at given address _IOR('C',0xf2,sizeof(struct cosa_download *)) COSAIORMEM // Read the block from the device memory _IOW('C',0xf2,sizeof(struct cosa_download *)) COSAIODOWNLD // Write the block to the device memory _IOR('C',0xf3,sizeof(char *)) COSAIORTYPE // Read the device type _IOR('C',0xf4,sizeof(char *)) COSAIORIDSTR // Read the device identification string // _IO('C', 0xf7) COSAIONRCARDS // Get the total number of cards installed _IO('C', 0xf8) COSAIONRCHANS // Get the number of channels on this card _IOW('C',0xf9, sizeof(unsigned short)) COSAIOBMSET // Set the driver for bus-master operations _IO('C', 0xfa) COSAIOBMGET // Gets the busmaster status // Increment/decrement the module usage count :-) // #define COSAIOMINC _IO('C',0xf5) // #define COSAIOMDEC _IO('C',0xf6) // drivers/net/de4x5.h w/ sockios.h =============================================================================== SIOCDEVPRIVATE DE4X5IOCTL // drivers/net/depca.h w/ sockios.h =============================================================================== SIOCDEVPRIVATE DEPCAIOCTL // drivers/net/dgrs.h w/ sockios.h =============================================================================== SIOCDEVPRIVATE DGRSIOCTL // drivers/net/ewrk3.h w/ sockios.h =============================================================================== SIOCDEVPRIVATE EWRK3IOCTL // drivers/net/rcif.h =============================================================================== SIOCDEVPRIVATE RCU_PROTOCOL_REV SIOCDEVPRIVATE+1 RCU_COMMAND // drivers/net/rrunner.h =============================================================================== SIOCDEVPRIVATE SIOCRRPFW // put firmware SIOCDEVPRIVATE+1 SIOCRRGFW // get firmware SIOCDEVPRIVATE+2 SIOCRRID // identify // drivers/net/sis900.h =============================================================================== (SIOCDEVPRIVATE) SIOCGMIIPHY // Get the PHY in use. (SIOCDEVPRIVATE+1) SIOCGMIIREG // Read a PHY register. (SIOCDEVPRIVATE+2) SIOCSMIIREG // Write a PHY register // drivers/net/syncppp.h =============================================================================== (SIOCDEVPRIVATE) SPPPIOCCISCO (SIOCDEVPRIVATE+1) SPPPIOCPPP (SIOCDEVPRIVATE+2) SPPPIOCDEBUG // drivers/net/wavelan.p.h =============================================================================== SIOCDEVPRIVATE SIOCSIPQTHR // Set quality threshold SIOCDEVPRIVATE + 1 SIOCGIPQTHR // Get quality threshold SIOCDEVPRIVATE + 2 SIOCSIPLTHR // Set level threshold SIOCDEVPRIVATE + 3 SIOCGIPLTHR // Get level threshold SIOCDEVPRIVATE + 6 SIOCSIPHISTO // Set histogram ranges SIOCDEVPRIVATE + 7 SIOCGIPHISTO // Get histogram values // s390/block/dasd.h =============================================================================== _IO('D',0) BIODASDFORMAT // Format the volume or an extent _IO('D',1) BIODASDDISABLE // Disable the volume (for Linux) _IO('D',2) BIODASDENABLE // Enable the volume (for Linux) // Stuff for reading and writing the Label-Area to/from user space _IOR( 'D',3,dasd_volume_label_t) BIODASDGTVLBL _IOW( 'D',4,dasd_volume_label_t) BIODASDSTVLBL _IOWR('D',5,int) BIODASDRWTB _IOR( 'D',6,senseid_t) BIODASDRSID // isdn/divert/isdn_divert.h =============================================================================== // DIVERT_IIOC_VERSION 0x01 // actual version _IO('I', 1) IIOCGETVER // get version of interface _IO('I', 2) IIOCGETDRV // get driver number _IO('I', 3) IIOCGETNAM // get driver name _IO('I', 4) IIOCGETRULE // read one rule _IO('I', 5) IIOCMODRULE // modify/replace a rule _IO('I', 6) IIOCINSRULE // insert/append one rule _IO('I', 7) IIOCDELRULE // delete a rule _IO('I', 8) IIOCDODFACT // hangup/reject/alert/immediately deflect a call _IO('I', 9) IIOCDOCFACT // activate control forwarding in PBX _IO('I',10) IIOCDOCFDIS // deactivate control forwarding in PBX _IO('I',11) IIOCDOCFINT // interrogate control forwarding in PBX // isdn/pcbit/pcbit.h =============================================================================== // re include/isdn.h IIOCDRVCTL =_IO('I',128) (PCBIT_IOCTL_GETSTAT +IIOCDRVCTL) PCBIT_GETSTAT (PCBIT_IOCTL_LWMODE +IIOCDRVCTL) PCBIT_LWMODE (PCBIT_IOCTL_STRLOAD +IIOCDRVCTL) PCBIT_STRLOAD (PCBIT_IOCTL_ENDLOAD +IIOCDRVCTL) PCBIT_ENDLOAD (PCBIT_IOCTL_SETBYTE +IIOCDRVCTL) PCBIT_SETBYTE (PCBIT_IOCTL_GETBYTE +IIOCDRVCTL) PCBIT_GETBYTE (PCBIT_IOCTL_RUNNING +IIOCDRVCTL) PCBIT_RUNNING (PCBIT_IOCTL_WATCH188+IIOCDRVCTL) PCBIT_WATCH188 (PCBIT_IOCTL_PING188 +IIOCDRVCTL) PCBIT_PING188 (PCBIT_IOCTL_FWMODE +IIOCDRVCTL) PCBIT_FWMODE (PCBIT_IOCTL_STOP +IIOCDRVCTL) PCBIT_STOP (PCBIT_IOCTL_APION +IIOCDRVCTL) PCBIT_APION // -re- include/scsi/scsi_ioctl.h // drivers/scsi/gdth_ioctl.h =============================================================================== (('J'<<8)| 0) GDTIOCTL_GENERAL // general IOCTL (('J'<<8)| 1) GDTIOCTL_DRVERS // get driver version (('J'<<8)| 2) GDTIOCTL_CTRTYPE // get controller type (('J'<<8)| 3) GDTIOCTL_OSVERS // get OS version (('J'<<8)| 4) GDTIOCTL_HDRLIST // get host drive list (('J'<<8)| 5) GDTIOCTL_CTRCNT // get controller count (('J'<<8)| 6) GDTIOCTL_LOCKDRV // lock host drive (('J'<<8)| 7) GDTIOCTL_LOCKCHN // lock channel (('J'<<8)| 8) GDTIOCTL_EVENT // read controller events (('J'<<8)| 9) GDTIOCTL_SCSI // SCSI command (('J'<<8)|10) GDTIOCTL_RESET_BUS // reset SCSI bus // -re- vt ioctls, include/asm-i386/ioctls.h // include/asm-i386/termios.h, include/asm-i386/termbits.h // drivers/char/tty_ioctl.c, drivers/char/tty_io.c xec. TIO... ioctls =============================================================================== 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 * // get (main) window sizes, in chars 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 * // kernel 2.2.19 tioclinux functions, sub-codes per byte at <const char *>: 2: return set_selection(arg, tty, 1); // arg: struct (char subcode; short xstart,ystart,xend,yend,mode) // selection mode 0:by chars, 1:by words, 2:by lines 3: return paste_selection(tty); // writes chars from selection buffer to fd. 4: unblank_screen();return 0; 5: return sel_loadlut(arg); 6: data = shift_state;return __put_user(data, (char *) arg); // Make it possible to react to Shift+Mousebutton. // Note that 'shift_state' is an undocumented // kernel-internal variable; programs not closely // related to the kernel should not use this. 7: data = mouse_reporting();return __put_user(data, (char *) arg); 10: set_vesa_blanking(arg);return 0; // arg = 0:disable, 1:standby, 2:monitor off 11: kmsg_redirect = data;return 0; // set fd for kmsg redirection, dft fd=0 12: return fg_console; // get fg_console, current virtual console, dft fd=0 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 * 0x00005427 TIOCSBRK // BSD compatibility 0x00005428 TIOCCBRK // BSD compatibility 0x00005429 TIOCGSID // Return the session ID of FD _IOR('T',0x30, unsigned int) TIOCGPTN // Get Pty Number (of pty-mux device) _IOW('T',0x31, int) TIOCSPTLCK // Lock/unlock Pty 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 temios * 0x00005458 TIOCSERGSTRUCT struct async_struct * // debugging, re include/linux/serial.h 0x00005459 TIOCSERGETLSR int * // Get line status register 0x0000545A TIOCSERGETMULTI struct serial_multiport_struct * // Get multiport config 0x0000545B TIOCSERSETMULTI const struct serial_multiport_struct * // Set multiport config 0x0000545C TIOCMIWAIT // wait for a change on serial input line(s) 0x0000545D TIOCGICOUNT // read serial port inline interrupt counts 0x0000545E TIOCGHAYESESP // Get Hayes ESP configuration 0x0000545F TIOCSHAYESESP // Set Hayes ESP configuration // Used for packet mode 0 TIOCPKT_DATA 1 TIOCPKT_FLUSHREAD 2 TIOCPKT_FLUSHWRITE 4 TIOCPKT_STOP 8 TIOCPKT_START 16 TIOCPKT_NOSTOP 32 TIOCPKT_DOSTOP 1 TIOCSER_TEMT // Transmitter physically empty // include/linux/apm_bios.h =============================================================================== _IO('A', 1) APM_IOC_STANDBY _IO('A', 2) APM_IOC_SUSPEND // include/linux/atalk.h =============================================================================== // 0x000089E0 SIOCPROTOPRIVATE // ...89EF (SIOCPROTOPRIVATE + 0) SIOCATALKDIFADDR // include/linux/auto_fs.h =============================================================================== _IO(0x93,0x60) AUTOFS_IOC_READY _IO(0x93,0x61) AUTOFS_IOC_FAIL _IO(0x93,0x62) AUTOFS_IOC_CATATONIC _IOR(0x93,0x63,int) AUTOFS_IOC_PROTOVER _IOWR(0x93,0x64,unsigned long) AUTOFS_IOC_SETTIMEOUT _IOR(0x93,0x65,struct autofs_packet_expire) AUTOFS_IOC_EXPIRE // include/linux/netrom.h // 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 // extensions, used to get at special stuff. 0x00007350 STL_GETPFLAG // _IO('s',80) 0x00007351 STL_SETPFLAG // _IO('s',81) // include/linux/cdrom.h =============================================================================== // When a driver supports a certain function, but the cdrom drive we are using // doesn't, we will return the error EDRIVE_CANT_DO_THIS. We will borrow the // "Operation not supported" error from the network folks EOPNOTSUPP EDRIVE_CANT_DO_THIS // The CD-ROM IOCTL commands -- these should be supported by all the various cdrom drivers. ------------------------------------------------------------------------------------------------- 0x5301 CDROMPAUSE void // Pause Audio Operation 0x5302 CDROMRESUME void // Resume paused Audio Operation 0x5303 CDROMPLAYMSF const struct cdrom_msf // Play Audio MSF (struct cdrom_msf) 0x5304 CDROMPLAYTRKIND const struct cdrom_ti // Play Audio Track/index 0x5305 CDROMREADTOCHDR struct cdrom_tochdr // Read TOC header 0x5306 CDROMREADTOCENTRY struct cdrom_tocentry // Read TOC entry 0x5307 CDROMSTOP void // Stop the cdrom drive 0x5308 CDROMSTART void // Start the cdrom drive 0x5309 CDROMEJECT void // Ejects the cdrom media 0x530A CDROMVOLCTRL const struct cdrom_volctrl // Control output volume 0x530B CDROMSUBCHNL struct cdrom_subchnl // Read subchannel data 0x530C CDROMREADMODE2 const struct cdrom_read // Read CDROM mode 2 data (2336 Bytes) 0x530D CDROMREADMODE1 const struct cdrom_read // Read CDROM mode 1 data (2048 Bytes) 0x530E CDROMREADAUDIO const struct cdrom_read_audio // MORE 0x530F CDROMEJECT_SW int // enable[1], disable[0] auto-ejecting 0x5310 CDROMMULTISESSION struct cdrom_multisession * // Obtain start-of-last-session address // of multi session disks 0x5311 CDROM_GET_MCN struct cdrom_mcn // Obtain "Universal Product Code" if available 0x5311 CDROM_GET_UPC struct { char [8]; } // This one is deprecated, for compatability 0x5312 CDROMRESET void // hard-reset the drive 0x5313 CDROMVOLREAD struct cdrom_volctrl // Get the drive's volume setting 0x5314 CDROMREADRAW const struct cdrom_read // read data in raw mode (2352 Bytes) // aztcd.c and optcd.c: 0x5315 CDROMREADCOOKED const struct cdrom_msf // read data in cooked mode 0x5316 CDROMSEEK const struct cdrom_msf // seek msf address // scsi-cd driver; for playing audio in logical block addressing mode: 0x5317 CDROMPLAYBLK struct cdrom_blk // optcd.c: 0x5318 CDROMREADALL // read all 2646 bytes 0x5319 CDROMCLOSETRAY // pendant of CDROMEJECT // implemented through the uniform CD-ROM driver: // will be adopted by all CD-ROM drivers once all CD-ROM drivers // are eventually ported to the uniform CD-ROM driver interface. 0x5320 CDROM_SET_OPTIONS // Set behaviour options 0x5321 CDROM_CLEAR_OPTIONS // Clear behaviour options 0x5322 CDROM_SELECT_SPEED // Set the CD-ROM speed 0x5323 CDROM_SELECT_DISC // Select disc (for juke-boxes) 0x5325 CDROM_MEDIA_CHANGED // Check is media changed 0x5326 CDROM_DRIVE_STATUS // Get tray position, etc. 0x5327 CDROM_DISC_STATUS // Get disc type, etc. 0x5328 CDROM_CHANGER_NSLOTS // Get number of slots 0x5329 CDROM_LOCKDOOR // lock or unlock door 0x5330 CDROM_DEBUG // Turn debug messages on/off 0x5331 CDROM_GET_CAPABILITY // get capabilities // only by sbpcd (currently) 0x5382 CDROMAUDIOBUFSIZ // set the audio buffer size // DVD-ROM Specific ioctls 0x5390 DVD_READ_STRUCT // Read structure 0x5391 DVD_WRITE_STRUCT // Write structure 0x5392 DVD_AUTH // Authentication 0x5393 CDROM_SEND_PACKET // send a packet to the drive 0x5394 CDROM_NEXT_WRITABLE // get next writable block 0x5395 CDROM_LAST_WRITTEN // get last block written on disc // include/linux/coda.h =============================================================================== // -/- // include/linux/comstats.h =============================================================================== _IO('c',30) COM_GETPORTSTATS _IO('c',31) COM_CLRPORTSTATS _IO('c',32) COM_GETBRDSTATS _IO('c',40) COM_READPORT _IO('c',41) COM_READBOARD _IO('c',42) COM_READPANEL // 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/dtlk.h =============================================================================== 0x0000a390 DTLK_INTERROGATE // get settings from the DoubleTalk 0x0000a391 DTLK_STATUS // get status from the DoubleTalk // 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/ext3_fs.h (2.4.19) =============================================================================== _IOR('f', 1, long) EXT3_IOC_GETFLAGS _IOW('f', 2, long) EXT3_IOC_SETFLAGS _IOR('f', 3, long) EXT3_IOC_GETVERSION _IOW('f', 4, long) EXT3_IOC_SETVERSION _IOR('v', 1, long) EXT3_IOC_GETVERSION_OLD _IOW('v', 2, long) EXT3_IOC_SETVERSION_OLD #ifdef CONFIG_JBD_DEBUG _IOR('f', 99, long) EXT3_IOC_WAIT_FOR_READONLY #endif // include/linux/fb.h =============================================================================== 0x00004600 FBIOGET_VSCREENINFO 0x00004601 FBIOPUT_VSCREENINFO 0x00004602 FBIOGET_FSCREENINFO 0x00004604 FBIOGETCMAP 0x00004605 FBIOPUTCMAP 0x00004606 FBIOPAN_DISPLAY // Preliminary, Hardware Cursor 0x00004607 FBIOGET_FCURSORINFO 0x00004608 FBIOGET_VCURSORINFO 0x00004609 FBIOPUT_VCURSORINFO 0x0000460A FBIOGET_CURSORSTATE 0x0000460B FBIOPUT_CURSORSTATE // FBIOGET_MONITORSPEC 0x0000460C // FBIOPUT_MONITORSPEC 0x0000460D // FBIOSWITCH_MONIBIT 0x0000460E 0x0000460F FBIOGET_CON2FBMAP 0x00004610 FBIOPUT_CON2FBMAP 0x00004611 FBIOBLANK // arg: 0 or vesa level + 1 // include/linux/fd.h comment from <fdutils> package (shortened) =============================================================================== 0x0000 FDCLRPRM void clear driver geom data for given drive (force autodetect) 0x0001 FDSETPRM c s floppy_struct* set geom (no. of tracks, heads, sectors, &c) 0x0002 FDDEFPRM c s floppy_struct* set geom permanently (persistent after disk change) 0x0003 FDGETPRM s floppy_struct* read back previously set drive geometry (or autodetected) 0x0004 FDMSGON void enable informational messages. 0x0005 FDMSGOFF void disable informational messages. 0x0006 FDFMTBEG void . 0x0007 FDFMTTRK c s format_descr* . 0x0008 FDFMTEND void . 0x000A FDSETEMSGTRESH int . 0x000B FDFLUSH void clear floppy buffers - discard currently cached data. 0x000C FDSETMAXERRS c s floppy_max_errors* set error messaging & abortion thresholds. 0x000E FDGETMAXERRS s floppy_max_errors* . 0x0010 FDGETDRVTYP s { char [16]; }* fetch type string of a drive (name parameter). 0x0014 FDSETDRVPRM c s floppy_drive_params* set various drive parameters. 0x0015 FDGETDRVPRM s floppy_drive_params* read these parameters back. 0x0016 FDGETDRVSTAT s floppy_drive_struct* get cached drive state (disk changed, write protected &c) 0x0017 FDPOLLDRVSTAT s floppy_drive_struct* poll drive and return its state. 0x0018 FDRESET int reset the floppy controller under certain conditions. 0x0019 FDGETFDCSTAT s floppy_fdc_state* get floppy controller state. 0x001B FDWERRORCLR void clear write error stats. 0x001C FDWERRORGET s floppy_write_errors* get write error stats. 0x001E FDRAWCMD s floppy_raw_cmd* send raw command to floppy controller. 0x0028 FDTWADDLE void . // include/linux/fs.h =============================================================================== 0x0000125D BLKROSET const int // set device read-only (0 = read-write) 0x0000125E BLKROGET int // get read-only status (0 = read_write) 0x0000125F BLKRRPART void // re-read partition table 0x00001260 BLKGETSIZE int // return device size 0x00001261 BLKFLSBUF void // flush buffer cache 0x00001262 BLKRASET int // Set read ahead for block device 0x00001263 BLKRAGET int // get current read ahead setting 0x00001264 BLKFRASET // set filesystem (mm/filemap.c) read-ahead 0x00001265 BLKFRAGET // get filesystem (mm/filemap.c) read-ahead 0x00001266 BLKSECTSET // set max sectors per request (ll_rw_blk.c) 0x00001267 BLKSECTGET // get max sectors per request (ll_rw_blk.c) 0x00001268 BLKSSZGET // get block device sector size 1 BMAP_IOCTL // obsolete - kept for compatibility 0x00000001 FIBMAP int // bmap access 0x00000002 FIGETBSZ int // get the block size used for bmap // include/linux/hdreg.h =============================================================================== // hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n 0x00000301 HDIO_GETGEO struct hd_geometry // get device geometry 0x00000302 HDIO_GET_UNMASKINTR int // get current unmask setting 0x00000304 HDIO_GET_MULTCOUNT int // get current IDE blockmode setting // 0x00000307 HDIO_GET_IDENTITY struct hd_driveid 0x00000307 HDIO_OBSOLETE_IDENTITY // OBSOLETE, DO NOT USE: returns 142 bytes 0x00000308 HDIO_GET_KEEPSETTINGS int // get keep-settings-on-reset flag // 0x00000309 HDIO_GET_CHIPSET int 0x00000309 HDIO_GET_32BIT // get current io_32bit setting 0x0000030A HDIO_GET_NOWERR int // get ignore-write-error flag 0x0000030B HDIO_GET_DMA int // get use-dma flag 0x0000030c HDIO_GET_NICE // get nice flags 0x0000030d HDIO_GET_IDENTITY // get IDE identification info 0x0000031f HDIO_DRIVE_CMD // execute a special drive command 0x0000031F HDIO_DRIVE_CMD int // NOTE: n.n. w/ 2.2 kernel ! // hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n 0x00000321 HDIO_SET_MULTCOUNT int // change IDE blockmode 0x00000322 HDIO_SET_UNMASKINTR int // permit other irqs during I/O 0x00000323 HDIO_SET_KEEPSETTINGS int // keep ioctl settings on reset // 0x00000324 HDIO_SET_CHIPSET int 0x00000324 HDIO_SET_32BIT // change io_32bit flags 0x00000325 HDIO_SET_NOWERR int // change ignore-write-error flag 0x00000326 HDIO_SET_DMA int // change use-dma flag 0x00000327 HDIO_SET_PIO_MODE // reconfig interface to new speed 0x00000328 HDIO_SCAN_HWIF // register and (re)scan interface 0x00000329 HDIO_SET_NICE // set nice flags 0x0000032a HDIO_UNREGISTER_HWIF // unregister interface // 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_frad.h // for the actual Frame Relay hw =============================================================================== (SIOCDEVPRIVATE) FRAD_GET_CONF (SIOCDEVPRIVATE + 1) FRAD_SET_CONF FRAD_SET_CONF FRAD_LAST_IOCTL // include/linux/isdn_ppp.h =============================================================================== _IOWR('t',128,struct pppcallinfo) PPPIOCGCALLINFO _IOW('t',129,int) PPPIOCBUNDLE _IOR('t',130,int) PPPIOCGMPFLAGS // get configuration flags _IOW('t',131,int) PPPIOCSMPFLAGS // get configuration flags _IOW('t',132,int) PPPIOCSMPMTU _IOW('t',133,int) PPPIOCSMPMRU _IOR('t',134,unsigned long[8]) PPPIOCGCOMPRESSORS _IOW('t',135,int) PPPIOCSCOMPRESSOR _IOR('t',136,char[IFNAMSIZ]) PPPIOCGIFNAME // re include/linux/if_ppp.h, Documentation/networking/ppp_generic.txt _IOW('t', 82, int) PPPIOCSMRU // set receive unit size for PPP _IOWR('t', 62, int) PPPIOCGUNIT // get ppp/isdn unit number _IOR('t', 90, int) PPPIOCGFLAGS // get configuration flags _IOW('t', 89, int) PPPIOCSFLAGS // set configuration flags _IOR('t', 63, struct ppp_idle) PPPIOCGIDLE // get idle time information _IOW('t', 81, int) PPPIOCSMAXCID // set the maximum compression slot id // include/linux/if_ppp.h =============================================================================== // 't', 0x0074xx _IOR('t', 90, int) PPPIOCGFLAGS // get configuration flags _IOW('t', 89, int) PPPIOCSFLAGS // set configuration flags // bitflags 0x0f200fff SC_MASK // bits that user can change 0x00000001 SC_COMP_PROT // protocol compression (output) 0x00000002 SC_COMP_AC // header compression (output) 0x00000004 SC_COMP_TCP // enable transmit TCP header compression (VJ, output) 0x00000008 SC_NO_TCP_CCID // disable connection-id compression for TCP header compression 0x00000010 SC_REJ_COMP_AC // reject adrs/ctrl comp. on input 0x00000020 SC_REJ_COMP_TCP // reject TCP (VJ) comp. on input, disable receive TCP header decompression 0x00000040 SC_CCP_OPEN // Compression Control Protocol (CCP) is open, so inspect CCP packets 0x00000080 SC_CCP_UP // CCP is up, may send/recv compressed packets 0x00000100 SC_ENABLE_IP // IP packets may be exchanged 0x00000200 SC_LOOP_TRAFFIC // send traffic to pppd 0x00000400 SC_MULTILINK // do multilink encapsulation, enable PPP multilink fragmentation on transmitted packets 0x00000800 SC_MP_SHORTSEQ // expect short multilink sequence numbers on received multilink fragments 0x00001000 SC_COMP_RUN // compressor has been inited 0x00002000 SC_DECOMP_RUN // decompressor has been inited 0x00004000 SC_MP_XSHORTSEQ // transmit short multilink sequence numbers 0x00010000 SC_DEBUG // enable debug messages 0x00020000 SC_LOG_INPKT // log contents of good pkts recvd 0x00040000 SC_LOG_OUTPKT // log contents of pkts sent 0x00080000 SC_LOG_RAWIN // log all chars received 0x00100000 SC_LOG_FLUSH // log all chars flushed 0x00200000 SC_SYNC // synchronous serial mode // state bits 0x10000000 SC_XMIT_BUSY // (used by isdn_ppp?) 0x08000000 SC_RCV_ODDP // have rcvd char with odd parity 0x04000000 SC_RCV_EVNP // have rcvd char with even parity 0x02000000 SC_RCV_B7_1 // have rcvd char with bit 7 = 1 0x01000000 SC_RCV_B7_0 // have rcvd char with bit 7 = 0 0x00800000 SC_DC_FERROR // fatal decomp error detected 0x00400000 SC_DC_ERROR // non-fatal decomp error detected _IOR('t', 88, int) PPPIOCGASYNCMAP // get async map _IOW('t', 87, int) PPPIOCSASYNCMAP // set async map _IOR('t', 86, int) PPPIOCGUNIT // get ppp unit number _IOR('t', 85, int) PPPIOCGRASYNCMAP // get receive async map _IOW('t', 84, int) PPPIOCSRASYNCMAP // set receive async map _IOR('t', 83, int) PPPIOCGMRU // get max receive unit _IOW('t', 82, int) PPPIOCSMRU // set max receive unit // Packet sizes 1500 PPP_MTU // Default MTU (size of Info field) 65000 PPP_MAXMRU // Largest MRU we allow 0x002b PROTO_IPX // protocol numbers 0x0027 PROTO_DNA_RT // DNA Routing _IOW('t', 81, int) PPPIOCSMAXCID // set VJ max slot ID _IOR('t', 80, ext_accm) PPPIOCGXASYNCMAP // get extended ACCM _IOW('t', 79, ext_accm) PPPIOCSXASYNCMAP // set extended ACCM _IO('t', 78) PPPIOCXFERUNIT // transfer PPP unit _IOW('t', 77, struct ppp_option_data) PPPIOCSCOMPRESS _IOWR('t',76, struct npioctl) PPPIOCGNPMODE // get NP mode _IOW('t', 75, struct npioctl) PPPIOCSNPMODE // set NP mode _IOR('t', 65, int) PPPIOCGDEBUG // Read debug level _IOW('t', 64, int) PPPIOCSDEBUG // Set debug level _IOR('t', 63, struct ppp_idle) PPPIOCGIDLE // get idle time _IOWR('t', 62, int) PPPIOCNEWUNIT // create new ppp unit _IOW('t', 61, int) PPPIOCATTACH // attach to ppp unit _IOW('t', 60, int) PPPIOCDETACH // detach from ppp unit/chan _IOW('t', 59, int) PPPIOCSMRRU // set multilink MRU _IOW('t', 58, int) PPPIOCCONNECT // connect channel to unit _IO('t', 57) PPPIOCDISCONN // disconnect channel _IOW('t', 56, int) PPPIOCATTCHAN // attach to ppp channel _IOR('t', 55, int) PPPIOCGCHAN // get ppp channel number (SIOCDEVPRIVATE + 0) SIOCGPPPSTATS (SIOCDEVPRIVATE + 1) SIOCGPPPVER (SIOCDEVPRIVATE + 2) SIOCGPPPCSTATS // include/linux/if_slip.h =============================================================================== // VSV = ioctl for keepalive & outfill in SLIP driver (SIOCDEVPRIVATE) SIOCSKEEPALIVE // Set keepalive timeout in sec (SIOCDEVPRIVATE+1) SIOCGKEEPALIVE // Get keepalive timeout (SIOCDEVPRIVATE+2) SIOCSOUTFILL // Set outfill timeout (SIOCDEVPRIVATE+3) SIOCGOUTFILL // Get outfill timeout (SIOCDEVPRIVATE+4) SIOCSLEASE // Set "leased" line type (SIOCDEVPRIVATE+5) SIOCGLEASE // Get line type // include/linux/ipx.h =============================================================================== 0x000089E0 SIOCAIPXITFCRT // const char * 0x000089E1 SIOCAIPXPRISLT // const char * 0x000089E2 SIOCIPXCFGDATA // struct ipx_config_data * 0x000089E3 SIOCIPXNCPCONN // include/linux/if_plip.h =============================================================================== 0x000089F0 SIOCDEVPLIP struct ifreq * // I-O // include/linux/isdn.h =============================================================================== _IO('I',1) IIOCNETAIF _IO('I',2) IIOCNETDIF _IO('I',3) IIOCNETSCF _IO('I',4) IIOCNETGCF _IO('I',5) IIOCNETANM _IO('I',6) IIOCNETDNM _IO('I',7) IIOCNETGNM _IO('I',10) IIOCSETVER _IO('I',11) IIOCNETHUP _IO('I',12) IIOCSETGST _IO('I',13) IIOCSETBRJ _IO('I',14) IIOCSIGPRF _IO('I',15) IIOCGETPRF _IO('I',16) IIOCSETPRF _IO('I',17) IIOCGETMAP _IO('I',18) IIOCSETMAP _IO('I',19) IIOCNETASL _IO('I',20) IIOCNETDIL _IO('I',21) IIOCGETCPS _IO('I',22) IIOCGETDVR _IO('I',23) IIOCNETLCR // dwabc ioctl for LCR from isdnlog _IO('I',24) IIOCNETDWRSET // dwabc ioctl to reset abc-values to default on a net-interface _IO('I',32) IIOCNETALN _IO('I',33) IIOCNETDLN _IO('I',34) IIOCNETGPN _IO('I',127) IIOCDBGVAR _IO('I',128) IIOCDRVCTL // include/linux/ixjuser.h =============================================================================== // re source/header file for aliased defn's and some documentation _IO ('q', 0xC0) IXJCTL_DSP_RESET _IOR ('q', 0xC1, int) IXJCTL_CARDTYPE _IOR ('q', 0xC2, int) IXJCTL_SERIAL _IOR ('q', 0xC3, int) IXJCTL_DSP_TYPE _IOR ('q', 0xC4, int) IXJCTL_DSP_VERSION _IO ('q', 0xC5) IXJCTL_DSP_IDLE _IO ('q', 0xC6) IXJCTL_TESTRAM _IOW ('q', 0xC7, IXJ_FILTER *) IXJCTL_SET_FILTER _IOW ('q', 0xC8, int) IXJCTL_GET_FILTER_HIST _IOW ('q', 0xC9, IXJ_TONE *) IXJCTL_INIT_TONE _IOW ('q', 0xCA, IXJ_CADENCE *) IXJCTL_TONE_CADENCE _IOW ('q', 0xCB, int) IXJCTL_AEC_START _IO ('q', 0xCC) IXJCTL_AEC_STOP _IO ('q', 0xCD) IXJCTL_AEC_GET_LEVEL _IOW ('q', 0xCE, int) IXJCTL_SET_LED _IOW ('q', 0xCF, int) IXJCTL_MIXER _IOW ('q', 0xD0, int) IXJCTL_DAA_COEFF_SET _IOW ('q', 0xD1, int) IXJCTL_PORT _IOW ('q', 0xD2, int) IXJCTL_DAA_AGAIN _IO ('q', 0xD3) IXJCTL_PSTN_LINETEST _IOR ('q', 0xD4, IXJ_CID *) IXJCTL_CID _IOW ('q', 0xD5, int) IXJCTL_POTS_PSTN _IOW ('q', 0xE0, int) IXJCTL_HZ _IOW ('q', 0xE1, int) IXJCTL_RATE _IOR ('q', 0xE2, unsigned long) IXJCTL_FRAMES_READ _IOR ('q', 0xE3, unsigned long) IXJCTL_FRAMES_WRITTEN _IOR ('q', 0xE4, unsigned long) IXJCTL_READ_WAIT _IOR ('q', 0xE5, unsigned long) IXJCTL_WRITE_WAIT _IOR ('q', 0xE6, unsigned long) IXJCTL_DRYBUFFER_READ _IO ('q', 0xE7) IXJCTL_DRYBUFFER_CLEAR _IOW ('q', 0xFD, int) IXJCTL_INTERCOM_START _IOW ('q', 0xFE, int) IXJCTL_INTERCOM_STOP // include/linux/joystick.h =============================================================================== _IOR('j', 0x01, __u32) JSIOCGVERSION // get driver version _IOR('j', 0x11, __u8) JSIOCGAXES // get number of axes _IOR('j', 0x12, __u8) JSIOCGBUTTONS // get number of buttons _IOC(_IOC_READ, 'j', 0x13, len) JSIOCGNAME(len) // get identifier string _IOW('j', 0x21, struct js_corr) JSIOCSCORR // set correction values _IOR('j', 0x22, struct js_corr) JSIOCGCORR // get correction values // include/linux/kd.h =============================================================================== // used: 0x4B60-0x4B6D, 0x4B70-0x4B72; re man 4 console_ioctls // console_ioctls // NOTE: those ioctls, if applied to /dev/console, modify global settings // (lx 2,2,2.4), e.g. a re-defined F-key would equally appear in #all# consoles/tty-s. // re man 1 loadkeys. // 0x4B, 'K', to avoid collision with termios and vt 0x00004B2F KIOCSOUND int // start sound generation (0 for off 0x00004B30 KDMKTONE int // generate tone 0x00004B31 KDGETLED char // return current led state 0x00004B32 KDSETLED int // set led state [lights, not flags] 0x00004B33 KDGKBTYPE char // get keyboard type 0x00004B34 KDADDIO int // add i/o port as valid 0x00004B35 KDDELIO int // del i/o port as valid 0x00004B36 KDENABIO void // enable i/o to video board 0x00004B37 KDDISABIO void // disable i/o to video board 0x00004B3A KDSETMODE int // set text/graphics mode 0x00 KD_TEXT 0x01 KD_GRAPHICS 0x02 KD_TEXT0 // obsolete 0x03 KD_TEXT1 // obsolete 0x00004B3B KDGETMODE int // get current mode 0x00004B3C KDMAPDISP void // map display into address space (n.i.) 0x00004B3D KDUNMAPDISP void // unmap display from address space (n.i.) 0x00004B40 GIO_SCRNMAP struct {char[E_TABSZ];} // get screen mapping from kernel 256 E_TABSZ 0x00004B41 PIO_SCRNMAP const struct {char[E_TABSZ];} // put screen mapping table 0x00004B44 KDGKBMODE int // get current keyboard mode 0x00004B45 KDSKBMODE int // set current keyboard mode 0x00004B46 KDGKBENT struct kbentry // get one entry in translation table 0x00004B47 KDSKBENT const struct kbentry // set one entry in translation table 0x00004B48 KDGKBSENT struct kbsentry // get one function key string entry 0x00004B49 KDSKBSENT const struct kbsentry // set one function key string entry 0x00004B4A KDGKBDIACR struct kbdiacrs // read kernel accent table 0x00004B4B KDSKBDIACR const struct kbdiacrs // write kernel accent table 0x00004B4C KDGETKEYCODE struct kbkeycode // read kernel keycode table entry 0x00004B4D KDSETKEYCODE const struct kbkeycode // write kernel keycode table entry 0x00004B4E KDSIGACCEPT int // accept kbd generated signals 0x00004B50 KDGHWCLK struct hwclk_time // get hardware clock 0x00004B51 KDSHWCLK struct hwclk_time // set hardware clock 0x00004B52 KDKBDREP struct kbd_repeat // set keyboard delay/repeat rate; ret actually used values 0x00004B60 GIO_FONT struct { char [8192]; } // get font in expanded form 0x00004B61 PIO_FONT const struct { char [8192]; } // use font in expanded form 0x00004B62 KDGKBMETA int // gets meta key handling mode 0x00004B63 KDSKBMETA int // sets meta key handling mode 0x00004B64 KDGKBLED int // get led flags 0x00004B65 KDSKBLED int // set led flags 0x00004B66 GIO_UNIMAP struct unimapdesc // get unicode-to-font mapping from kernel 0x00004B67 PIO_UNIMAP const struct unimapdesc // put unicode-to-font mapping in kernel 0x00004B68 PIO_UNIMAPCLR const struct unimapinit // clear table, possibly advise hash algorithm 0x00004B69 GIO_UNISCRNMAP struct {short[E_TABSZ];} // get full Unicode screen mapping 0x00004B6A PIO_UNISCRNMAP const struct {short[E_TABSZ];} // set full Unicode screen mapping 0x00004B6B GIO_FONTX struct console_font_desc // get font 0x00004B6C PIO_FONTX const struct console_font_desc // set font 0x00004B6D PIO_FONTRESET // reset to default font 0x00004B70 GIO_CMAP struct { char [48]; } // get colour palette on VGA+ 0x00004B71 PIO_CMAP const struct { char [48]; } // set colour palette on VGA+ 0x00004B72 KDFONTOP struct console_font_op // font operations // include/linux/loop.h =============================================================================== 0x00004C00 LOOP_SET_FD 0x00004C01 LOOP_CLR_FD 0x00004C02 LOOP_SET_STATUS 0x00004C03 LOOP_GET_STATUS // include/linux/lp.h // include/linux/lp_m68k.h =============================================================================== 0x00000601 LPCHAR int // corresponds to LP_INIT_CHAR 0x00000602 LPTIME int // corresponds to LP_INIT_TIME 0x00000604 LPABORT int // TRUE arg abort on error, FALSE retry (dft). 0x00000605 LPSETIRQ int // call with new IRQ no., 0 for polling (no IRQ) 0x00000606 LPGETIRQ int // get the current IRQ number 0x00000608 LPWAIT int // corresponds to LP_INIT_WAIT // NOTE: LPCAREFUL is obsoleted and it' s always the default right now 0x00000609 LPCAREFUL int // call with TRUE arg to require... // // ...out-of-paper, off-line, and error indicators good on all writes, FALSE to ignore (dft). 0x0000060A LPABORTOPEN int // TRUE arg to abort open() on error, FALSE to ignore error (dft). 0x0000060B LPGETSTATUS int // return LP_S(minor) 0x0000060C LPRESET void // reset printer 0x0000060D LPGETSTATS struct lp_stats // get statistics 0x0000060e LPGETFLAGS // get status flags 0x0000060f LPTRUSTIRQ // set/unset the LP_TRUST_IRQ flag // include/linux/mc146818rtc.h =============================================================================== _IO('p', 0x01) RTC_AIE_ON // Alarm int. enable on _IO('p', 0x02) RTC_AIE_OFF // ... off _IO('p', 0x03) RTC_UIE_ON // Update int. enable on _IO('p', 0x04) RTC_UIE_OFF // ... off _IO('p', 0x05) RTC_PIE_ON // Periodic int. enable on _IO('p', 0x06) RTC_PIE_OFF // ... off _IOW('p', 0x07, struct rtc_time) RTC_ALM_SET // Set alarm time _IOR('p', 0x08, struct rtc_time) RTC_ALM_READ // Read alarm time _IOR('p', 0x09, struct rtc_time) RTC_RD_TIME // Read RTC time _IOW('p', 0x0a, struct rtc_time) RTC_SET_TIME // Set RTC time _IOR('p', 0x0b, unsigned long) RTC_IRQP_READ // Read IRQ rate _IOW('p', 0x0c, unsigned long) RTC_IRQP_SET // Set IRQ rate _IOR('p', 0x0d, unsigned long) RTC_EPOCH_READ // Read epoch _IOW('p', 0x0e, unsigned long) RTC_EPOCH_SET // Set epoch // include/linux/md.h =============================================================================== _IO (MD_MAJOR,1) REGISTER_DEV _IO (MD_MAJOR,2) START_MD _IO (MD_MAJOR,3) STOP_MD _IO (MD_MAJOR,4) REGISTER_DEV_NEW // include/linux/mroute.h =============================================================================== 0x000089E0 SIOCGETVIFCNT struct sioc_vif_req // I-O 0x000089E1 SIOCGETSGCNT struct sioc_sg_req // I-O 0x000089E2 SIOCGETRPF // include/linux/msdos_fs.h =============================================================================== _IOR('r', 1, struct dirent [2]) VFAT_IOCTL_READDIR_BOTH _IOR('r', 2, struct dirent [2]) VFAT_IOCTL_READDIR_SHORT // include/linux/mtio.h =============================================================================== // mag tape MTIOCTOP _IOW('m', 1, struct mtop) // do a mag tape op MTIOCGET _IOR('m', 2, struct mtget) // get tape status MTIOCPOS _IOR('m', 3, struct mtpos) // get tape position // QIC-02 driver for runtime reconfiguration. MTIOCGETCONFIG _IOR('m', 4, struct mtconfiginfo) // get tape config MTIOCSETCONFIG _IOW('m', 5, struct mtconfiginfo) // set tape config // floppy ftape drivers and its frontends MTIOCRDFTSEG _IOWR('m', 6, struct mtftseg) // read a segment MTIOCWRFTSEG _IOWR('m', 7, struct mtftseg) // write a segment MTIOCVOLINFO _IOR('m', 8, struct mtvolinfo) // info about volume MTIOCGETSIZE _IOR('m', 9, struct mttapesize) // get cartridge size MTIOCFTFORMAT _IOWR('m', 10, struct mtftformat) // format ftape MTIOCFTCMD _IOWR('m', 11, struct mtftcmd) // send QIC-117 cmd // include/linux/ncp.h // include/linux/ncp_fs.h =============================================================================== NCP_IOC_NCPREQUEST _IOR('n', 1, struct ncp_ioctl_request) NCP_IOC_GETMOUNTUID _IOW('n', 2, __kernel_uid_t) // remove after ncpfs-2.0.13 gets released or at the beginning of kernel-2.1. codefreeze // [ 2.2.14: still in there, promises... ] _IOW('n', 2, unsigned int) NCP_IOC_GETMOUNTUID_INT _IO( 'n', 3) NCP_IOC_CONN_LOGGED_IN _IOWR('n',4, struct ncp_fs_info) NCP_IOC_GET_FS_INFO _IOR('n', 5, struct ncp_sign_init) NCP_IOC_SIGN_INIT _IOR('n', 6, int) NCP_IOC_SIGN_WANTED _IOW('n', 6, int) NCP_IOC_SET_SIGN_WANTED _IOR('n', 7, struct ncp_lock_ioctl) NCP_IOC_LOCKUNLOCK _IOW('n', 8, struct ncp_setroot_ioctl) NCP_IOC_GETROOT _IOR('n', 8, struct ncp_setroot_ioctl) NCP_IOC_SETROOT _IOWR('n',9, struct ncp_objectname_ioctl) NCP_IOC_GETOBJECTNAME _IOR('n', 9, struct ncp_objectname_ioctl) NCP_IOC_SETOBJECTNAME _IOWR('n',10,struct ncp_privatedata_ioctl) NCP_IOC_GETPRIVATEDATA _IOR('n', 10,struct ncp_privatedata_ioctl) NCP_IOC_SETPRIVATEDATA _IOWR('n',11,struct ncp_nls_ioctl) NCP_IOC_GETCHARSETS _IOR('n', 11,struct ncp_nls_ioctl) NCP_IOC_SETCHARSETS // include/linux/netrom.h =============================================================================== 0x000089E2 SIOCNRDECOBS void // include/linux/nvram.h =============================================================================== _IO('p', 0x40) NVRAM_INIT // initialize NVRAM and set checksum _IO('p', 0x41) NVRAM_SETCKS // recalculate checksum // -re- include/linux/vt.h, console ioctls // drivers/char/pty.c =============================================================================== 0x00005001 TTY_DRIVER_MAGIC _IOR('T',0x30,unsigned int) TIOCGPTN // unix98: Get PT Number (of pty-mux device) _IOW('T',0x31,int) TIOCSPTLCK // bsd: w/ arg=0: un-/ =/=0: set PT Lock (disallow slave open) // include/linux/random.h =============================================================================== _IOR('R',0x00,int) RNDGETENTCNT // Get entropy count _IOW('R',0x01,int ) RNDADDTOENTCNT // Add/subtract to/from entropy count _IOR('R',0x02,int[2]) RNDGETPOOL // Get contents of entropy pool. _IOW('R',0x03,int[2]) RNDADDENTROPY // Write bytes into entropy pool, add to entropy count. _IO( 'R',0x04 ) RNDZAPENTCNT // Clear entropy count to 0. _IO( 'R',0x06 ) RNDCLEARPOOL // Clear the entropy pool and associated counters. // drivers/cdrom/sbpcd.h =============================================================================== 0x00009000 DDIOCSDBG const int * 0x00005382 CDROMAUDIOBUFSIZ int // include/linux/scc.h =============================================================================== 0x000089F0 SIOCSCCRESERVED // = SIOCDEVPRIVATE, 0x000089F1 SIOCSCCCFG 0x00008932 SIOCSCCINI 0x000089F4 SIOCSCCCHANINI 0x000089F5 SIOCSCCSMEM 0x000089F6 SIOCSCCGKISS 0x000089F7 SIOCSCCSKISS 0x000089F8 SIOCSCCGSTAT 0x000089F9 SIOCSCCCAL // include/scsi/scsi_ioctl.h =============================================================================== // The door lock/unlock constants are compatible with Sun constants for the cdrom 0x00005380 SCSI_IOCTL_DOORLOCK // lock the eject mechanism 0x00005381 SCSI_IOCTL_DOORUNLOCK // unlock the mechanism // include/scsi/scsi.h =============================================================================== 0x00005382 SCSI_IOCTL_GET_IDLUN struct { int [2]; } 0x00005383 SCSI_IOCTL_TAGGED_ENABLE void // turn on/off tagged queuing 0x00005384 SCSI_IOCTL_TAGGED_DISABLE void 0x00005385 SCSI_IOCTL_PROBE_HOST const int // obtain host number 0x00005386 SCSI_IOCTL_GET_BUS_NUMBER // get bus number 0x00005380 SCSI_IOCTL_DOORLOCK // lock eject mechanism 0x00005381 SCSI_IOCTL_DOORUNLOCK // include/scsi/sg.h =============================================================================== // _GET_s yield result via 'int *' 3rd argument unless indicated) SG_SET_TIMEOUT 0x2201 // unit: jiffies (10ms on i386) SG_GET_TIMEOUT 0x2202 // yield timeout as _return_ value SG_EMULATED_HOST 0x2203 // true for emulated host adapter (ATAPI) // configure SCSI command transformation layer for ATAPI devices SG_SET_TRANSFORM 0x2204 SG_GET_TRANSFORM 0x2205 // Get/set command queuing state per fd (default is SG_DEF_COMMAND_Q) SG_GET_COMMAND_Q 0x2270 // Yields 0 (queuing off) or 1 (on) SG_SET_COMMAND_Q 0x2271 // Change queuing state with 0 or 1 SG_GET_RESERVED_SIZE 0x2272 // actual size of reserved buffer // Control whether sequencing per file descriptor or per device SG_SET_MERGE_FD 0x2273 // Attempt to change sequencing state SG_GET_MERGE_FD 0x2274 // 0-> per fd, 1-> per device SG_SET_RESERVED_SIZE 0x2275 // request a new reserved buffer size // 3rd arg: 'Sg_scsi_id *' object SG_GET_SCSI_ID 0x2276 // Yields fd's bus, chan, dev, lun + type // SCSI id information can also be obtained from SCSI_IOCTL_GET_IDLUN // Override host setting and always DMA using low memory ( <16MB on i386) SG_SET_FORCE_LOW_DMA 0x2279 // 0-> use adapter setting, 1-> force SG_GET_LOW_DMA 0x227a // 0-> use all ram for dma; 1-> low dma ram SG_SET_FORCE_PACK_ID 0x227b SG_GET_PACK_ID 0x227c // Yields oldest readable pack_id (or -1) SG_GET_NUM_WAITING 0x227d // Number of commands awaiting read() SG_SET_DEBUG 0x227e // 0 -> turn off debug SG_GET_SG_TABLESIZE 0x227F // 0 implies can't do scatter gather // Get/set whether DMA underrun will cause an error (DID_ERROR) SG_GET_UNDERRUN_FLAG 0x2280 // Yields 0 (don't flag) or 1 (flag) SG_SET_UNDERRUN_FLAG 0x2281 // Change flag underrun state SG_GET_VERSION_NUM 0x2282 // Example: version 2.1.34 yields 20134 SG_NEXT_CMD_LEN 0x2283 // override SCSI command length with given // number on the next write() on this file descriptor SG_SCSI_RESET 0x2284 // include/linux/smb_fs.h =============================================================================== // 0x80027501 SMB_IOC_GETMOUNTUID uid_t * _IOR('u', 1, __kernel_uid_t) SMB_IOC_GETMOUNTUID _IOW('u', 2, struct smb_conn_opt) SMB_IOC_NEWCONN // include/linux/sockios.h =============================================================================== 0x0000890B SIOCADDRT const struct rtentry // add routing table entry 0x0000890C SIOCDELRT const struct rtentry // delete routing table entry #define SIOCRTMSG 0x890D // call to routing system // Socket configuration controls. 0x00008910 SIOCGIFNAME char [] // get iface name 0x00008911 SIOCSIFLINK void // set iface channel 0x00008912 SIOCGIFCONF struct ifconf // get iface list 0x00008913 SIOCGIFFLAGS struct ifreq // get flags 0x00008914 SIOCSIFFLAGS const struct ifreq // set flags 0x00008915 SIOCGIFADDR struct ifreq // get PA address 0x00008916 SIOCSIFADDR const struct ifreq // set PA address 0x00008917 SIOCGIFDSTADDR struct ifreq // get remote PA address 0x00008918 SIOCSIFDSTADDR const struct ifreq // set remote PA address 0x00008919 SIOCGIFBRDADDR struct ifreq // get broadcast PA address 0x0000891A SIOCSIFBRDADDR const struct ifreq // set broadcast PA address 0x0000891B SIOCGIFNETMASK struct ifreq // get network PA mask 0x0000891C SIOCSIFNETMASK const struct ifreq // set network PA mask 0x0000891D SIOCGIFMETRIC struct ifreq // get metric 0x0000891E SIOCSIFMETRIC const struct ifreq // set metric 0x0000891F SIOCGIFMEM struct ifreq // get memory address (BSD) 0x00008920 SIOCSIFMEM const struct ifreq // set memory address (BSD) 0x00008921 SIOCGIFMTU struct ifreq // get MTU size 0x00008922 SIOCSIFMTU const struct ifreq // set MTU size 0x00008923 OLD_SIOCGIFHWADDR struct ifreq // set interface name 0x00008924 SIOCSIFHWADDR const struct ifreq // set hardware address 0x00008925 SIOCGIFENCAP int // get/set encapsulations 0x00008926 SIOCSIFENCAP const int 0x00008927 SIOCGIFHWADDR struct ifreq // Get hardware address 0x00008929 SIOCGIFSLAVE void // Driver slaving support 0x00008930 SIOCSIFSLAVE void 0x00008931 SIOCADDMULTI const struct ifreq // Multicast address lists 0x00008932 SIOCDELMULTI const struct ifreq 0x00008933 SIOCGIFINDEX // name -> if_index mapping SIOCGIFINDEX SIOGIFINDEX // misprint compatibility :-) 0x00008934 SIOCSIFPFLAGS // set/get extended flags set 0x00008935 SIOCGIFPFLAGS 0x00008936 SIOCDIFADDR // delete PA address 0x00008937 SIOCSIFHWBROADCAST // set hardware broadcast addr 0x00008938 SIOCGIFCOUNT // get number of devices 0x00008940 SIOCADDRTOLD void // Bridging support 0x00008941 SIOCDELRTOLD void // Set bridging options 0x00008942 SIOCGIFTXQLEN // Get the tx queue length 0x00008943 SIOCSIFTXQLEN // Set the tx queue length // 0x8950 - 0x8952 obsolete, don't re-use // 0x00008950 SIOCDARP const struct arpreq // 0x00008951 SIOCGARP struct arpreq // 0x00008952 SIOCSARP const struct arpreq // ARP cache control 0x00008953 SIOCDARP // delete ARP table entry 0x00008954 SIOCGARP // get ARP table entry 0x00008955 SIOCSARP // set ARP table entry // RARP cache control 0x00008960 SIOCDRARP const struct arpreq // delete RARP table entry 0x00008961 SIOCGRARP struct arpreq // get RARP table entry 0x00008962 SIOCSRARP const struct arpreq // set RARP table entry // Driver configuration 0x00008970 SIOCGIFMAP struct ifreq // Get device parameters 0x00008971 SIOCSIFMAP const struct ifreq // Set device parameters // DLCI configuration 0x00008980 SIOCADDDLCI // Create new DLCI device 0x00008981 SIOCDELDLCI // Delete DLCI device // Device private ioctl calls // 16 ioctls available to devices via the do_ioctl() device vector. // Each device should include this file and redefine these names as their own. 0x000089F0 SIOCDEVPRIVATE // ...89FF // 16 protocol private ioctl calls 0x000089E0 SIOCPROTOPRIVATE // ...89EF // include/linux/soundcard.h =============================================================================== // Ioctl's have the command encoded in the lower word, and the size of any // in or out parameters in the upper word. The high 2 bits of the upper // word are used to encode the in/out status of the parameter; for now we // restrict parameters to at most 8191 bytes. // #define SIOCTYPE (0xff<<8) SIOCPARM_MASK 0x1fff // parameters must be < 8192 bytes SIOC_VOID 0x00000000 // no parameters SIOC_OUT 0x20000000 // copy out parameters SIOC_IN 0x40000000 // copy in parameters SIOC_INOUT (SIOC_IN|SIOC_OUT) // the 0x20000000 is so we can distinguish new ioctl's from old _SIO(x,y) ((int)(SIOC_VOID|(x<<8)|y)) _SIOR(x,y,t) ((int)(SIOC_OUT|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y)) _SIOW(x,y,t) ((int)(SIOC_IN|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y)) // this should be _SIORW, but stdio got there first _SIOWR(x,y,t) ((int)(SIOC_INOUT|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y)) _SIOC_SIZE(x) ((x>>16)&SIOCPARM_MASK) _SIOC_DIR(x) (x & 0xf0000000) _SIOC_NONE SIOC_VOID _SIOC_READ SIOC_OUT _SIOC_WRITE SIOC_IN // SNDCTL_SEQ_RESET _SIO ('Q', 0) SNDCTL_SEQ_SYNC _SIO ('Q', 1) SNDCTL_SYNTH_INFO _SIOWR('Q', 2, struct synth_info) SNDCTL_SEQ_CTRLRATE _SIOWR('Q', 3, int) // Set/get timer resolution (HZ) SNDCTL_SEQ_GETOUTCOUNT _SIOR ('Q', 4, int) SNDCTL_SEQ_GETINCOUNT _SIOR ('Q', 5, int) SNDCTL_SEQ_PERCMODE _SIOW ('Q', 6, int) SNDCTL_FM_LOAD_INSTR _SIOW ('Q', 7, struct sbi_instrument) // Obsolete. Don't use!!!!!! SNDCTL_SEQ_TESTMIDI _SIOW ('Q', 8, int) SNDCTL_SEQ_RESETSAMPLES _SIOW ('Q', 9, int) SNDCTL_SEQ_NRSYNTHS _SIOR ('Q',10, int) SNDCTL_SEQ_NRMIDIS _SIOR ('Q',11, int) SNDCTL_MIDI_INFO _SIOWR('Q',12, struct midi_info) SNDCTL_SEQ_THRESHOLD _SIOW ('Q',13, int) SNDCTL_SYNTH_MEMAVL _SIOWR('Q',14, int) // in=dev#, out=memsize SNDCTL_FM_4OP_ENABLE _SIOW ('Q',15, int) // in=dev# SNDCTL_SEQ_PANIC _SIO ('Q',17) SNDCTL_SEQ_OUTOFBAND _SIOW ('Q',18, struct seq_event_rec) SNDCTL_SEQ_GETTIME _SIOR ('Q',19, int) SNDCTL_SYNTH_ID _SIOWR('Q',20, struct synth_info) SNDCTL_SYNTH_CONTROL _SIOWR('Q',21, struct synth_control) SNDCTL_SYNTH_REMOVESAMPLE _SIOWR('Q',22, struct remove_sample) SNDCTL_TMR_TIMEBASE _SIOWR('T', 1, int) SNDCTL_TMR_START _SIO ('T', 2) SNDCTL_TMR_STOP _SIO ('T', 3) SNDCTL_TMR_CONTINUE _SIO ('T', 4) SNDCTL_TMR_TEMPO _SIOWR('T', 5, int) SNDCTL_TMR_SOURCE _SIOWR('T', 6, int) SNDCTL_TMR_METRONOME _SIOW ('T', 7, int) SNDCTL_TMR_SELECT _SIOW ('T', 8, int) SNDCTL_MIDI_PRETIME _SIOWR('m', 0, int) SNDCTL_MIDI_MPUMODE _SIOWR('m', 1, int) SNDCTL_MIDI_MPUCMD _SIOWR('m', 2, mpu_command_rec) // SNDCTL_DSP_RESET _SIO ('P', 0) SNDCTL_DSP_SYNC _SIO ('P', 1) SNDCTL_DSP_SPEED _SIOWR('P', 2, int) SNDCTL_DSP_STEREO _SIOWR('P', 3, int) SNDCTL_DSP_GETBLKSIZE _SIOWR('P', 4, int) SNDCTL_DSP_SAMPLESIZE SNDCTL_DSP_SETFMT SNDCTL_DSP_CHANNELS _SIOWR('P', 6, int) SOUND_PCM_WRITE_CHANNELS SNDCTL_DSP_CHANNELS SOUND_PCM_WRITE_FILTER _SIOWR('P', 7, int) SNDCTL_DSP_POST _SIO ('P', 8) SNDCTL_DSP_SUBDIVIDE _SIOWR('P', 9, int) SNDCTL_DSP_SETFRAGMENT _SIOWR('P',10, int) // Audio data formats (Note! U8=8 and S16_LE=16 for compatibility) SNDCTL_DSP_GETFMTS _SIOR ('P',11, int) // Returns a mask SNDCTL_DSP_SETFMT _SIOWR('P', 5, int) // Selects ONE fmt SNDCTL_DSP_GETOSPACE _SIOR ('P',12, audio_buf_info) SNDCTL_DSP_GETISPACE _SIOR ('P',13, audio_buf_info) SNDCTL_DSP_NONBLOCK _SIO ('P',14) SNDCTL_DSP_GETCAPS _SIOR ('P',15, int) SNDCTL_DSP_GETTRIGGER _SIOR ('P',16, int) SNDCTL_DSP_SETTRIGGER _SIOW ('P',16, int) SNDCTL_DSP_GETIPTR _SIOR ('P',17, count_info) SNDCTL_DSP_GETOPTR _SIOR ('P',18, count_info) SNDCTL_DSP_MAPINBUF _SIOR ('P', 19, buffmem_desc) SNDCTL_DSP_MAPOUTBUF _SIOR ('P', 20, buffmem_desc) SNDCTL_DSP_SETSYNCRO _SIO ('P', 21) SNDCTL_DSP_SETDUPLEX _SIO ('P', 22) SNDCTL_DSP_GETODELAY _SIOR ('P', 23, int) SNDCTL_DSP_PROFILE _SIOW ('P', 23, int) // SOUND_PCM_READ_RATE _SIOR ('P', 2, int) SOUND_PCM_READ_CHANNELS _SIOR ('P', 6, int) SOUND_PCM_READ_BITS _SIOR ('P', 5, int) SOUND_PCM_READ_FILTER _SIOR ('P', 7, int) // SNDCTL_COPR_RESET _SIO ('C', 0) SNDCTL_COPR_LOAD _SIOWR('C', 1, copr_buffer) SNDCTL_COPR_RDATA _SIOWR('C', 2, copr_debug_buf) SNDCTL_COPR_RCODE _SIOWR('C', 3, copr_debug_buf) SNDCTL_COPR_WDATA _SIOW ('C', 4, copr_debug_buf) SNDCTL_COPR_WCODE _SIOW ('C', 5, copr_debug_buf) SNDCTL_COPR_RUN _SIOWR('C', 6, copr_debug_buf) SNDCTL_COPR_HALT _SIOWR('C', 7, copr_debug_buf) SNDCTL_COPR_SENDMSG _SIOWR('C', 8, copr_msg) SNDCTL_COPR_RCVMSG _SIOR ('C', 9, copr_msg) // /dev/mixer MIXER_READ(dev) _SIOR ('M', dev, int) SOUND_MIXER_INFO _SIOR ('M', 101, mixer_info) SOUND_OLD_MIXER_INFO _SIOR ('M', 101, _old_mixer_info) SOUND_MIXER_ACCESS _SIOWR('M', 102, mixer_record) SOUND_MIXER_AGC _SIOWR('M', 103, int) SOUND_MIXER_3DSE _SIOWR('M', 104, int) SOUND_MIXER_PRIVATE1 _SIOWR('M', 111, int) SOUND_MIXER_PRIVATE2 _SIOWR('M', 112, int) SOUND_MIXER_PRIVATE3 _SIOWR('M', 113, int) SOUND_MIXER_PRIVATE4 _SIOWR('M', 114, int) SOUND_MIXER_PRIVATE5 _SIOWR('M', 115, int) SOUND_MIXER_GETLEVELS _SIOWR('M', 116, mixer_vol_table) SOUND_MIXER_SETLEVELS _SIOWR('M', 117, mixer_vol_table) // OSS_GETVERSION _SIOR ('M', 118, int) // include/linux/telephony.h =============================================================================== _IO ('q',0x80) PHONE_CAPABILITIES _IOR ('q',0x81,struct phone_capability *) PHONE_CAPABILITIES_LIST _IOW ('q',0x82,struct phone_capability *) PHONE_CAPABILITIES_CHECK _IO ('q',0x83) PHONE_RING _IO ('q',0x84) PHONE_HOOKSTATE _IOW ('q',0x85,char) PHONE_MAXRINGS _IOW ('q',0x86,short) PHONE_RING_CADENCE _IO ('q',0x87) PHONE_RING_START _IO ('q',0x88) PHONE_RING_STOP _IOW ('q',0x89,int) PHONE_REC_CODEC _IO ('q',0x8A) PHONE_REC_START _IO ('q',0x8B) PHONE_REC_STOP _IOW ('q',0x8C,int) PHONE_REC_DEPTH _IOW ('q',0x8D,int) PHONE_FRAME _IOW ('q',0x8E,int) PHONE_REC_VOLUME _IO ('q',0x8F) PHONE_REC_LEVEL _IOW ('q',0x90,int) PHONE_PLAY_CODEC _IO ('q',0x91) PHONE_PLAY_START _IO ('q',0x92) PHONE_PLAY_STOP _IOW ('q',0x93,int) PHONE_PLAY_DEPTH _IOW ('q',0x94,int) PHONE_PLAY_VOLUME _IO ('q',0x95) PHONE_PLAY_LEVEL _IOR ('q',0x96,int) PHONE_DTMF_READY _IOR ('q',0x97,int) PHONE_GET_DTMF _IOR ('q',0x98,int) PHONE_GET_DTMF_ASCII _IOW ('q',0x99,int) PHONE_DTMF_OOB _IOR ('q',0x9A,int) PHONE_EXCEPTION _IOW ('q',0x9B,char) PHONE_PLAY_TONE _IOW ('q',0x9C,int) PHONE_SET_TONE_ON_TIME _IOW ('q',0x9D,int) PHONE_SET_TONE_OFF_TIME _IO ('q',0x9E) PHONE_GET_TONE_ON_TIME _IO ('q',0x9F) PHONE_GET_TONE_OFF_TIME _IO ('q',0xA0) PHONE_GET_TONE_STATE _IO ('q',0xA1) PHONE_BUSY _IO ('q',0xA2) PHONE_RINGBACK _IO ('q',0xA3) PHONE_DIALTONE _IO ('q',0xA4) PHONE_CPT_STOP _IOW ('q',0xA4,int) PHONE_PSTN_SET_STATE _IO ('q',0xA5) PHONE_PSTN_GET_STATE _IOW ('q',0xA6,int) PHONE_WINK_DURATION // include/linux/umsdos_fs.h =============================================================================== 0x000004D2 UMSDOS_READDIR_DOS struct umsdos_ioctl // readdir of DOS directory 0x000004D3 UMSDOS_UNLINK_DOS const struct umsdos_ioctl // Erase in DOS directory 0x000004D4 UMSDOS_RMDIR_DOS const struct umsdos_ioctl // rmdir in DOS directory 0x000004D5 UMSDOS_STAT_DOS struct umsdos_ioctl // Get info about a file // commands which operate only on the EMD file: 0x000004D6 UMSDOS_CREAT_EMD const struct umsdos_ioctl // Create a file 0x000004D7 UMSDOS_UNLINK_EMD const struct umsdos_ioctl // unlink (rmdir) a file 0x000004D8 UMSDOS_READDIR_EMD struct umsdos_ioctl // read the EMD file. 0x000004D9 UMSDOS_GETVERSION struct umsdos_ioctl // Get UMSDOS release number 0x000004DA UMSDOS_INIT_EMD void // Create the EMD file if not there 0x000004DB UMSDOS_DOS_SETUP const struct umsdos_ioctl // Set defaults of the MS-DOS driver 0x000004DC UMSDOS_RENAME_DOS const struct umsdos_ioctl // rename a file/directory in DOS // include/linux/videodev.h =============================================================================== _IOR('v',1,struct video_capability) VIDIOCGCAP // Get capabilities _IOWR('v',2,struct video_channel) VIDIOCGCHAN // Get channel info (sources) _IOW('v',3,struct video_channel) VIDIOCSCHAN // Set channel _IOWR('v',4,struct video_tuner) VIDIOCGTUNER // Get tuner abilities _IOW('v',5,struct video_tuner) VIDIOCSTUNER // Tune the tuner for the current channel _IOR('v',6,struct video_picture) VIDIOCGPICT // Get picture properties _IOW('v',7,struct video_picture) VIDIOCSPICT // Set picture properties _IOW('v',8,int) VIDIOCCAPTURE // Start, end capture _IOR('v',9, struct video_window) VIDIOCGWIN // Set the video overlay window _IOW('v',10, struct video_window) VIDIOCSWIN // Set the video overlay window // // - passes clip list for hardware smarts , chromakey etc _IOR('v',11, struct video_buffer) VIDIOCGFBUF // Get frame buffer _IOW('v',12, struct video_buffer) VIDIOCSFBUF // Set frame buffer - root only _IOR('v',13, struct video_key) VIDIOCKEY // Video key event - to dev 255 is to all // // - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) _IOR('v',14, unsigned long) VIDIOCGFREQ // Set tuner _IOW('v',15, unsigned long) VIDIOCSFREQ // Set tuner _IOR('v',16, struct video_audio) VIDIOCGAUDIO // Get audio info _IOW('v',17, struct video_audio) VIDIOCSAUDIO // Audio source, mute etc _IOW('v',18, int) VIDIOCSYNC // Sync with mmap grabbing _IOW('v',19, struct video_mmap) VIDIOCMCAPTURE // Grab frames _IOR('v', 20, struct video_mbuf) VIDIOCGMBUF // Memory map buffer info _IOR('v', 21, struct video_unit) VIDIOCGUNIT // Get attached units _IOR('v',22, struct video_capture) VIDIOCGCAPTURE // Get frame buffer _IOW('v',23, struct video_capture) VIDIOCSCAPTURE // Set frame buffer - root only 192 BASE_VIDIOCPRIVATE // 192-255 are private // include/linux/videotext.h =============================================================================== // Videotext 0x00007101 VTXIOCGETINFO // get version of driver & capabilities of vtx-chipset 0x00007102 VTXIOCCLRPAGE // clear page-buffer 0x00007103 VTXIOCCLRFOUND // clear bits indicating that page was found 0x00007104 VTXIOCPAGEREQ // search for page 0x00007105 VTXIOCGETSTAT // get status of page-buffer 0x00007106 VTXIOCGETPAGE // get contents of page-buffer 0x00007107 VTXIOCSTOPDAU // stop data acquisition unit 0x00007108 VTXIOCPUTPAGE // display page on TV-screen 0x00007109 VTXIOCSETDISP // set TV-mode 0x0000710a VTXIOCPUTSTAT // set status of TV-output-buffer 0x0000710b VTXIOCCLRCACHE // clear cache on VTX-interface (if avail.) 0x0000710c VTXIOCSETVIRT // turn on virtual mode (this disables TV-display) // Tuner 0x00007201 TUNIOCGETINFO // get version of driver & capabilities of tuner 0x00007202 TUNIOCRESET // reset tuner 0x00007203 TUNIOCSETFREQ // set tuning frequency (unit: kHz) 0x00007204 TUNIOCGETFREQ // get tuning frequency (unit: kHz) 0x00007205 TUNIOCSETCHAN // set tuning channel 0x00007206 TUNIOCGETCHAN // get tuning channel // -re- drivers/char/pty.c, vt and console ioctls // include/linux/vt.h =============================================================================== 0x00005600 VT_OPENQRY int * // get next available console # 0x00005601 VT_GETMODE struct vt_mode * // mode of active vt 0x00005602 VT_SETMODE const struct vt_mode * 0x00005603 VT_GETSTATE struct vt_stat * 0x00005604 VT_SENDSIG void // sig to send to bitmask of vt-s 0x00005605 VT_RELDISP int // release a display 0x00005606 VT_ACTIVATE int // switch to vt <argp> 0x00005607 VT_WAITACTIVE int // wait until vt was activated 0x00005608 VT_DISALLOCATE int // de-allocate memory used with a vt 0x00005609 VT_RESIZE const struct vt_sizes * // pass console sizes to kernel 0x0000560A VT_RESIZEX const struct vt_consize * // pass extended console sizes to kernel // include/linux/wanpipe.h =============================================================================== // ROUTER_USER // -re- wanrouter. (ROUTER_USER+0) WANPIPE_DUMP // dump adapter's memory (ROUTER_USER+1) WANPIPE_EXEC // execute firmware command // include/linux/wanrouter.h =============================================================================== // IOCTL codes for /proc/router/<device> entries (up to 255) 'W' ROUTER_IOCTL ROUTER_IOCTL<<8 ROUTER_SETUP // configure device ROUTER_SETUP+1 ROUTER_DOWN // shut down device ROUTER_DOWN+1 ROUTER_STAT // get device status ROUTER_STAT+1 ROUTER_IFNEW // add interface ROUTER_IFNEW+1 ROUTER_IFDEL // delete interface ROUTER_IFDEL+1 ROUTER_IFSTAT // get interface status (ROUTER_IOCTL<<8)+16 ROUTER_USER // driver-specific calls (ROUTER_IOCTL<<8)+31 ROUTER_USER_MAX // include/linux/watchdog.h =============================================================================== // WATCHDOG_IOCTL_BASE 'W' _IOR('W',0,struct watchdog_info) WDIOC_GETSUPPORT _IOR('W',1,int) WDIOC_GETSTATUS _IOR('W',2,int) WDIOC_GETBOOTSTATUS _IOR('W',3,int) WDIOC_GETTEMP _IOR('W',4,int) WDIOC_SETOPTIONS _IOR('W',5,int) WDIOC_KEEPALIVE // include/linux/wireless.h =============================================================================== // Basic operations 0x8B00 SIOCSIWNAME // Unused ??? 0x8B01 SIOCGIWNAME // get name 0x8B02 SIOCSIWNWID // set network id (the cell) 0x8B03 SIOCGIWNWID // get network id 0x8B04 SIOCSIWFREQ // set channel/frequency 0x8B05 SIOCGIWFREQ // get channel/frequency 0x8B06 SIOCSIWMODE // set operation mode 0x8B07 SIOCGIWMODE // get operation mode 0x8B08 SIOCSIWSENS // set sensitivity 0x8B09 SIOCGIWSENS // get sensitivity // Informative stuff 0x8B0A SIOCSIWRANGE // Unused ??? 0x8B0B SIOCGIWRANGE // Get range of parameters 0x8B0C SIOCSIWPRIV // Unused ??? 0x8B0D SIOCGIWPRIV // get private ioctl interface info // Mobile IP support 0x8B10 SIOCSIWSPY // set spy addresses 0x8B11 SIOCGIWSPY // get spy info (quality of link) // Access Point manipulation 0x8B14 SIOCSIWAP // set access point MAC addresses 0x8B15 SIOCGIWAP // get access point MAC addresses 0x8B17 SIOCGIWAPLIST // get list of access point in range // 802.11 specific support 0x8B1A SIOCSIWESSID // set ESSID (network name) 0x8B1B SIOCGIWESSID // get ESSID 0x8B1C SIOCSIWNICKN // set node name/nickname 0x8B1D SIOCGIWNICKN // get node name/nickname // Other parameters useful in 802.11 and some other devices 0x8B20 SIOCSIWRATE // set default bit rate (bps) 0x8B21 SIOCGIWRATE // get default bit rate (bps) 0x8B22 SIOCSIWRTS // set RTS/CTS threshold (bytes) 0x8B23 SIOCGIWRTS // get RTS/CTS threshold (bytes) 0x8B24 SIOCSIWFRAG // set fragmentation thr (bytes) 0x8B25 SIOCGIWFRAG // get fragmentation thr (bytes) // Encoding stuff (scrambling, hardware security, WEP...) 0x8B2A SIOCSIWENCODE // set encoding token & mode 0x8B2B SIOCGIWENCODE // get encoding token & mode // Power saving stuff (power management, unicast and multicast) 0x8B2C SIOCSIWPOWER // set Power Management settings 0x8B2D SIOCGIWPOWER // get Power Management settings // The first and the last (range) 0x8B00 SIOCIWFIRST 0x8B30 SIOCIWLAST // ---------------------------------------------------------------------------- // rt-linux extension // ---------------------------------------------------------------------------- // drivers/mbuff/mmap.c ioctl call defn // int mbuff_ioctl(struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) // drivers/mbuff/mbuff.h // include/mbuff.h =============================================================================== // All ioctl()s are called with name filled in with the appropriate name for // the mbuff to be referenced. Calls to any ioctl() makes that mbuff "active", // i.e., read(), write(), and mmap() use that mbuff. // ALLOCATE: // Call with size=0 to just find out if the area exists; no mbuff // will be allocated. Otherwise, allocate an mbuff with that size. // DEALLOCATE: // Decrease reference count for an mbuff. 0 IOCTL_MBUFF_INFO 1 IOCTL_MBUFF_ALLOCATE 2 IOCTL_MBUFF_DEALLOCATE 3 IOCTL_MBUFF_SELECT IOCTL_MBUFF_SELECT IOCTL_MBUFF_LAST // ---------------------------------------------------------------------------- // More arguments. // ---------------------------------------------------------------------------- "Several ioctl's take a pointer to a structure which contains additional "pointers... [hp] No use in describing those conventions specific to certain ioctl-s, as they may (and do) change w/ kernel versions. These should be documented in the rsp. device (section 4) man pages. If not, pse, complain to the rsp. developers, who are responsible... And, don't let the stupid ones tell you that it "was not what you were interested in"! Any such text was discarded from the original ioctl_list man page because the only result would be introducing even more confusion to the already extraordinarily lazy and incompetently documented low level kernel details. For instance, re the particular device documentation, a fairly complete example of which is man 4 console_ioctl or console_codes, which provide some useful information, i.e. much more than almost any others do. And, forget about the "info system", those authors apparently don't care at all, referring to 1.0 kernels - too silly even to comment on that. // ---------------------------------------------------------------------------- // header-files which refer to ioctl definitions: // ---------------------------------------------------------------------------- // - drivers, in /usr/src/linux/... - s390/char/hwc_rw.h drivers/block/ida_ioctl.h drivers/block/ide.h drivers/block/xd.h drivers/cdrom/aztcd.h drivers/cdrom/cm206.h drivers/cdrom/sbpcd.h drivers/char/bttv.h drivers/char/digi.h drivers/char/dz.h ftape/lowlevel/ftape-ctl.h ftape/zftape/zftape-ctl.h drivers/char/pc110pad.h drivers/char/planb.h isdn/avmb1/avmcard.h isdn/avmb1/capidev.h isdn/divert/isdn_divert.h isdn/eicon/eicon.h drivers/isdn/isdn_net.h drivers/isdn/isdn_ppp.h isdn/pcbit/pcbit.h isdn/sc/scioc.h drivers/net/comx.h drivers/net/cosa.h drivers/net/de4x5.h drivers/net/depca.h drivers/net/dgrs.h drivers/net/ewrk3.h hamradio/soundmodem/sm.h drivers/net/rcif.h drivers/net/rrunner.h drivers/net/sis900.h sk98lin/h/skdrv2nd.h drivers/net/syncppp.h drivers/net/wavelan.p.h s390/block/dasd.h s390/block/mdisk.h s390/char/hwc_rw.h drivers/scsi/gdth.h drivers/scsi/gdth_ioctl.h drivers/scsi/gdth_proc.h drivers/scsi/hosts.h drivers/scsi/ide-scsi.h drivers/scsi/ips.h drivers/scsi/megaraid.h drivers/scsi/scsi.h drivers/scsi/sr.h drivers/scsi/st_options.h sgi/char/graphics.h drivers/sound/ac97.h drivers/sound/ad1848_mixer.h drivers/sound/dev_table.h drivers/sound/dm.h sound/lowlevel/awe_compat-linux.h sound/lowlevel/awe_compat.h drivers/sound/midi_synth.h drivers/sound/sound_calls.h // - linux headers, in /usr/src/linux/... - include/linux/apm_bios.h include/linux/arcdevice.h include/linux/auto_fs.h include/linux/awe_voice.h include/linux/b1lli.h include/linux/b1pcmcia.h include/linux/baycom.h include/linux/capability.h include/linux/capi.h include/linux/cdk.h include/linux/cdrom.h include/linux/coda.h include/linux/coda_linux.h include/linux/coda_opstats.h include/linux/coda_psdev.h include/linux/comstats.h include/linux/cyclades.h include/linux/digi1.h include/linux/dtlk.h include/linux/errno.h include/linux/ext2_fs.h include/linux/fat_cvf.h include/linux/fb.h include/linux/fd.h include/linux/fs.h include/linux/hdlcdrv.h include/linux/hdreg.h include/linux/hfmodem.h include/linux/i2c.h include/linux/if.h include/linux/if_arp.h include/linux/if_frad.h include/linux/if_ppp.h include/linux/if_slip.h include/linux/inetdevice.h include/linux/ioctl.h include/linux/isdn.h include/linux/isdnif.h include/linux/ixjuser.h include/linux/kbd_kern.h include/linux/kdev_t.h include/linux/kernelcapi.h include/linux/loop.h include/linux/lp_m68k.h include/linux/mc146818rtc.h include/linux/md.h include/linux/mroute.h include/linux/msdos_fs.h include/linux/mtio.h include/linux/ncp_fs.h include/linux/ncp_fs_sb.h include/linux/net.h include/linux/netdevice.h include/linux/nvram.h include/linux/pg.h include/linux/random.h include/linux/rocket.h include/linux/scc.h include/linux/smb_fs.h include/linux/smbno.h include/linux/sockios.h include/linux/soundcard.h include/linux/soundmodem.h include/linux/telephony.h include/linux/tty.h include/linux/tty_driver.h include/linux/tty_ldisc.h include/linux/umsdos_fs.h include/linux/umsdos_fs.p include/linux/videodev.h include/linux/videotext.h include/linux/wanrouter.h include/linux/watchdog.h include/linux/wireless.h include/linux/yam.h include/linux/zftape.h // - asm-i386 headers, in /usr/src/linux/... - include/asm-i386/ioctl.h include/asm-i386/ioctls.h include/asm-i386/mtrr.h include/asm-i386/termios.h include/asm-i386/unistd.h // - RTL specific, in /usr/src/linux/rtl/... - system/rtl_posixio.c include/mbuff.h include/rtl_posixio.h drivers/mbuff/mbuff.h drivers/mbuff/mbuff_alloc.c drivers/mbuff/mbuff_dealloc.c drivers/mbuff/mmap.c drivers/mbuff/tester.c include/posix/unistd.h