le.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef _ASM_GENERIC_BITOPS_LE_H_
  2. #define _ASM_GENERIC_BITOPS_LE_H_
  3. #include <asm/types.h>
  4. #include <asm/byteorder.h>
  5. #define BITOP_WORD(nr) ((nr) / BITS_PER_LONG)
  6. #define BITOP_LE_SWIZZLE ((BITS_PER_LONG-1) & ~0x7)
  7. #if defined(__LITTLE_ENDIAN)
  8. #define generic_test_le_bit(nr, addr) test_bit(nr, addr)
  9. #define generic___set_le_bit(nr, addr) __set_bit(nr, addr)
  10. #define generic___clear_le_bit(nr, addr) __clear_bit(nr, addr)
  11. #define generic_test_and_set_le_bit(nr, addr) test_and_set_bit(nr, addr)
  12. #define generic_test_and_clear_le_bit(nr, addr) test_and_clear_bit(nr, addr)
  13. #define generic___test_and_set_le_bit(nr, addr) __test_and_set_bit(nr, addr)
  14. #define generic___test_and_clear_le_bit(nr, addr) __test_and_clear_bit(nr, addr)
  15. #define generic_find_next_zero_le_bit(addr, size, offset) find_next_zero_bit(addr, size, offset)
  16. #elif defined(__BIG_ENDIAN)
  17. #define generic_test_le_bit(nr, addr) \
  18. test_bit((nr) ^ BITOP_LE_SWIZZLE, (addr))
  19. #define generic___set_le_bit(nr, addr) \
  20. __set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr))
  21. #define generic___clear_le_bit(nr, addr) \
  22. __clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr))
  23. #define generic_test_and_set_le_bit(nr, addr) \
  24. test_and_set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr))
  25. #define generic_test_and_clear_le_bit(nr, addr) \
  26. test_and_clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr))
  27. #define generic___test_and_set_le_bit(nr, addr) \
  28. __test_and_set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr))
  29. #define generic___test_and_clear_le_bit(nr, addr) \
  30. __test_and_clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr))
  31. extern unsigned long generic_find_next_zero_le_bit(const unsigned long *addr,
  32. unsigned long size, unsigned long offset);
  33. #else
  34. #error "Please fix <asm/byteorder.h>"
  35. #endif
  36. #define generic_find_first_zero_le_bit(addr, size) \
  37. generic_find_next_zero_le_bit((addr), (size), 0)
  38. #endif /* _ASM_GENERIC_BITOPS_LE_H_ */