mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 07:50:04 +00:00
include/linux: move for_each_bit() macros from bitops.h to find.h
for_each_bit() macros depend on find_bit() machinery, and so the proper place for them is the find.h header. Signed-off-by: Yury Norov <yury.norov@gmail.com> Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
This commit is contained in:
parent
9b51d9d866
commit
bc9d6635c2
@ -32,40 +32,6 @@ extern unsigned long __sw_hweight64(__u64 w);
|
|||||||
*/
|
*/
|
||||||
#include <asm/bitops.h>
|
#include <asm/bitops.h>
|
||||||
|
|
||||||
#define for_each_set_bit(bit, addr, size) \
|
|
||||||
for ((bit) = find_first_bit((addr), (size)); \
|
|
||||||
(bit) < (size); \
|
|
||||||
(bit) = find_next_bit((addr), (size), (bit) + 1))
|
|
||||||
|
|
||||||
/* same as for_each_set_bit() but use bit as value to start with */
|
|
||||||
#define for_each_set_bit_from(bit, addr, size) \
|
|
||||||
for ((bit) = find_next_bit((addr), (size), (bit)); \
|
|
||||||
(bit) < (size); \
|
|
||||||
(bit) = find_next_bit((addr), (size), (bit) + 1))
|
|
||||||
|
|
||||||
#define for_each_clear_bit(bit, addr, size) \
|
|
||||||
for ((bit) = find_first_zero_bit((addr), (size)); \
|
|
||||||
(bit) < (size); \
|
|
||||||
(bit) = find_next_zero_bit((addr), (size), (bit) + 1))
|
|
||||||
|
|
||||||
/* same as for_each_clear_bit() but use bit as value to start with */
|
|
||||||
#define for_each_clear_bit_from(bit, addr, size) \
|
|
||||||
for ((bit) = find_next_zero_bit((addr), (size), (bit)); \
|
|
||||||
(bit) < (size); \
|
|
||||||
(bit) = find_next_zero_bit((addr), (size), (bit) + 1))
|
|
||||||
|
|
||||||
/**
|
|
||||||
* for_each_set_clump8 - iterate over bitmap for each 8-bit clump with set bits
|
|
||||||
* @start: bit offset to start search and to store the current iteration offset
|
|
||||||
* @clump: location to store copy of current 8-bit clump
|
|
||||||
* @bits: bitmap address to base the search on
|
|
||||||
* @size: bitmap size in number of bits
|
|
||||||
*/
|
|
||||||
#define for_each_set_clump8(start, clump, bits, size) \
|
|
||||||
for ((start) = find_first_clump8(&(clump), (bits), (size)); \
|
|
||||||
(start) < (size); \
|
|
||||||
(start) = find_next_clump8(&(clump), (bits), (size), (start) + 8))
|
|
||||||
|
|
||||||
static inline int get_bitmask_order(unsigned int count)
|
static inline int get_bitmask_order(unsigned int count)
|
||||||
{
|
{
|
||||||
int order;
|
int order;
|
||||||
|
@ -279,4 +279,38 @@ unsigned long find_next_bit_le(const void *addr, unsigned
|
|||||||
#error "Please fix <asm/byteorder.h>"
|
#error "Please fix <asm/byteorder.h>"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define for_each_set_bit(bit, addr, size) \
|
||||||
|
for ((bit) = find_first_bit((addr), (size)); \
|
||||||
|
(bit) < (size); \
|
||||||
|
(bit) = find_next_bit((addr), (size), (bit) + 1))
|
||||||
|
|
||||||
|
/* same as for_each_set_bit() but use bit as value to start with */
|
||||||
|
#define for_each_set_bit_from(bit, addr, size) \
|
||||||
|
for ((bit) = find_next_bit((addr), (size), (bit)); \
|
||||||
|
(bit) < (size); \
|
||||||
|
(bit) = find_next_bit((addr), (size), (bit) + 1))
|
||||||
|
|
||||||
|
#define for_each_clear_bit(bit, addr, size) \
|
||||||
|
for ((bit) = find_first_zero_bit((addr), (size)); \
|
||||||
|
(bit) < (size); \
|
||||||
|
(bit) = find_next_zero_bit((addr), (size), (bit) + 1))
|
||||||
|
|
||||||
|
/* same as for_each_clear_bit() but use bit as value to start with */
|
||||||
|
#define for_each_clear_bit_from(bit, addr, size) \
|
||||||
|
for ((bit) = find_next_zero_bit((addr), (size), (bit)); \
|
||||||
|
(bit) < (size); \
|
||||||
|
(bit) = find_next_zero_bit((addr), (size), (bit) + 1))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* for_each_set_clump8 - iterate over bitmap for each 8-bit clump with set bits
|
||||||
|
* @start: bit offset to start search and to store the current iteration offset
|
||||||
|
* @clump: location to store copy of current 8-bit clump
|
||||||
|
* @bits: bitmap address to base the search on
|
||||||
|
* @size: bitmap size in number of bits
|
||||||
|
*/
|
||||||
|
#define for_each_set_clump8(start, clump, bits, size) \
|
||||||
|
for ((start) = find_first_clump8(&(clump), (bits), (size)); \
|
||||||
|
(start) < (size); \
|
||||||
|
(start) = find_next_clump8(&(clump), (bits), (size), (start) + 8))
|
||||||
|
|
||||||
#endif /*__LINUX_FIND_H_ */
|
#endif /*__LINUX_FIND_H_ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user