~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/ioctl/ioctl-number.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/userspace-api/ioctl/ioctl-number.rst (Version linux-6.12-rc7) and /Documentation/userspace-api/ioctl/ioctl-number.rst (Version linux-4.12.14)


  1 =============                                     
  2 Ioctl Numbers                                     
  3 =============                                     
  4                                                   
  5 19 October 1999                                   
  6                                                   
  7 Michael Elizabeth Chastain                        
  8 <mec@shout.net>                                    
  9                                                   
 10 If you are adding new ioctl's to the kernel, y    
 11 macros defined in <linux/ioctl.h>:                
 12                                                   
 13     ====== == ================================    
 14     _IO    an ioctl with no parameters            
 15     _IOW   an ioctl with write parameters (cop    
 16     _IOR   an ioctl with read parameters  (cop    
 17     _IOWR  an ioctl with both write and read p    
 18     ====== == ================================    
 19                                                   
 20 'Write' and 'read' are from the user's point o    
 21 system calls 'write' and 'read'.  For example,    
 22 be _IOW, although the kernel would actually re    
 23 a GET_FOO ioctl would be _IOR, although the ke    
 24 data to user space.                               
 25                                                   
 26 The first argument to _IO, _IOW, _IOR, or _IOW    
 27 or number from the table below.  Because of th    
 28 many drivers share a partial letter with other    
 29                                                   
 30 If you are writing a driver for a new device a    
 31 unused block with enough room for expansion: 3    
 32 You can register the block by patching this fi    
 33 patch to Linus Torvalds.  Or you can e-mail me<    
 34 I'll register one for you.                        
 35                                                   
 36 The second argument to _IO, _IOW, _IOR, or _IO    
 37 to distinguish ioctls from each other.  The th    
 38 _IOR, or _IOWR is the type of the data going i    
 39 out of the kernel (e.g.  'int' or 'struct foo'    
 40 sizeof(arg) as the third argument as this resu    
 41 it passes an argument of type size_t.             
 42                                                   
 43 Some devices use their major number as the ide    
 44 long as it is unique.  Some devices are irregu    
 45 convention at all.                                
 46                                                   
 47 Following this convention is good because:        
 48                                                   
 49 (1) Keeping the ioctl's globally unique helps     
 50     if a program calls an ioctl on the wrong d    
 51     error rather than some unexpected behaviou    
 52                                                   
 53 (2) The 'strace' build procedure automatically    
 54     defined with _IO, _IOW, _IOR, or _IOWR.       
 55                                                   
 56 (3) 'strace' can decode numbers back into usef    
 57     numbers are unique.                           
 58                                                   
 59 (4) People looking for ioctls can grep for the    
 60     this convention is used to define the ioct    
 61                                                   
 62 (5) When following the convention, the driver     
 63     code to copy the parameters between user a    
 64                                                   
 65 This table lists ioctls visible from user land    
 66 most drivers up to 2.6.31, but I know I am mis    
 67 no attempt to list non-X86 architectures or io    
 68                                                   
 69 ====  =====  =================================    
 70 Code  Seq#    Include File                        
 71       (hex)                                       
 72 ====  =====  =================================    
 73 0x00  00-1F  linux/fs.h                           
 74 0x00  00-1F  scsi/scsi_ioctl.h                    
 75 0x00  00-1F  linux/fb.h                           
 76 0x00  00-1F  linux/wavefront.h                    
 77 0x02  all    linux/fd.h                           
 78 0x03  all    linux/hdreg.h                        
 79 0x04  D2-DC  linux/umsdos_fs.h                    
 80 0x06  all    linux/lp.h                           
 81 0x07  9F-D0  linux/vmw_vmci_defs.h, uapi/linux    
 82 0x09  all    linux/raid/md_u.h                    
 83 0x10  00-0F  drivers/char/s390/vmcp.h             
 84 0x10  10-1F  arch/s390/include/uapi/sclp_ctl.h    
 85 0x10  20-2F  arch/s390/include/uapi/asm/hypfs.    
 86 0x12  all    linux/fs.h                           
 87              linux/blkpg.h                        
 88 0x15  all    linux/fs.h                           
 89 0x1b  all                                         
 90                                                   
 91 0x20  all    drivers/cdrom/cm206.h                
 92 0x22  all    scsi/sg.h                            
 93 0x3E  00-0F  linux/counter.h                  <    
 94 '!'   00-1F  uapi/linux/seccomp.h                 
 95 '#'   00-3F                                       
 96                                                   
 97 '$'   00-0F  linux/perf_counter.h, linux/perf_    
 98 '%'   00-0F  include/uapi/linux/stm.h             
 99                                               <    
100 '&'   00-07  drivers/firewire/nosy-user.h         
101 '*'   00-1F  uapi/linux/user_events.h             
102                                               <    
103 '1'   00-1F  linux/timepps.h                      
104                                                   
105 '2'   01-04  linux/i2o.h                          
106 '3'   00-0F  drivers/s390/char/raw3270.h          
107 '3'   00-1F  linux/suspend_ioctls.h,              
108              kernel/power/user.c                  
109 '8'   all                                         
110                                               <    
111 ';'   64-7F  linux/vfio.h                         
112 ';'   80-FF  linux/iommufd.h                      
113 '='   00-3f  uapi/linux/ptp_clock.h           <    
114 '@'   00-0F  linux/radeonfb.h                     
115 '@'   00-0F  drivers/video/aty/aty128fb.c         
116 'A'   00-1F  linux/apm_bios.h                     
117 'A'   00-0F  linux/agpgart.h,                     
118              drivers/char/agp/compat_ioctl.h      
119 'A'   00-7F  sound/asound.h                       
120 'B'   00-1F  linux/cciss_ioctl.h                  
121 'B'   00-0F  include/linux/pmu.h                  
122 'B'   C0-FF  advanced bbus                    <    
123 'B'   00-0F  xen/xenbus_dev.h                     
124 'C'   all    linux/soundcard.h                    
125 'C'   01-2F  linux/capi.h                         
126 'C'   F0-FF  drivers/net/wan/cosa.h               
127 'D'   all    arch/s390/include/asm/dasd.h         
128 'D'   40-5F  drivers/scsi/dpt/dtpi_ioctl.h        
129 'D'   05     drivers/scsi/pmcraid.h               
130 'E'   all    linux/input.h                        
131 'E'   00-0F  xen/evtchn.h                         
132 'F'   all    linux/fb.h                           
133 'F'   01-02  drivers/scsi/pmcraid.h               
134 'F'   20     drivers/video/fsl-diu-fb.h           
135 'F'   20     linux/ivtvfb.h                       
136 'F'   20     linux/matroxfb.h                     
137 'F'   20     drivers/video/aty/atyfb_base.c       
138 'F'   00-0F  video/da8xx-fb.h                     
139 'F'   80-8F  linux/arcfb.h                        
140 'F'   DD     video/sstfb.h                        
141 'G'   00-3F  drivers/misc/sgi-gru/grulib.h        
142 'G'   00-0F  xen/gntalloc.h, xen/gntdev.h         
143 'H'   00-7F  linux/hiddev.h                       
144 'H'   00-0F  linux/hidraw.h                       
145 'H'   01     linux/mei.h                          
146 'H'   02     linux/mei.h                          
147 'H'   03     linux/mei.h                          
148 'H'   00-0F  sound/asound.h                       
149 'H'   20-40  sound/asound_fm.h                    
150 'H'   80-8F  sound/sfnt_info.h                    
151 'H'   10-8F  sound/emu10k1.h                      
152 'H'   10-1F  sound/sb16_csp.h                     
153 'H'   10-1F  sound/hda_hwdep.h                    
154 'H'   40-4F  sound/hdspm.h                        
155 'H'   40-4F  sound/hdsp.h                         
156 'H'   90     sound/usb/usx2y/usb_stream.h         
157 'H'   00-0F  uapi/misc/habanalabs.h               
158 'H'   A0     uapi/linux/usb/cdc-wdm.h             
159 'H'   C0-F0  net/bluetooth/hci.h                  
160 'H'   C0-DF  net/bluetooth/hidp/hidp.h            
161 'H'   C0-DF  net/bluetooth/cmtp/cmtp.h            
162 'H'   C0-DF  net/bluetooth/bnep/bnep.h            
163 'H'   F1     linux/hid-roccat.h               <    
164 'H'   F8-FA  sound/firewire.h                     
165 'I'   all    linux/isdn.h                         
166 'I'   00-0F  drivers/isdn/divert/isdn_divert.h    
167 'I'   40-4F  linux/mISDNif.h                      
168 'K'   all    linux/kd.h                           
169 'L'   00-1F  linux/loop.h                         
170 'L'   10-1F  drivers/scsi/mpt3sas/mpt3sas_ctl.    
171 'L'   E0-FF  linux/ppdd.h                         
172                                                   
173 'M'   all    linux/soundcard.h                    
174 'M'   01-16  mtd/mtd-abi.h                        
175       and    drivers/mtd/mtdchar.c                
176 'M'   01-03  drivers/scsi/megaraid/megaraid_sa    
177 'M'   00-0F  drivers/video/fsl-diu-fb.h           
178 'N'   00-1F  drivers/usb/scanner.h                
179 'N'   40-7F  drivers/block/nvme.c                 
180 'N'   80-8F  uapi/linux/ntsync.h                  
181                                               <    
182 'O'   00-06  mtd/ubi-user.h                       
183 'P'   all    linux/soundcard.h                    
184 'P'   60-6F  sound/sscape_ioctl.h                 
185 'P'   00-0F  drivers/usb/class/usblp.c            
186 'P'   01-09  drivers/misc/pci_endpoint_test.c     
187 'P'   00-0F  xen/privcmd.h                        
188 'P'   00-05  linux/tps6594_pfsm.h                 
189 'Q'   all    linux/soundcard.h                    
190 'R'   00-1F  linux/random.h                       
191 'R'   01     linux/rfkill.h                       
192 'R'   20-2F  linux/trace_mmap.h                   
193 'R'   C0-DF  net/bluetooth/rfcomm.h               
194 'R'   E0     uapi/linux/fsl_mc.h                  
195 'S'   all    linux/cdrom.h                        
196 'S'   80-81  scsi/scsi_ioctl.h                    
197 'S'   82-FF  scsi/scsi.h                          
198 'S'   00-7F  sound/asequencer.h                   
199 'T'   all    linux/soundcard.h                    
200 'T'   00-AF  sound/asound.h                       
201 'T'   all    arch/x86/include/asm/ioctls.h        
202 'T'   C0-DF  linux/if_tun.h                       
203 'U'   all    sound/asound.h                       
204 'U'   00-CF  linux/uinput.h                       
205 'U'   00-EF  linux/usbdevice_fs.h                 
206 'U'   C0-CF  drivers/bluetooth/hci_uart.h         
207 'V'   all    linux/vt.h                           
208 'V'   all    linux/videodev2.h                    
209 'V'   C0     linux/ivtvfb.h                       
210 'V'   C0     linux/ivtv.h                         
211 'V'   C0     media/si4713.h                       
212 'W'   00-1F  linux/watchdog.h                     
213 'W'   00-1F  linux/wanrouter.h                    
214 'W'   00-3F  sound/asound.h                       
215 'W'   40-5F  drivers/pci/switch/switchtec.c       
216 'W'   60-61  linux/watch_queue.h                  
217 'X'   all    fs/xfs/xfs_fs.h,                     
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                   
222 'X'   01     linux/pktcdvd.h                      
223 'Z'   14-15  drivers/message/fusion/mptctl.h      
224 '['   00-3F  linux/usb/tmc.h                      
225                                               <    
226 'a'   all    linux/atm*.h, linux/sonet.h          
227                                                   
228 'a'   00-0F  drivers/crypto/qat/qat_common/adf    
229 'b'   00-FF                                       
230                                               <    
231 'b'   00-0F  linux/dma-buf.h                      
232 'c'   00-7F  linux/comstats.h                     
233 'c'   00-7F  linux/coda.h                         
234 'c'   00-1F  linux/chio.h                         
235 'c'   80-9F  arch/s390/include/asm/chsc.h         
236 'c'   A0-AF  arch/x86/include/asm/msr.h confli    
237 'd'   00-FF  linux/char/drm/drm.h                 
238 'd'   02-40  pcmcia/ds.h                          
239 'd'   F0-FF  linux/digi1.h                        
240 'e'   all    linux/digi1.h                        
241 'f'   00-1F  linux/ext2_fs.h                      
242 'f'   00-1F  linux/ext3_fs.h                      
243 'f'   00-0F  fs/jfs/jfs_dinode.h                  
244 'f'   00-0F  fs/ext4/ext4.h                       
245 'f'   00-0F  linux/fs.h                           
246 'f'   00-0F  fs/ocfs2/ocfs2_fs.h                  
247 'f'   13-27  linux/fscrypt.h                      
248 'f'   81-8F  linux/fsverity.h                     
249 'g'   00-0F  linux/usb/gadgetfs.h                 
250 'g'   20-2F  linux/usb/g_printer.h                
251 'h'   00-7F                                       
252                                               <    
253 'h'   00-1F  linux/hpet.h                         
254 'h'   80-8F  fs/hfsplus/ioctl.c                   
255 'i'   00-3F  linux/i2o-dev.h                      
256 'i'   0B-1F  linux/ipmi.h                         
257 'i'   80-8F  linux/i8k.h                          
258 'i'   90-9F  `linux/iio/*.h`                      
259 'j'   00-3F  linux/joystick.h                     
260 'k'   00-0F  linux/spi/spidev.h                   
261 'k'   00-05  video/kyro.h                         
262 'k'   10-17  linux/hsi/hsi_char.h                 
263 'l'   00-3F  linux/tcfs_fs.h                      
264                                                   
265 'l'   40-7F  linux/udf_fs_i.h                     
266                                                   
267 'm'   00-09  linux/mmtimer.h                      
268 'm'   all    linux/mtio.h                         
269 'm'   all    linux/soundcard.h                    
270 'm'   all    linux/synclink.h                     
271 'm'   00-19  drivers/message/fusion/mptctl.h      
272 'm'   00     drivers/scsi/megaraid/megaraid_io    
273 'n'   00-7F  linux/ncp_fs.h and fs/ncpfs/ioctl    
274 'n'   80-8F  uapi/linux/nilfs2_api.h              
275 'n'   E0-FF  linux/matroxfb.h                     
276 'o'   00-1F  fs/ocfs2/ocfs2_fs.h                  
277 'o'   00-03  mtd/ubi-user.h                       
278 'o'   40-41  mtd/ubi-user.h                       
279 'o'   01-A1  `linux/dvb/*.h`                      
280 'p'   00-0F  linux/phantom.h                      
281 'p'   00-1F  linux/rtc.h                          
282 'p'   40-7F  linux/nvram.h                        
283 'p'   80-9F  linux/ppdev.h                        
284                                               <    
285 'p'   A1-A5  linux/pps.h                          
286                                               <    
287 'q'   00-1F  linux/serio.h                        
288 'q'   80-FF  linux/telephony.h                    
289              linux/ixjuser.h                      
290 'r'   00-1F  linux/msdos_fs.h and fs/fat/dir.c    
291 's'   all    linux/cdk.h                          
292 't'   00-7F  linux/ppp-ioctl.h                    
293 't'   80-8F  linux/isdn_ppp.h                     
294 't'   90-91  linux/toshiba.h                      
295 'u'   00-1F  linux/smb_fs.h                       
296 'u'   00-2F  linux/ublk_cmd.h                     
297 'u'   20-3F  linux/uvcvideo.h                     
298 'u'   40-4f  linux/udmabuf.h                      
299 'v'   00-1F  linux/ext2_fs.h                      
300 'v'   00-1F  linux/fs.h                           
301 'v'   00-0F  linux/sonypi.h                       
302 'v'   00-0F  media/v4l2-subdev.h                  
303 'v'   20-27  arch/powerpc/include/uapi/asm/vas    
304 'v'   C0-FF  linux/meye.h                         
305 'w'   all                                         
306 'y'   00-1F                                       
307                                               <    
308 'z'   00-3F                                       
309                                               <    
310 'z'   40-7F                                       
311                                               <    
312 'z'   10-4F  drivers/s390/crypto/zcrypt_api.h     
313 '|'   00-7F  linux/media.h                        
314 0x80  00-1F  linux/fb.h                           
315 0x81  00-1F  linux/vduse.h                        
316 0x89  00-06  arch/x86/include/asm/sockios.h       
317 0x89  0B-DF  linux/sockios.h                      
318 0x89  E0-EF  linux/sockios.h                      
319 0x89  F0-FF  linux/sockios.h                      
320 0x8A  00-1F  linux/eventpoll.h                    
321 0x8B  all    linux/wireless.h                     
322 0x8C  00-3F                                       
323                                                   
324 0x90  00     drivers/cdrom/sbpcd.h                
325 0x92  00-0F  drivers/usb/mon/mon_bin.c            
326 0x93  60-7F  linux/auto_fs.h                      
327 0x94  all    fs/btrfs/ioctl.h                     
328              and linux/fs.h                       
329 0x97  00-7F  fs/ceph/ioctl.h                      
330 0x99  00-0F                                       
331                                               <    
332 0xA0  all    linux/sdp/sdp.h                      
333                                               <    
334 0xA1  0      linux/vtpm_proxy.h                   
335 0xA2  all    uapi/linux/acrn.h                    
336 0xA3  80-8F                                       
337                                               <    
338 0xA3  90-9F  linux/dtlk.h                         
339 0xA4  00-1F  uapi/linux/tee.h                     
340 0xA4  00-1F  uapi/asm/sgx.h                   <    
341 0xA5  01-05  linux/surface_aggregator/cdev.h      
342                                               <    
343 0xA5  20-2F  linux/surface_aggregator/dtx.h       
344                                               <    
345 0xAA  00-3F  linux/uapi/linux/userfaultfd.h       
346 0xAB  00-1F  linux/nbd.h                          
347 0xAC  00-1F  linux/raw.h                          
348 0xAD  00                                          
349                                               <    
350 0xAE  00-1F  linux/kvm.h                          
351                                               <    
352 0xAE  40-FF  linux/kvm.h                          
353                                               <    
354 0xAE  20-3F  linux/nitro_enclaves.h               
355 0xAF  00-1F  linux/fsl_hypervisor.h               
356 0xB0  all                                         
357                                               <    
358 0xB1  00-1F                                       
359                                               <    
360 0xB2  00     arch/powerpc/include/uapi/asm/pap    
361                                                   
362 0xB2  01-02  arch/powerpc/include/uapi/asm/pap    
363                                                   
364 0xB3  00     linux/mmc/ioctl.h                    
365 0xB4  00-0F  linux/gpio.h                     <    
366 0xB5  00-0F  uapi/linux/rpmsg.h               <    
367 0xB6  all    linux/fpga-dfl.h                     
368 0xB7  all    uapi/linux/remoteproc_cdev.h     <    
369 0xB7  all    uapi/linux/nsfs.h                <    
370 0xB8  01-02  uapi/misc/mrvl_cn10k_dpi.h           
371 0xC0  00-0F  linux/usb/iowarrior.h                
372 0xCA  00-0F  uapi/misc/cxl.h                      
373 0xCA  10-2F  uapi/misc/ocxl.h                     
374 0xCA  80-BF  uapi/scsi/cxlflash_ioctl.h           
375 0xCB  00-1F                                       
376                                               <    
377 0xCC  00-0F  drivers/misc/ibmvmc.h                
378 0xCD  01     linux/reiserfs_fs.h                  
379 0xCE  01-02  uapi/linux/cxl_mem.h                 
380 0xCF  02     fs/smb/client/cifs_ioctl.h           
381 0xDB  00-0F  drivers/char/mwave/mwavepub.h        
382 0xDD  00-3F                                       
383                                               <    
384 0xE5  00-3F  linux/fuse.h                         
385 0xEC  00-01  drivers/platform/chrome/cros_ec_d    
386 0xEE  00-09  uapi/linux/pfrut.h                   
387 0xF3  00-3F  drivers/usb/misc/sisusbvga/sisusb    
388                                               <    
389 0xF6  all                                         
390                                               <    
391 0xF8  all    arch/x86/include/uapi/asm/amd_hsm    
392                                               <    
393 0xFD  all    linux/dm-ioctl.h                     
394 0xFE  all    linux/isst_if.h                      
395 ====  =====  =================================    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php