brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · d51beff Raw
65 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _ASM_GENERIC_BITOPS_LE_H_3#define _ASM_GENERIC_BITOPS_LE_H_4 5#include <asm/types.h>6#include <asm/byteorder.h>7 8#if defined(__LITTLE_ENDIAN)9 10#define BITOP_LE_SWIZZLE	011 12#elif defined(__BIG_ENDIAN)13 14#define BITOP_LE_SWIZZLE	((BITS_PER_LONG-1) & ~0x7)15 16#endif17 18 19static inline int test_bit_le(int nr, const void *addr)20{21	return test_bit(nr ^ BITOP_LE_SWIZZLE, addr);22}23 24static inline void set_bit_le(int nr, void *addr)25{26	set_bit(nr ^ BITOP_LE_SWIZZLE, addr);27}28 29static inline void clear_bit_le(int nr, void *addr)30{31	clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);32}33 34static inline void __set_bit_le(int nr, void *addr)35{36	__set_bit(nr ^ BITOP_LE_SWIZZLE, addr);37}38 39static inline void __clear_bit_le(int nr, void *addr)40{41	__clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);42}43 44static inline int test_and_set_bit_le(int nr, void *addr)45{46	return test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);47}48 49static inline int test_and_clear_bit_le(int nr, void *addr)50{51	return test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);52}53 54static inline int __test_and_set_bit_le(int nr, void *addr)55{56	return __test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);57}58 59static inline int __test_and_clear_bit_le(int nr, void *addr)60{61	return __test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);62}63 64#endif /* _ASM_GENERIC_BITOPS_LE_H_ */65