diff options
Diffstat (limited to 'include/linux/bitops.h')
| -rw-r--r-- | include/linux/bitops.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 94300fe46cce..a3b6b82108b9 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h | |||
| @@ -27,11 +27,22 @@ extern unsigned long __sw_hweight64(__u64 w); | |||
| 27 | (bit) = find_next_bit((addr), (size), (bit) + 1)) | 27 | (bit) = find_next_bit((addr), (size), (bit) + 1)) |
| 28 | 28 | ||
| 29 | /* same as for_each_set_bit() but use bit as value to start with */ | 29 | /* same as for_each_set_bit() but use bit as value to start with */ |
| 30 | #define for_each_set_bit_cont(bit, addr, size) \ | 30 | #define for_each_set_bit_from(bit, addr, size) \ |
| 31 | for ((bit) = find_next_bit((addr), (size), (bit)); \ | 31 | for ((bit) = find_next_bit((addr), (size), (bit)); \ |
| 32 | (bit) < (size); \ | 32 | (bit) < (size); \ |
| 33 | (bit) = find_next_bit((addr), (size), (bit) + 1)) | 33 | (bit) = find_next_bit((addr), (size), (bit) + 1)) |
| 34 | 34 | ||
| 35 | #define for_each_clear_bit(bit, addr, size) \ | ||
| 36 | for ((bit) = find_first_zero_bit((addr), (size)); \ | ||
| 37 | (bit) < (size); \ | ||
| 38 | (bit) = find_next_zero_bit((addr), (size), (bit) + 1)) | ||
| 39 | |||
| 40 | /* same as for_each_clear_bit() but use bit as value to start with */ | ||
| 41 | #define for_each_clear_bit_from(bit, addr, size) \ | ||
| 42 | for ((bit) = find_next_zero_bit((addr), (size), (bit)); \ | ||
| 43 | (bit) < (size); \ | ||
| 44 | (bit) = find_next_zero_bit((addr), (size), (bit) + 1)) | ||
| 45 | |||
| 35 | static __inline__ int get_bitmask_order(unsigned int count) | 46 | static __inline__ int get_bitmask_order(unsigned int count) |
| 36 | { | 47 | { |
| 37 | int order; | 48 | int order; |
