xref: /openbmc/linux/include/asm-generic/bitops.h (revision 95e9fd10)
1 #ifndef __ASM_GENERIC_BITOPS_H
2 #define __ASM_GENERIC_BITOPS_H
3 
4 /*
5  * For the benefit of those who are trying to port Linux to another
6  * architecture, here are some C-language equivalents.  You should
7  * recode these in the native assembly language, if at all possible.
8  *
9  * C language equivalents written by Theodore Ts'o, 9/26/92
10  */
11 
12 #include <linux/irqflags.h>
13 #include <linux/compiler.h>
14 
15 /*
16  * clear_bit may not imply a memory barrier
17  */
18 #ifndef smp_mb__before_clear_bit
19 #define smp_mb__before_clear_bit()	smp_mb()
20 #define smp_mb__after_clear_bit()	smp_mb()
21 #endif
22 
23 #include <asm-generic/bitops/__ffs.h>
24 #include <asm-generic/bitops/ffz.h>
25 #include <asm-generic/bitops/fls.h>
26 #include <asm-generic/bitops/__fls.h>
27 #include <asm-generic/bitops/fls64.h>
28 #include <asm-generic/bitops/find.h>
29 
30 #ifndef _LINUX_BITOPS_H
31 #error only <linux/bitops.h> can be included directly
32 #endif
33 
34 #include <asm-generic/bitops/sched.h>
35 #include <asm-generic/bitops/ffs.h>
36 #include <asm-generic/bitops/hweight.h>
37 #include <asm-generic/bitops/lock.h>
38 
39 #include <asm-generic/bitops/atomic.h>
40 #include <asm-generic/bitops/non-atomic.h>
41 #include <asm-generic/bitops/le.h>
42 #include <asm-generic/bitops/ext2-atomic.h>
43 
44 #endif /* __ASM_GENERIC_BITOPS_H */
45