IOCTL_LIST

NAME
DESCRIPTION
IOCTL STRUCTURE
RETURN VALUE

NAME

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, its numerical value, its name, and its argument type are given.

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.

Some ioctls take more arguments or return more values than a single structure. These are marked // MORE and documented further in a separate section.

This list is very incomplete. Please e-mail changes and comments to <mec@duracef.shout.net>.

IOCTL STRUCTURE

Ioctl command values are 32-bit constants. In principle these constants are completely arbitrary, but people have tried to build some structure into them.

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.

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.

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.

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.

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.

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.

// 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






....................................................................................................................................
About ~ Privacy Statement ~ Terms of Use ~ ~ All Linux-Documentation.com

Additional Reading