brintos

brintos / linux-shallow public Read only

0
0
Text · 26.5 KiB · e4be137 Raw
396 lines · plain
1=============2Ioctl Numbers3=============4 519 October 19996 7Michael Elizabeth Chastain8<mec@shout.net>9 10If you are adding new ioctl's to the kernel, you should use the _IO11macros defined in <linux/ioctl.h>:12 13    ====== == ============================================14    _IO    an ioctl with no parameters15    _IOW   an ioctl with write parameters (copy_from_user)16    _IOR   an ioctl with read parameters  (copy_to_user)17    _IOWR  an ioctl with both write and read parameters.18    ====== == ============================================19 20'Write' and 'read' are from the user's point of view, just like the21system calls 'write' and 'read'.  For example, a SET_FOO ioctl would22be _IOW, although the kernel would actually read data from user space;23a GET_FOO ioctl would be _IOR, although the kernel would actually write24data to user space.25 26The first argument to _IO, _IOW, _IOR, or _IOWR is an identifying letter27or number from the table below.  Because of the large number of drivers,28many drivers share a partial letter with other drivers.29 30If you are writing a driver for a new device and need a letter, pick an31unused block with enough room for expansion: 32 to 256 ioctl commands.32You can register the block by patching this file and submitting the33patch to Linus Torvalds.  Or you can e-mail me at <mec@shout.net> and34I'll register one for you.35 36The second argument to _IO, _IOW, _IOR, or _IOWR is a sequence number37to distinguish ioctls from each other.  The third argument to _IOW,38_IOR, or _IOWR is the type of the data going into the kernel or coming39out of the kernel (e.g.  'int' or 'struct foo').  NOTE!  Do NOT use40sizeof(arg) as the third argument as this results in your ioctl thinking41it passes an argument of type size_t.42 43Some devices use their major number as the identifier; this is OK, as44long as it is unique.  Some devices are irregular and don't follow any45convention at all.46 47Following this convention is good because:48 49(1) Keeping the ioctl's globally unique helps error checking:50    if a program calls an ioctl on the wrong device, it will get an51    error rather than some unexpected behaviour.52 53(2) The 'strace' build procedure automatically finds ioctl numbers54    defined with _IO, _IOW, _IOR, or _IOWR.55 56(3) 'strace' can decode numbers back into useful names when the57    numbers are unique.58 59(4) People looking for ioctls can grep for them more easily when60    this convention is used to define the ioctl numbers.61 62(5) When following the convention, the driver code can use generic63    code to copy the parameters between user and kernel space.64 65This table lists ioctls visible from user land for Linux/x86.  It contains66most drivers up to 2.6.31, but I know I am missing some.  There has been67no attempt to list non-X86 architectures or ioctls from drivers/staging/.68 69====  =====  ======================================================= ================================================================70Code  Seq#    Include File                                           Comments71      (hex)72====  =====  ======================================================= ================================================================730x00  00-1F  linux/fs.h                                              conflict!740x00  00-1F  scsi/scsi_ioctl.h                                       conflict!750x00  00-1F  linux/fb.h                                              conflict!760x00  00-1F  linux/wavefront.h                                       conflict!770x02  all    linux/fd.h780x03  all    linux/hdreg.h790x04  D2-DC  linux/umsdos_fs.h                                       Dead since 2.6.11, but don't reuse these.800x06  all    linux/lp.h810x07  9F-D0  linux/vmw_vmci_defs.h, uapi/linux/vm_sockets.h820x09  all    linux/raid/md_u.h830x10  00-0F  drivers/char/s390/vmcp.h840x10  10-1F  arch/s390/include/uapi/sclp_ctl.h850x10  20-2F  arch/s390/include/uapi/asm/hypfs.h860x12  all    linux/fs.h                                              BLK* ioctls87             linux/blkpg.h880x15  all    linux/fs.h                                              FS_IOC_* ioctls890x1b  all                                                            InfiniBand Subsystem90                                                                     <http://infiniband.sourceforge.net/>910x20  all    drivers/cdrom/cm206.h920x22  all    scsi/sg.h930x3E  00-0F  linux/counter.h                                         <mailto:linux-iio@vger.kernel.org>94'!'   00-1F  uapi/linux/seccomp.h95'#'   00-3F                                                          IEEE 1394 Subsystem96                                                                     Block for the entire subsystem97'$'   00-0F  linux/perf_counter.h, linux/perf_event.h98'%'   00-0F  include/uapi/linux/stm.h                                System Trace Module subsystem99                                                                     <mailto:alexander.shishkin@linux.intel.com>100'&'   00-07  drivers/firewire/nosy-user.h101'*'   00-1F  uapi/linux/user_events.h                                User Events Subsystem102                                                                     <mailto:linux-trace-kernel@vger.kernel.org>103'1'   00-1F  linux/timepps.h                                         PPS kit from Ulrich Windl104                                                                     <ftp://ftp.de.kernel.org/pub/linux/daemons/ntp/PPS/>105'2'   01-04  linux/i2o.h106'3'   00-0F  drivers/s390/char/raw3270.h                             conflict!107'3'   00-1F  linux/suspend_ioctls.h,                                 conflict!108             kernel/power/user.c109'8'   all                                                            SNP8023 advanced NIC card110                                                                     <mailto:mcr@solidum.com>111';'   64-7F  linux/vfio.h112';'   80-FF  linux/iommufd.h113'='   00-3f  uapi/linux/ptp_clock.h                                  <mailto:richardcochran@gmail.com>114'@'   00-0F  linux/radeonfb.h                                        conflict!115'@'   00-0F  drivers/video/aty/aty128fb.c                            conflict!116'A'   00-1F  linux/apm_bios.h                                        conflict!117'A'   00-0F  linux/agpgart.h,                                        conflict!118             drivers/char/agp/compat_ioctl.h119'A'   00-7F  sound/asound.h                                          conflict!120'B'   00-1F  linux/cciss_ioctl.h                                     conflict!121'B'   00-0F  include/linux/pmu.h                                     conflict!122'B'   C0-FF  advanced bbus                                           <mailto:maassen@uni-freiburg.de>123'B'   00-0F  xen/xenbus_dev.h                                        conflict!124'C'   all    linux/soundcard.h                                       conflict!125'C'   01-2F  linux/capi.h                                            conflict!126'C'   F0-FF  drivers/net/wan/cosa.h                                  conflict!127'D'   all    arch/s390/include/asm/dasd.h128'D'   40-5F  drivers/scsi/dpt/dtpi_ioctl.h                           Dead since 2022129'D'   05     drivers/scsi/pmcraid.h130'E'   all    linux/input.h                                           conflict!131'E'   00-0F  xen/evtchn.h                                            conflict!132'F'   all    linux/fb.h                                              conflict!133'F'   01-02  drivers/scsi/pmcraid.h                                  conflict!134'F'   20     drivers/video/fsl-diu-fb.h                              conflict!135'F'   20     linux/ivtvfb.h                                          conflict!136'F'   20     linux/matroxfb.h                                        conflict!137'F'   20     drivers/video/aty/atyfb_base.c                          conflict!138'F'   00-0F  video/da8xx-fb.h                                        conflict!139'F'   80-8F  linux/arcfb.h                                           conflict!140'F'   DD     video/sstfb.h                                           conflict!141'G'   00-3F  drivers/misc/sgi-gru/grulib.h                           conflict!142'G'   00-0F  xen/gntalloc.h, xen/gntdev.h                            conflict!143'H'   00-7F  linux/hiddev.h                                          conflict!144'H'   00-0F  linux/hidraw.h                                          conflict!145'H'   01     linux/mei.h                                             conflict!146'H'   02     linux/mei.h                                             conflict!147'H'   03     linux/mei.h                                             conflict!148'H'   00-0F  sound/asound.h                                          conflict!149'H'   20-40  sound/asound_fm.h                                       conflict!150'H'   80-8F  sound/sfnt_info.h                                       conflict!151'H'   10-8F  sound/emu10k1.h                                         conflict!152'H'   10-1F  sound/sb16_csp.h                                        conflict!153'H'   10-1F  sound/hda_hwdep.h                                       conflict!154'H'   40-4F  sound/hdspm.h                                           conflict!155'H'   40-4F  sound/hdsp.h                                            conflict!156'H'   90     sound/usb/usx2y/usb_stream.h157'H'   00-0F  uapi/misc/habanalabs.h                                  conflict!158'H'   A0     uapi/linux/usb/cdc-wdm.h159'H'   C0-F0  net/bluetooth/hci.h                                     conflict!160'H'   C0-DF  net/bluetooth/hidp/hidp.h                               conflict!161'H'   C0-DF  net/bluetooth/cmtp/cmtp.h                               conflict!162'H'   C0-DF  net/bluetooth/bnep/bnep.h                               conflict!163'H'   F1     linux/hid-roccat.h                                      <mailto:erazor_de@users.sourceforge.net>164'H'   F8-FA  sound/firewire.h165'I'   all    linux/isdn.h                                            conflict!166'I'   00-0F  drivers/isdn/divert/isdn_divert.h                       conflict!167'I'   40-4F  linux/mISDNif.h                                         conflict!168'K'   all    linux/kd.h169'L'   00-1F  linux/loop.h                                            conflict!170'L'   10-1F  drivers/scsi/mpt3sas/mpt3sas_ctl.h                      conflict!171'L'   E0-FF  linux/ppdd.h                                            encrypted disk device driver172                                                                     <http://linux01.gwdg.de/~alatham/ppdd.html>173'M'   all    linux/soundcard.h                                       conflict!174'M'   01-16  mtd/mtd-abi.h                                           conflict!175      and    drivers/mtd/mtdchar.c176'M'   01-03  drivers/scsi/megaraid/megaraid_sas.h177'M'   00-0F  drivers/video/fsl-diu-fb.h                              conflict!178'N'   00-1F  drivers/usb/scanner.h179'N'   40-7F  drivers/block/nvme.c180'N'   80-8F  uapi/linux/ntsync.h                                     NT synchronization primitives181                                                                     <mailto:wine-devel@winehq.org>182'O'   00-06  mtd/ubi-user.h                                          UBI183'P'   all    linux/soundcard.h                                       conflict!184'P'   60-6F  sound/sscape_ioctl.h                                    conflict!185'P'   00-0F  drivers/usb/class/usblp.c                               conflict!186'P'   01-09  drivers/misc/pci_endpoint_test.c                        conflict!187'P'   00-0F  xen/privcmd.h                                           conflict!188'P'   00-05  linux/tps6594_pfsm.h                                    conflict!189'Q'   all    linux/soundcard.h190'R'   00-1F  linux/random.h                                          conflict!191'R'   01     linux/rfkill.h                                          conflict!192'R'   20-2F  linux/trace_mmap.h193'R'   C0-DF  net/bluetooth/rfcomm.h194'R'   E0     uapi/linux/fsl_mc.h195'S'   all    linux/cdrom.h                                           conflict!196'S'   80-81  scsi/scsi_ioctl.h                                       conflict!197'S'   82-FF  scsi/scsi.h                                             conflict!198'S'   00-7F  sound/asequencer.h                                      conflict!199'T'   all    linux/soundcard.h                                       conflict!200'T'   00-AF  sound/asound.h                                          conflict!201'T'   all    arch/x86/include/asm/ioctls.h                           conflict!202'T'   C0-DF  linux/if_tun.h                                          conflict!203'U'   all    sound/asound.h                                          conflict!204'U'   00-CF  linux/uinput.h                                          conflict!205'U'   00-EF  linux/usbdevice_fs.h206'U'   C0-CF  drivers/bluetooth/hci_uart.h207'V'   all    linux/vt.h                                              conflict!208'V'   all    linux/videodev2.h                                       conflict!209'V'   C0     linux/ivtvfb.h                                          conflict!210'V'   C0     linux/ivtv.h                                            conflict!211'V'   C0     media/si4713.h                                          conflict!212'W'   00-1F  linux/watchdog.h                                        conflict!213'W'   00-1F  linux/wanrouter.h                                       conflict! (pre 3.9)214'W'   00-3F  sound/asound.h                                          conflict!215'W'   40-5F  drivers/pci/switch/switchtec.c216'W'   60-61  linux/watch_queue.h217'X'   all    fs/xfs/xfs_fs.h,                                        conflict!218             fs/xfs/linux-2.6/xfs_ioctl32.h,219             include/linux/falloc.h,220             linux/fs.h,221'X'   all    fs/ocfs2/ocfs_fs.h                                      conflict!222'X'   01     linux/pktcdvd.h                                         conflict!223'Z'   14-15  drivers/message/fusion/mptctl.h224'['   00-3F  linux/usb/tmc.h                                         USB Test and Measurement Devices225                                                                     <mailto:gregkh@linuxfoundation.org>226'a'   all    linux/atm*.h, linux/sonet.h                             ATM on linux227                                                                     <http://lrcwww.epfl.ch/>228'a'   00-0F  drivers/crypto/qat/qat_common/adf_cfg_common.h          conflict! qat driver229'b'   00-FF                                                          conflict! bit3 vme host bridge230                                                                     <mailto:natalia@nikhefk.nikhef.nl>231'b'   00-0F  linux/dma-buf.h                                         conflict!232'c'   00-7F  linux/comstats.h                                        conflict!233'c'   00-7F  linux/coda.h                                            conflict!234'c'   00-1F  linux/chio.h                                            conflict!235'c'   80-9F  arch/s390/include/asm/chsc.h                            conflict!236'c'   A0-AF  arch/x86/include/asm/msr.h conflict!237'd'   00-FF  linux/char/drm/drm.h                                    conflict!238'd'   02-40  pcmcia/ds.h                                             conflict!239'd'   F0-FF  linux/digi1.h240'e'   all    linux/digi1.h                                           conflict!241'f'   00-1F  linux/ext2_fs.h                                         conflict!242'f'   00-1F  linux/ext3_fs.h                                         conflict!243'f'   00-0F  fs/jfs/jfs_dinode.h                                     conflict!244'f'   00-0F  fs/ext4/ext4.h                                          conflict!245'f'   00-0F  linux/fs.h                                              conflict!246'f'   00-0F  fs/ocfs2/ocfs2_fs.h                                     conflict!247'f'   13-27  linux/fscrypt.h248'f'   81-8F  linux/fsverity.h249'g'   00-0F  linux/usb/gadgetfs.h250'g'   20-2F  linux/usb/g_printer.h251'h'   00-7F                                                          conflict! Charon filesystem252                                                                     <mailto:zapman@interlan.net>253'h'   00-1F  linux/hpet.h                                            conflict!254'h'   80-8F  fs/hfsplus/ioctl.c255'i'   00-3F  linux/i2o-dev.h                                         conflict!256'i'   0B-1F  linux/ipmi.h                                            conflict!257'i'   80-8F  linux/i8k.h258'i'   90-9F  `linux/iio/*.h`                                         IIO259'j'   00-3F  linux/joystick.h260'k'   00-0F  linux/spi/spidev.h                                      conflict!261'k'   00-05  video/kyro.h                                            conflict!262'k'   10-17  linux/hsi/hsi_char.h                                    HSI character device263'l'   00-3F  linux/tcfs_fs.h                                         transparent cryptographic file system264                                                                     <http://web.archive.org/web/%2A/http://mikonos.dia.unisa.it/tcfs>265'l'   40-7F  linux/udf_fs_i.h                                        in development:266                                                                     <https://github.com/pali/udftools>267'm'   00-09  linux/mmtimer.h                                         conflict!268'm'   all    linux/mtio.h                                            conflict!269'm'   all    linux/soundcard.h                                       conflict!270'm'   all    linux/synclink.h                                        conflict!271'm'   00-19  drivers/message/fusion/mptctl.h                         conflict!272'm'   00     drivers/scsi/megaraid/megaraid_ioctl.h                  conflict!273'n'   00-7F  linux/ncp_fs.h and fs/ncpfs/ioctl.c274'n'   80-8F  uapi/linux/nilfs2_api.h                                 NILFS2275'n'   E0-FF  linux/matroxfb.h                                        matroxfb276'o'   00-1F  fs/ocfs2/ocfs2_fs.h                                     OCFS2277'o'   00-03  mtd/ubi-user.h                                          conflict! (OCFS2 and UBI overlaps)278'o'   40-41  mtd/ubi-user.h                                          UBI279'o'   01-A1  `linux/dvb/*.h`                                         DVB280'p'   00-0F  linux/phantom.h                                         conflict! (OpenHaptics needs this)281'p'   00-1F  linux/rtc.h                                             conflict!282'p'   40-7F  linux/nvram.h283'p'   80-9F  linux/ppdev.h                                           user-space parport284                                                                     <mailto:tim@cyberelk.net>285'p'   A1-A5  linux/pps.h                                             LinuxPPS286                                                                     <mailto:giometti@linux.it>287'q'   00-1F  linux/serio.h288'q'   80-FF  linux/telephony.h                                       Internet PhoneJACK, Internet LineJACK289             linux/ixjuser.h                                         <http://web.archive.org/web/%2A/http://www.quicknet.net>290'r'   00-1F  linux/msdos_fs.h and fs/fat/dir.c291's'   all    linux/cdk.h292't'   00-7F  linux/ppp-ioctl.h293't'   80-8F  linux/isdn_ppp.h294't'   90-91  linux/toshiba.h                                         toshiba and toshiba_acpi SMM295'u'   00-1F  linux/smb_fs.h                                          gone296'u'   00-2F  linux/ublk_cmd.h                                        conflict!297'u'   20-3F  linux/uvcvideo.h                                        USB video class host driver298'u'   40-4f  linux/udmabuf.h                                         userspace dma-buf misc device299'v'   00-1F  linux/ext2_fs.h                                         conflict!300'v'   00-1F  linux/fs.h                                              conflict!301'v'   00-0F  linux/sonypi.h                                          conflict!302'v'   00-0F  media/v4l2-subdev.h                                     conflict!303'v'   20-27  arch/powerpc/include/uapi/asm/vas-api.h		     VAS API304'v'   C0-FF  linux/meye.h                                            conflict!305'w'   all                                                            CERN SCI driver306'y'   00-1F                                                          packet based user level communications307                                                                     <mailto:zapman@interlan.net>308'z'   00-3F                                                          CAN bus card conflict!309                                                                     <mailto:hdstich@connectu.ulm.circular.de>310'z'   40-7F                                                          CAN bus card conflict!311                                                                     <mailto:oe@port.de>312'z'   10-4F  drivers/s390/crypto/zcrypt_api.h                        conflict!313'|'   00-7F  linux/media.h3140x80  00-1F  linux/fb.h3150x81  00-1F  linux/vduse.h3160x89  00-06  arch/x86/include/asm/sockios.h3170x89  0B-DF  linux/sockios.h3180x89  E0-EF  linux/sockios.h                                         SIOCPROTOPRIVATE range3190x89  F0-FF  linux/sockios.h                                         SIOCDEVPRIVATE range3200x8A  00-1F  linux/eventpoll.h3210x8B  all    linux/wireless.h3220x8C  00-3F                                                          WiNRADiO driver323                                                                     <http://www.winradio.com.au/>3240x90  00     drivers/cdrom/sbpcd.h3250x92  00-0F  drivers/usb/mon/mon_bin.c3260x93  60-7F  linux/auto_fs.h3270x94  all    fs/btrfs/ioctl.h                                        Btrfs filesystem328             and linux/fs.h                                          some lifted to vfs/generic3290x97  00-7F  fs/ceph/ioctl.h                                         Ceph file system3300x99  00-0F                                                          537-Addinboard driver331                                                                     <mailto:buk@buks.ipn.de>3320xA0  all    linux/sdp/sdp.h                                         Industrial Device Project333                                                                     <mailto:kenji@bitgate.com>3340xA1  0      linux/vtpm_proxy.h                                      TPM Emulator Proxy Driver3350xA2  all    uapi/linux/acrn.h                                       ACRN hypervisor3360xA3  80-8F                                                          Port ACL  in development:337                                                                     <mailto:tlewis@mindspring.com>3380xA3  90-9F  linux/dtlk.h3390xA4  00-1F  uapi/linux/tee.h                                        Generic TEE subsystem3400xA4  00-1F  uapi/asm/sgx.h                                          <mailto:linux-sgx@vger.kernel.org>3410xA5  01-05  linux/surface_aggregator/cdev.h                         Microsoft Surface Platform System Aggregator342                                                                     <mailto:luzmaximilian@gmail.com>3430xA5  20-2F  linux/surface_aggregator/dtx.h                          Microsoft Surface DTX driver344                                                                     <mailto:luzmaximilian@gmail.com>3450xAA  00-3F  linux/uapi/linux/userfaultfd.h3460xAB  00-1F  linux/nbd.h3470xAC  00-1F  linux/raw.h3480xAD  00                                                             Netfilter device in development:349                                                                     <mailto:rusty@rustcorp.com.au>3500xAE  00-1F  linux/kvm.h                                             Kernel-based Virtual Machine351                                                                     <mailto:kvm@vger.kernel.org>3520xAE  40-FF  linux/kvm.h                                             Kernel-based Virtual Machine353                                                                     <mailto:kvm@vger.kernel.org>3540xAE  20-3F  linux/nitro_enclaves.h                                  Nitro Enclaves3550xAF  00-1F  linux/fsl_hypervisor.h                                  Freescale hypervisor3560xB0  all                                                            RATIO devices in development:357                                                                     <mailto:vgo@ratio.de>3580xB1  00-1F                                                          PPPoX359                                                                     <mailto:mostrows@styx.uwaterloo.ca>3600xB2  00     arch/powerpc/include/uapi/asm/papr-vpd.h                powerpc/pseries VPD API361                                                                     <mailto:linuxppc-dev>3620xB2  01-02  arch/powerpc/include/uapi/asm/papr-sysparm.h            powerpc/pseries system parameter API363                                                                     <mailto:linuxppc-dev>3640xB3  00     linux/mmc/ioctl.h3650xB4  00-0F  linux/gpio.h                                            <mailto:linux-gpio@vger.kernel.org>3660xB5  00-0F  uapi/linux/rpmsg.h                                      <mailto:linux-remoteproc@vger.kernel.org>3670xB6  all    linux/fpga-dfl.h3680xB7  all    uapi/linux/remoteproc_cdev.h                            <mailto:linux-remoteproc@vger.kernel.org>3690xB7  all    uapi/linux/nsfs.h                                       <mailto:Andrei Vagin <avagin@openvz.org>>3700xB8  01-02  uapi/misc/mrvl_cn10k_dpi.h                              Marvell CN10K DPI driver3710xC0  00-0F  linux/usb/iowarrior.h3720xCA  00-0F  uapi/misc/cxl.h3730xCA  10-2F  uapi/misc/ocxl.h3740xCA  80-BF  uapi/scsi/cxlflash_ioctl.h3750xCB  00-1F                                                          CBM serial IEC bus in development:376                                                                     <mailto:michael.klein@puffin.lb.shuttle.de>3770xCC  00-0F  drivers/misc/ibmvmc.h                                   pseries VMC driver3780xCD  01     linux/reiserfs_fs.h3790xCE  01-02  uapi/linux/cxl_mem.h                                    Compute Express Link Memory Devices3800xCF  02     fs/smb/client/cifs_ioctl.h3810xDB  00-0F  drivers/char/mwave/mwavepub.h3820xDD  00-3F                                                          ZFCP device driver see drivers/s390/scsi/383                                                                     <mailto:aherrman@de.ibm.com>3840xE5  00-3F  linux/fuse.h3850xEC  00-01  drivers/platform/chrome/cros_ec_dev.h                   ChromeOS EC driver3860xEE  00-09  uapi/linux/pfrut.h                                      Platform Firmware Runtime Update and Telemetry3870xF3  00-3F  drivers/usb/misc/sisusbvga/sisusb.h                     sisfb (in development)388                                                                     <mailto:thomas@winischhofer.net>3890xF6  all                                                            LTTng Linux Trace Toolkit Next Generation390                                                                     <mailto:mathieu.desnoyers@efficios.com>3910xF8  all    arch/x86/include/uapi/asm/amd_hsmp.h                    AMD HSMP EPYC system management interface driver392                                                                     <mailto:nchatrad@amd.com>3930xFD  all    linux/dm-ioctl.h3940xFE  all    linux/isst_if.h395====  =====  ======================================================= ================================================================396