cpumask: add cpumask_weight_andnot()
[linux-block.git] / lib / bitmap.c
index 09522af227f17efdf12e55763cc278acf87d5ba7..b97692854966e0073e32dfd4589b42ae3359c9cb 100644 (file)
@@ -348,6 +348,13 @@ unsigned int __bitmap_weight_and(const unsigned long *bitmap1,
 }
 EXPORT_SYMBOL(__bitmap_weight_and);
 
+unsigned int __bitmap_weight_andnot(const unsigned long *bitmap1,
+                               const unsigned long *bitmap2, unsigned int bits)
+{
+       return BITMAP_WEIGHT(bitmap1[idx] & ~bitmap2[idx], bits);
+}
+EXPORT_SYMBOL(__bitmap_weight_andnot);
+
 void __bitmap_set(unsigned long *map, unsigned int start, int len)
 {
        unsigned long *p = map + BIT_WORD(start);