Commit 708ff2a0097b02d32d375b66996661f36cd4d6d1
Committed by
Arnd Bergmann
1 parent
c24cef0b68
Exists in
master
and in
7 other branches
bitops: make asm-generic/bitops/find.h more generic
asm-generic/bitops/find.h has the extern declarations of find_next_bit() and find_next_zero_bit() and the macro definitions of find_first_bit() and find_first_zero_bit(). It is only usable by the architectures which enables CONFIG_GENERIC_FIND_NEXT_BIT and disables CONFIG_GENERIC_FIND_FIRST_BIT. x86 and tile enable both CONFIG_GENERIC_FIND_NEXT_BIT and CONFIG_GENERIC_FIND_FIRST_BIT. These architectures cannot include asm-generic/bitops/find.h in their asm/bitops.h. So ifdefed extern declarations of find_first_bit and find_first_zero_bit() are put in linux/bitops.h. This makes asm-generic/bitops/find.h usable by these architectures and use it. Also this change is needed for the forthcoming duplicated extern declarations cleanup. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: x86@kernel.org Cc: Chris Metcalf <cmetcalf@tilera.com>
Showing 4 changed files with 28 additions and 22 deletions Side-by-side Diff
arch/tile/include/asm/bitops.h
... | ... | @@ -120,6 +120,7 @@ |
120 | 120 | |
121 | 121 | #include <asm-generic/bitops/const_hweight.h> |
122 | 122 | #include <asm-generic/bitops/lock.h> |
123 | +#include <asm-generic/bitops/find.h> | |
123 | 124 | #include <asm-generic/bitops/sched.h> |
124 | 125 | #include <asm-generic/bitops/ext2-non-atomic.h> |
125 | 126 | #include <asm-generic/bitops/minix.h> |
arch/x86/include/asm/bitops.h
include/asm-generic/bitops/find.h
... | ... | @@ -9,8 +9,33 @@ |
9 | 9 | long size, unsigned long offset); |
10 | 10 | #endif |
11 | 11 | |
12 | +#ifdef CONFIG_GENERIC_FIND_FIRST_BIT | |
13 | + | |
14 | +/** | |
15 | + * find_first_bit - find the first set bit in a memory region | |
16 | + * @addr: The address to start the search at | |
17 | + * @size: The maximum size to search | |
18 | + * | |
19 | + * Returns the bit number of the first set bit. | |
20 | + */ | |
21 | +extern unsigned long find_first_bit(const unsigned long *addr, | |
22 | + unsigned long size); | |
23 | + | |
24 | +/** | |
25 | + * find_first_zero_bit - find the first cleared bit in a memory region | |
26 | + * @addr: The address to start the search at | |
27 | + * @size: The maximum size to search | |
28 | + * | |
29 | + * Returns the bit number of the first cleared bit. | |
30 | + */ | |
31 | +extern unsigned long find_first_zero_bit(const unsigned long *addr, | |
32 | + unsigned long size); | |
33 | +#else /* CONFIG_GENERIC_FIND_FIRST_BIT */ | |
34 | + | |
12 | 35 | #define find_first_bit(addr, size) find_next_bit((addr), (size), 0) |
13 | 36 | #define find_first_zero_bit(addr, size) find_next_zero_bit((addr), (size), 0) |
37 | + | |
38 | +#endif /* CONFIG_GENERIC_FIND_FIRST_BIT */ | |
14 | 39 | |
15 | 40 | #endif /*_ASM_GENERIC_BITOPS_FIND_H_ */ |
include/linux/bitops.h
... | ... | @@ -136,28 +136,6 @@ |
136 | 136 | } |
137 | 137 | |
138 | 138 | #ifdef __KERNEL__ |
139 | -#ifdef CONFIG_GENERIC_FIND_FIRST_BIT | |
140 | - | |
141 | -/** | |
142 | - * find_first_bit - find the first set bit in a memory region | |
143 | - * @addr: The address to start the search at | |
144 | - * @size: The maximum size to search | |
145 | - * | |
146 | - * Returns the bit number of the first set bit. | |
147 | - */ | |
148 | -extern unsigned long find_first_bit(const unsigned long *addr, | |
149 | - unsigned long size); | |
150 | - | |
151 | -/** | |
152 | - * find_first_zero_bit - find the first cleared bit in a memory region | |
153 | - * @addr: The address to start the search at | |
154 | - * @size: The maximum size to search | |
155 | - * | |
156 | - * Returns the bit number of the first cleared bit. | |
157 | - */ | |
158 | -extern unsigned long find_first_zero_bit(const unsigned long *addr, | |
159 | - unsigned long size); | |
160 | -#endif /* CONFIG_GENERIC_FIND_FIRST_BIT */ | |
161 | 139 | |
162 | 140 | #ifdef CONFIG_GENERIC_FIND_LAST_BIT |
163 | 141 | /** |