home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-generic / bitops / le.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.8 KB  |  54 lines

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