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

[PATCH] consolidate asm/futex.h

Most of the architectures have the same asm/futex.h. This consolidates them
into asm-generic, with the arches including it from their own asm/futex.h.

In the case of UML, this reverts the old broken futex.h and goes back to using
the same one as almost everyone else.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Jeff Dike and committed by
Linus Torvalds
f8aaeace c66fdd5e

+72 -777
+1 -48
include/asm-alpha/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-arm/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-arm26/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-cris/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+53
include/asm-generic/futex.h
··· 1 + #ifndef _ASM_GENERIC_FUTEX_H 2 + #define _ASM_GENERIC_FUTEX_H 3 + 4 + #ifdef __KERNEL__ 5 + 6 + #include <linux/futex.h> 7 + #include <asm/errno.h> 8 + #include <asm/uaccess.h> 9 + 10 + static inline int 11 + futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 + { 13 + int op = (encoded_op >> 28) & 7; 14 + int cmp = (encoded_op >> 24) & 15; 15 + int oparg = (encoded_op << 8) >> 20; 16 + int cmparg = (encoded_op << 20) >> 20; 17 + int oldval = 0, ret; 18 + if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 + oparg = 1 << oparg; 20 + 21 + if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 + return -EFAULT; 23 + 24 + inc_preempt_count(); 25 + 26 + switch (op) { 27 + case FUTEX_OP_SET: 28 + case FUTEX_OP_ADD: 29 + case FUTEX_OP_OR: 30 + case FUTEX_OP_ANDN: 31 + case FUTEX_OP_XOR: 32 + default: 33 + ret = -ENOSYS; 34 + } 35 + 36 + dec_preempt_count(); 37 + 38 + if (!ret) { 39 + switch (cmp) { 40 + case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 + case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 + case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 + case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 + case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 + case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 + default: ret = -ENOSYS; 47 + } 48 + } 49 + return ret; 50 + } 51 + 52 + #endif 53 + #endif
+1 -48
include/asm-h8300/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-ia64/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-m32r/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-m68k/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-m68knommu/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-parisc/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-s390/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-sh/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-sh64/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-sparc/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+1 -48
include/asm-sparc64/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif
+3 -9
include/asm-um/futex.h
··· 1 - #ifndef __UM_FUTEX_H 2 - #define __UM_FUTEX_H 1 + #ifndef _ASM_FUTEX_H 2 + #define _ASM_FUTEX_H 3 3 4 - #include <linux/futex.h> 5 - #include <asm/errno.h> 6 - #include <asm/system.h> 7 - #include <asm/processor.h> 8 - #include <asm/uaccess.h> 9 - 10 - #include "asm/arch/futex.h" 4 + #include <asm-generic/futex.h> 11 5 12 6 #endif
+1 -48
include/asm-v850/futex.h
··· 1 1 #ifndef _ASM_FUTEX_H 2 2 #define _ASM_FUTEX_H 3 3 4 - #ifdef __KERNEL__ 4 + #include <asm-generic/futex.h> 5 5 6 - #include <linux/futex.h> 7 - #include <asm/errno.h> 8 - #include <asm/uaccess.h> 9 - 10 - static inline int 11 - futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 12 - { 13 - int op = (encoded_op >> 28) & 7; 14 - int cmp = (encoded_op >> 24) & 15; 15 - int oparg = (encoded_op << 8) >> 20; 16 - int cmparg = (encoded_op << 20) >> 20; 17 - int oldval = 0, ret; 18 - if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) 19 - oparg = 1 << oparg; 20 - 21 - if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 22 - return -EFAULT; 23 - 24 - inc_preempt_count(); 25 - 26 - switch (op) { 27 - case FUTEX_OP_SET: 28 - case FUTEX_OP_ADD: 29 - case FUTEX_OP_OR: 30 - case FUTEX_OP_ANDN: 31 - case FUTEX_OP_XOR: 32 - default: 33 - ret = -ENOSYS; 34 - } 35 - 36 - dec_preempt_count(); 37 - 38 - if (!ret) { 39 - switch (cmp) { 40 - case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; 41 - case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; 42 - case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; 43 - case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; 44 - case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; 45 - case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; 46 - default: ret = -ENOSYS; 47 - } 48 - } 49 - return ret; 50 - } 51 - 52 - #endif 53 6 #endif