Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _ASM_GENERIC_BITOPS_LE_H_
0003 #define _ASM_GENERIC_BITOPS_LE_H_
0004 
0005 #include <asm/types.h>
0006 #include <asm/byteorder.h>
0007 
0008 #if defined(__LITTLE_ENDIAN)
0009 
0010 #define BITOP_LE_SWIZZLE    0
0011 
0012 #elif defined(__BIG_ENDIAN)
0013 
0014 #define BITOP_LE_SWIZZLE    ((BITS_PER_LONG-1) & ~0x7)
0015 
0016 #endif
0017 
0018 
0019 static inline int test_bit_le(int nr, const void *addr)
0020 {
0021     return test_bit(nr ^ BITOP_LE_SWIZZLE, addr);
0022 }
0023 
0024 static inline void set_bit_le(int nr, void *addr)
0025 {
0026     set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
0027 }
0028 
0029 static inline void clear_bit_le(int nr, void *addr)
0030 {
0031     clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
0032 }
0033 
0034 static inline void __set_bit_le(int nr, void *addr)
0035 {
0036     __set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
0037 }
0038 
0039 static inline void __clear_bit_le(int nr, void *addr)
0040 {
0041     __clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
0042 }
0043 
0044 static inline int test_and_set_bit_le(int nr, void *addr)
0045 {
0046     return test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
0047 }
0048 
0049 static inline int test_and_clear_bit_le(int nr, void *addr)
0050 {
0051     return test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
0052 }
0053 
0054 static inline int __test_and_set_bit_le(int nr, void *addr)
0055 {
0056     return __test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
0057 }
0058 
0059 static inline int __test_and_clear_bit_le(int nr, void *addr)
0060 {
0061     return __test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
0062 }
0063 
0064 #endif /* _ASM_GENERIC_BITOPS_LE_H_ */