Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
1.3 kB · 64 lines
C
at master
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465/* SPDX-License-Identifier: GPL-2.0 */#ifndef _ASM_GENERIC_BITOPS_LE_H_#define _ASM_GENERIC_BITOPS_LE_H_
#include <asm/types.h>#include <asm/byteorder.h>
#if defined(__LITTLE_ENDIAN)
#define BITOP_LE_SWIZZLE 0
#elif defined(__BIG_ENDIAN)
#define BITOP_LE_SWIZZLE ((BITS_PER_LONG-1) & ~0x7)
#endif
static inline int test_bit_le(int nr, const void *addr){ return test_bit(nr ^ BITOP_LE_SWIZZLE, addr);}
static inline void set_bit_le(int nr, void *addr){ set_bit(nr ^ BITOP_LE_SWIZZLE, addr);}
static inline void clear_bit_le(int nr, void *addr){ clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);}
static inline void __set_bit_le(int nr, void *addr){ __set_bit(nr ^ BITOP_LE_SWIZZLE, addr);}
static inline void __clear_bit_le(int nr, void *addr){ __clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);}
static inline int test_and_set_bit_le(int nr, void *addr){ return test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);}
static inline int test_and_clear_bit_le(int nr, void *addr){ return test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);}
static inline int __test_and_set_bit_le(int nr, void *addr){ return __test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);}
static inline int __test_and_clear_bit_le(int nr, void *addr){ return __test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);}
#endif /* _ASM_GENERIC_BITOPS_LE_H_ */