1930ae745SAkinobu Mita #ifndef _ASM_GENERIC_BITOPS_LE_H_ 2930ae745SAkinobu Mita #define _ASM_GENERIC_BITOPS_LE_H_ 3930ae745SAkinobu Mita 4930ae745SAkinobu Mita #include <asm/types.h> 5930ae745SAkinobu Mita #include <asm/byteorder.h> 6930ae745SAkinobu Mita 7930ae745SAkinobu Mita #if defined(__LITTLE_ENDIAN) 8930ae745SAkinobu Mita 9*63ab595fSAkinobu Mita #define BITOP_LE_SWIZZLE 0 10930ae745SAkinobu Mita 11*63ab595fSAkinobu Mita #define generic_find_next_zero_le_bit(addr, size, offset) \ 12*63ab595fSAkinobu Mita find_next_zero_bit(addr, size, offset) 13aa02ad67SAneesh Kumar K.V #define generic_find_next_le_bit(addr, size, offset) \ 14aa02ad67SAneesh Kumar K.V find_next_bit(addr, size, offset) 15*63ab595fSAkinobu Mita #define generic_find_first_zero_le_bit(addr, size) \ 16*63ab595fSAkinobu Mita find_first_zero_bit(addr, size) 17930ae745SAkinobu Mita 18930ae745SAkinobu Mita #elif defined(__BIG_ENDIAN) 19930ae745SAkinobu Mita 20*63ab595fSAkinobu Mita #define BITOP_LE_SWIZZLE ((BITS_PER_LONG-1) & ~0x7) 21*63ab595fSAkinobu Mita 22*63ab595fSAkinobu Mita extern unsigned long generic_find_next_zero_le_bit(const unsigned long *addr, 23*63ab595fSAkinobu Mita unsigned long size, unsigned long offset); 24*63ab595fSAkinobu Mita extern unsigned long generic_find_next_le_bit(const unsigned long *addr, 25*63ab595fSAkinobu Mita unsigned long size, unsigned long offset); 26*63ab595fSAkinobu Mita 27*63ab595fSAkinobu Mita #define generic_find_first_zero_le_bit(addr, size) \ 28*63ab595fSAkinobu Mita generic_find_next_zero_le_bit((addr), (size), 0) 29*63ab595fSAkinobu Mita 30*63ab595fSAkinobu Mita #else 31*63ab595fSAkinobu Mita #error "Please fix <asm/byteorder.h>" 32*63ab595fSAkinobu Mita #endif 33*63ab595fSAkinobu Mita 34930ae745SAkinobu Mita #define generic_test_le_bit(nr, addr) \ 35930ae745SAkinobu Mita test_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 36930ae745SAkinobu Mita #define generic___set_le_bit(nr, addr) \ 37930ae745SAkinobu Mita __set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 38930ae745SAkinobu Mita #define generic___clear_le_bit(nr, addr) \ 39930ae745SAkinobu Mita __clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 40930ae745SAkinobu Mita 41930ae745SAkinobu Mita #define generic_test_and_set_le_bit(nr, addr) \ 42930ae745SAkinobu Mita test_and_set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 43930ae745SAkinobu Mita #define generic_test_and_clear_le_bit(nr, addr) \ 44930ae745SAkinobu Mita test_and_clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 45930ae745SAkinobu Mita 46930ae745SAkinobu Mita #define generic___test_and_set_le_bit(nr, addr) \ 47930ae745SAkinobu Mita __test_and_set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 48930ae745SAkinobu Mita #define generic___test_and_clear_le_bit(nr, addr) \ 49930ae745SAkinobu Mita __test_and_clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) 50930ae745SAkinobu Mita 51930ae745SAkinobu Mita #endif /* _ASM_GENERIC_BITOPS_LE_H_ */ 52