Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/asm-generic/bitops/le.h
26289 views
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 0
11
12
#elif defined(__BIG_ENDIAN)
13
14
#define BITOP_LE_SWIZZLE ((BITS_PER_LONG-1) & ~0x7)
15
16
#endif
17
18
19
static inline int test_bit_le(int nr, const void *addr)
20
{
21
return test_bit(nr ^ BITOP_LE_SWIZZLE, addr);
22
}
23
24
static inline void set_bit_le(int nr, void *addr)
25
{
26
set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
27
}
28
29
static inline void clear_bit_le(int nr, void *addr)
30
{
31
clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
32
}
33
34
static inline void __set_bit_le(int nr, void *addr)
35
{
36
__set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
37
}
38
39
static inline void __clear_bit_le(int nr, void *addr)
40
{
41
__clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
42
}
43
44
static 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
49
static 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
54
static 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
59
static 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
66