Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: ioctl.h: Cleanup.

o Rewrite to use <asm-generic/ioctl.h>. Cuts down the file from 40 to
16 lines.
o Delete _IOC_VOID, _IOC_OUT, _IOC_IN and _IOC_INOUT. They were added
for 2.1.14 but I was not able to find any user - not even historical
ones.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

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