diff options
-rw-r--r-- | tools/include/asm-generic/bitops.h | 24 | ||||
-rw-r--r-- | tools/perf/MANIFEST | 3 | ||||
-rw-r--r-- | tools/perf/Makefile.perf | 1 | ||||
-rw-r--r-- | tools/perf/util/include/linux/bitops.h | 17 |
4 files changed, 37 insertions, 8 deletions
diff --git a/tools/include/asm-generic/bitops.h b/tools/include/asm-generic/bitops.h new file mode 100644 index 0000000..6dfd9d5 --- /dev/null +++ b/tools/include/asm-generic/bitops.h @@ -0,0 +1,24 @@ +#ifndef __TOOLS_ASM_GENERIC_BITOPS_H +#define __TOOLS_ASM_GENERIC_BITOPS_H + +/* + * tools/ copied this from include/asm-generic/bitops.h, bit by bit as it needed + * some functions. + * + * For the benefit of those who are trying to port Linux to another + * architecture, here are some C-language equivalents. You should + * recode these in the native assembly language, if at all possible. + * + * C language equivalents written by Theodore Ts'o, 9/26/92 + */ + +#include <asm-generic/bitops/__ffs.h> +#include <asm-generic/bitops/find.h> + +#ifndef _TOOLS_LINUX_BITOPS_H_ +#error only <linux/bitops.h> can be included directly +#endif + +#include <asm-generic/bitops/atomic.h> + +#endif /* __TOOLS_ASM_GENERIC_BITOPS_H */ diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST index bfd7e22..86f115c 100644 --- a/tools/perf/MANIFEST +++ b/tools/perf/MANIFEST @@ -7,8 +7,9 @@ tools/lib/symbol/kallsyms.h tools/lib/util/find_next_bit.c tools/include/asm/bug.h tools/include/asm-generic/bitops/atomic.h -tools/include/asm-generic/bitops/find.h tools/include/asm-generic/bitops/__ffs.h +tools/include/asm-generic/bitops/find.h +tools/include/asm-generic/bitops.h tools/include/linux/compiler.h tools/include/linux/export.h tools/include/linux/hash.h diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 1aef417..3a73a95 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -235,6 +235,7 @@ LIB_H += util/include/linux/bitops.h LIB_H += ../include/asm-generic/bitops/atomic.h LIB_H += ../include/asm-generic/bitops/find.h LIB_H += ../include/asm-generic/bitops/__ffs.h +LIB_H += ../include/asm-generic/bitops.h LIB_H += ../include/linux/compiler.h LIB_H += ../include/linux/log2.h LIB_H += util/include/linux/const.h diff --git a/tools/perf/util/include/linux/bitops.h b/tools/perf/util/include/linux/bitops.h index 292aade..5237bc9 100644 --- a/tools/perf/util/include/linux/bitops.h +++ b/tools/perf/util/include/linux/bitops.h @@ -1,5 +1,5 @@ -#ifndef _PERF_LINUX_BITOPS_H_ -#define _PERF_LINUX_BITOPS_H_ +#ifndef _TOOLS_LINUX_BITOPS_H_ +#define _TOOLS_LINUX_BITOPS_H_ #include <linux/kernel.h> #include <linux/compiler.h> @@ -19,6 +19,14 @@ #define BITS_TO_U32(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(u32)) #define BITS_TO_BYTES(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE) +/* + * Include this here because some architectures need generic_ffs/fls in + * scope + * + * XXX: this needs to be asm/bitops.h, when we get to per arch optimizations + */ +#include <asm-generic/bitops.h> + #define for_each_set_bit(bit, addr, size) \ for ((bit) = find_first_bit((addr), (size)); \ (bit) < (size); \ @@ -30,14 +38,9 @@ (bit) < (size); \ (bit) = find_next_bit((addr), (size), (bit) + 1)) -#include <asm-generic/bitops/atomic.h> - static inline unsigned long hweight_long(unsigned long w) { return sizeof(w) == 4 ? hweight32(w) : hweight64(w); } -#include <asm-generic/bitops/__ffs.h> -#include <asm-generic/bitops/find.h> - #endif |