aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm-generic/bitops/le.h77
1 files changed, 53 insertions, 24 deletions
diff --git a/include/asm-generic/bitops/le.h b/include/asm-generic/bitops/le.h
index 394ac3ebcbde..946a21b1b5dc 100644
--- a/include/asm-generic/bitops/le.h
+++ b/include/asm-generic/bitops/le.h
@@ -8,20 +8,31 @@
8 8
9#define BITOP_LE_SWIZZLE 0 9#define BITOP_LE_SWIZZLE 0
10 10
11#define find_next_zero_bit_le(addr, size, offset) \ 11static inline unsigned long find_next_zero_bit_le(const void *addr,
12 find_next_zero_bit(addr, size, offset) 12 unsigned long size, unsigned long offset)
13#define find_next_bit_le(addr, size, offset) \ 13{
14 find_next_bit(addr, size, offset) 14 return find_next_zero_bit(addr, size, offset);
15#define find_first_zero_bit_le(addr, size) \ 15}
16 find_first_zero_bit(addr, size) 16
17static inline unsigned long find_next_bit_le(const void *addr,
18 unsigned long size, unsigned long offset)
19{
20 return find_next_bit(addr, size, offset);
21}
22
23static inline unsigned long find_first_zero_bit_le(const void *addr,
24 unsigned long size)
25{
26 return find_first_zero_bit(addr, size);
27}
17 28
18#elif defined(__BIG_ENDIAN) 29#elif defined(__BIG_ENDIAN)
19 30
20#define BITOP_LE_SWIZZLE ((BITS_PER_LONG-1) & ~0x7) 31#define BITOP_LE_SWIZZLE ((BITS_PER_LONG-1) & ~0x7)
21 32
22extern unsigned long find_next_zero_bit_le(const unsigned long *addr, 33extern unsigned long find_next_zero_bit_le(const void *addr,
23 unsigned long size, unsigned long offset); 34 unsigned long size, unsigned long offset);
24extern unsigned long find_next_bit_le(const unsigned long *addr, 35extern unsigned long find_next_bit_le(const void *addr,
25 unsigned long size, unsigned long offset); 36 unsigned long size, unsigned long offset);
26 37
27#define find_first_zero_bit_le(addr, size) \ 38#define find_first_zero_bit_le(addr, size) \
@@ -31,21 +42,39 @@ extern unsigned long find_next_bit_le(const unsigned long *addr,
31#error "Please fix <asm/byteorder.h>" 42#error "Please fix <asm/byteorder.h>"
32#endif 43#endif
33 44
34#define test_bit_le(nr, addr) \ 45static inline int test_bit_le(int nr, const void *addr)
35 test_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 46{
36#define __set_bit_le(nr, addr) \ 47 return test_bit(nr ^ BITOP_LE_SWIZZLE, addr);
37 __set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 48}
38#define __clear_bit_le(nr, addr) \ 49
39 __clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 50static inline void __set_bit_le(int nr, void *addr)
40 51{
41#define test_and_set_bit_le(nr, addr) \ 52 __set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
42 test_and_set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 53}
43#define test_and_clear_bit_le(nr, addr) \ 54
44 test_and_clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 55static inline void __clear_bit_le(int nr, void *addr)
45 56{
46#define __test_and_set_bit_le(nr, addr) \ 57 __clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
47 __test_and_set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 58}
48#define __test_and_clear_bit_le(nr, addr) \ 59
49 __test_and_clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 60static inline int test_and_set_bit_le(int nr, void *addr)
61{
62 return test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
63}
64
65static inline int test_and_clear_bit_le(int nr, void *addr)
66{
67 return test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
68}
69
70static inline int __test_and_set_bit_le(int nr, void *addr)
71{
72 return __test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
73}
74
75static inline int __test_and_clear_bit_le(int nr, void *addr)
76{
77 return __test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
78}
50 79
51#endif /* _ASM_GENERIC_BITOPS_LE_H_ */ 80#endif /* _ASM_GENERIC_BITOPS_LE_H_ */