|
@@ -32,6 +32,17 @@ extern unsigned long __sw_hweight64(__u64 w);
|
|
|
(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))
|
|
|
+
|
|
|
static __inline__ int get_bitmask_order(unsigned int count)
|
|
|
{
|
|
|
int order;
|