1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __ASM_GENERIC_BITOPS_H 3*4882a593Smuzhiyun #define __ASM_GENERIC_BITOPS_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun /* 6*4882a593Smuzhiyun * For the benefit of those who are trying to port Linux to another 7*4882a593Smuzhiyun * architecture, here are some C-language equivalents. They should 8*4882a593Smuzhiyun * generate reasonable code, so take a look at what your compiler spits 9*4882a593Smuzhiyun * out before rolling your own buggy implementation in assembly language. 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun * C language equivalents written by Theodore Ts'o, 9/26/92 12*4882a593Smuzhiyun */ 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include <linux/irqflags.h> 15*4882a593Smuzhiyun #include <linux/compiler.h> 16*4882a593Smuzhiyun #include <asm/barrier.h> 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #include <asm-generic/bitops/__ffs.h> 19*4882a593Smuzhiyun #include <asm-generic/bitops/ffz.h> 20*4882a593Smuzhiyun #include <asm-generic/bitops/fls.h> 21*4882a593Smuzhiyun #include <asm-generic/bitops/__fls.h> 22*4882a593Smuzhiyun #include <asm-generic/bitops/fls64.h> 23*4882a593Smuzhiyun #include <asm-generic/bitops/find.h> 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #ifndef _LINUX_BITOPS_H 26*4882a593Smuzhiyun #error only <linux/bitops.h> can be included directly 27*4882a593Smuzhiyun #endif 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #include <asm-generic/bitops/sched.h> 30*4882a593Smuzhiyun #include <asm-generic/bitops/ffs.h> 31*4882a593Smuzhiyun #include <asm-generic/bitops/hweight.h> 32*4882a593Smuzhiyun #include <asm-generic/bitops/lock.h> 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #include <asm-generic/bitops/atomic.h> 35*4882a593Smuzhiyun #include <asm-generic/bitops/non-atomic.h> 36*4882a593Smuzhiyun #include <asm-generic/bitops/le.h> 37*4882a593Smuzhiyun #include <asm-generic/bitops/ext2-atomic.h> 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun #endif /* __ASM_GENERIC_BITOPS_H */ 40