X-Git-Url: https://git.openfabrics.org/?p=~shefty%2Frdma-dev.git;a=blobdiff_plain;f=include%2Flinux%2Fbitops.h;h=94300fe46ccedd4ca5333fad2b0bac4a74b704b0;hp=fc8a3ffce3204b7f887c401bb2e14bfc229cc5fd;hb=a18d3afefa0104419b5e069af5922bb57a302426;hpb=f2ea0f5f04c97b48c88edccba52b0682fbe45087 diff --git a/include/linux/bitops.h b/include/linux/bitops.h index fc8a3ffce32..94300fe46cc 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -22,8 +22,14 @@ extern unsigned long __sw_hweight64(__u64 w); #include #define for_each_set_bit(bit, addr, size) \ - for ((bit) = find_first_bit((addr), (size)); \ - (bit) < (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_cont(bit, addr, size) \ + for ((bit) = find_next_bit((addr), (size), (bit)); \ + (bit) < (size); \ (bit) = find_next_bit((addr), (size), (bit) + 1)) static __inline__ int get_bitmask_order(unsigned int count)