Commit | Line | Data |
---|---|---|
930ae745 AM |
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) | |
aa02ad67 AK |
23 | #define generic_find_next_le_bit(addr, size, offset) \ |
24 | find_next_bit(addr, size, offset) | |
930ae745 AM |
25 | |
26 | #elif defined(__BIG_ENDIAN) | |
27 | ||
28 | #define generic_test_le_bit(nr, addr) \ | |
29 | test_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) | |
30 | #define generic___set_le_bit(nr, addr) \ | |
31 | __set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) | |
32 | #define generic___clear_le_bit(nr, addr) \ | |
33 | __clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) | |
34 | ||
35 | #define generic_test_and_set_le_bit(nr, addr) \ | |
36 | test_and_set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) | |
37 | #define generic_test_and_clear_le_bit(nr, addr) \ | |
38 | test_and_clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) | |
39 | ||
40 | #define generic___test_and_set_le_bit(nr, addr) \ | |
41 | __test_and_set_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) | |
42 | #define generic___test_and_clear_le_bit(nr, addr) \ | |
43 | __test_and_clear_bit((nr) ^ BITOP_LE_SWIZZLE, (addr)) | |
44 | ||
45 | extern unsigned long generic_find_next_zero_le_bit(const unsigned long *addr, | |
46 | unsigned long size, unsigned long offset); | |
aa02ad67 AK |
47 | extern unsigned long generic_find_next_le_bit(const unsigned long *addr, |
48 | unsigned long size, unsigned long offset); | |
930ae745 AM |
49 | |
50 | #else | |
51 | #error "Please fix <asm/byteorder.h>" | |
52 | #endif | |
53 | ||
54 | #define generic_find_first_zero_le_bit(addr, size) \ | |
55 | generic_find_next_zero_le_bit((addr), (size), 0) | |
56 | ||
57 | #endif /* _ASM_GENERIC_BITOPS_LE_H_ */ |