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

TOMOYO Linux Cross Reference
Linux/include/asm-generic/ioctl.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ 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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/asm-generic/ioctl.h (Version linux-6.11.5) and /include/asm-mips/ioctl.h (Version linux-2.4.37.11)


  1 /* SPDX-License-Identifier: GPL-2.0 */         !!   1 /*
  2 #ifndef _ASM_GENERIC_IOCTL_H                   !!   2  * Linux ioctl() stuff.
  3 #define _ASM_GENERIC_IOCTL_H                   !!   3  *
  4                                                !!   4  * This file is subject to the terms and conditions of the GNU General Public
  5 #include <uapi/asm-generic/ioctl.h>            !!   5  * License.  See the file "COPYING" in the main directory of this archive
  6                                                !!   6  * for more details.
  7 #ifdef __CHECKER__                             !!   7  *
  8 #define _IOC_TYPECHECK(t) (sizeof(t))          !!   8  * Copyright (C) 1995, 1996, 2001 by Ralf Baechle
  9 #else                                          !!   9  */
 10 /* provoke compile error for invalid uses of s !!  10 #ifndef __ASM_MIPS_IOCTL_H
 11 extern unsigned int __invalid_size_argument_fo !!  11 #define __ASM_MIPS_IOCTL_H
 12 #define _IOC_TYPECHECK(t) \                    << 
 13         ((sizeof(t) == sizeof(t[1]) && \       << 
 14           sizeof(t) < (1 << _IOC_SIZEBITS)) ?  << 
 15           sizeof(t) : __invalid_size_argument_ << 
 16 #endif                                         << 
 17                                                    12 
 18 #endif /* _ASM_GENERIC_IOCTL_H */              !!  13 /*
                                                   >>  14  * The original linux ioctl numbering scheme was just a general
                                                   >>  15  * "anything goes" setup, where more or less random numbers were
                                                   >>  16  * assigned.  Sorry, I was clueless when I started out on this.
                                                   >>  17  *
                                                   >>  18  * On the alpha, we'll try to clean it up a bit, using a more sane
                                                   >>  19  * ioctl numbering, and also trying to be compatible with OSF/1 in
                                                   >>  20  * the process. I'd like to clean it up for the i386 as well, but
                                                   >>  21  * it's so painful recognizing both the new and the old numbers..
                                                   >>  22  *
                                                   >>  23  * The same applies for for the MIPS ABI; in fact even the macros
                                                   >>  24  * from Linux/Alpha fit almost perfectly.
                                                   >>  25  */
                                                   >>  26 
                                                   >>  27 #define _IOC_NRBITS     8
                                                   >>  28 #define _IOC_TYPEBITS   8
                                                   >>  29 #define _IOC_SIZEBITS   13
                                                   >>  30 #define _IOC_DIRBITS    3
                                                   >>  31 
                                                   >>  32 #define _IOC_NRMASK     ((1 << _IOC_NRBITS)-1)
                                                   >>  33 #define _IOC_TYPEMASK   ((1 << _IOC_TYPEBITS)-1)
                                                   >>  34 #define _IOC_SIZEMASK   ((1 << _IOC_SIZEBITS)-1)
                                                   >>  35 #define _IOC_DIRMASK    ((1 << _IOC_DIRBITS)-1)
                                                   >>  36 
                                                   >>  37 #define _IOC_NRSHIFT    0
                                                   >>  38 #define _IOC_TYPESHIFT  (_IOC_NRSHIFT+_IOC_NRBITS)
                                                   >>  39 #define _IOC_SIZESHIFT  (_IOC_TYPESHIFT+_IOC_TYPEBITS)
                                                   >>  40 #define _IOC_DIRSHIFT   (_IOC_SIZESHIFT+_IOC_SIZEBITS)
                                                   >>  41 
                                                   >>  42 /*
                                                   >>  43  * Direction bits _IOC_NONE could be 0, but OSF/1 gives it a bit.
                                                   >>  44  * And this turns out useful to catch old ioctl numbers in header
                                                   >>  45  * files for us.
                                                   >>  46  */
                                                   >>  47 #define _IOC_NONE       1U
                                                   >>  48 #define _IOC_READ       2U
                                                   >>  49 #define _IOC_WRITE      4U
                                                   >>  50 
                                                   >>  51 /*
                                                   >>  52  * The following are included for compatibility
                                                   >>  53  */
                                                   >>  54 #define _IOC_VOID       0x20000000
                                                   >>  55 #define _IOC_OUT        0x40000000
                                                   >>  56 #define _IOC_IN         0x80000000
                                                   >>  57 #define _IOC_INOUT      (IOC_IN|IOC_OUT)
                                                   >>  58 
                                                   >>  59 #define _IOC(dir,type,nr,size) \
                                                   >>  60         (((dir)  << _IOC_DIRSHIFT) | \
                                                   >>  61          ((type) << _IOC_TYPESHIFT) | \
                                                   >>  62          ((nr)   << _IOC_NRSHIFT) | \
                                                   >>  63          ((size) << _IOC_SIZESHIFT))
                                                   >>  64 
                                                   >>  65 /* used to create numbers */
                                                   >>  66 #define _IO(type,nr)            _IOC(_IOC_NONE,(type),(nr),0)
                                                   >>  67 #define _IOR(type,nr,size)      _IOC(_IOC_READ,(type),(nr),sizeof(size))
                                                   >>  68 #define _IOW(type,nr,size)      _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
                                                   >>  69 #define _IOWR(type,nr,size)     _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))
                                                   >>  70 
                                                   >>  71 /* used to decode them.. */
                                                   >>  72 #define _IOC_DIR(nr)            (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
                                                   >>  73 #define _IOC_TYPE(nr)           (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
                                                   >>  74 #define _IOC_NR(nr)             (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
                                                   >>  75 #define _IOC_SIZE(nr)           (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
                                                   >>  76 
                                                   >>  77 /* ...and for the drivers/sound files... */
                                                   >>  78 
                                                   >>  79 #define IOC_IN          (_IOC_WRITE << _IOC_DIRSHIFT)
                                                   >>  80 #define IOC_OUT         (_IOC_READ << _IOC_DIRSHIFT)
                                                   >>  81 #define IOC_INOUT       ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT)
                                                   >>  82 #define IOCSIZE_MASK    (_IOC_SIZEMASK << _IOC_SIZESHIFT)
                                                   >>  83 #define IOCSIZE_SHIFT   (_IOC_SIZESHIFT)
                                                   >>  84 
                                                   >>  85 #endif /* __ASM_MIPS_IOCTL_H */
 19                                                    86 

~ [ 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