]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: bitmap: Modify virBitmapSubtract to virBitmapIntersect
authorPeter Krempa <pkrempa@redhat.com>
Wed, 12 Jul 2017 11:30:47 +0000 (13:30 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 20 Jul 2017 14:14:50 +0000 (16:14 +0200)
Since virBitmapSubtract is unused modify it to perform bitmap
intersection.

src/libvirt_private.syms
src/util/virbitmap.c
src/util/virbitmap.h
tests/virbitmaptest.c

index 36caf6fbfda4bb347a5d79610632bf08a8ed97c9..a35ad0f859787c936d12bfc8c9007e550c060c47 100644 (file)
@@ -1298,6 +1298,7 @@ virBitmapEqual;
 virBitmapFormat;
 virBitmapFree;
 virBitmapGetBit;
+virBitmapIntersect;
 virBitmapIsAllClear;
 virBitmapIsAllSet;
 virBitmapIsBitSet;
@@ -1318,7 +1319,6 @@ virBitmapSetBit;
 virBitmapSetBitExpand;
 virBitmapSize;
 virBitmapString;
-virBitmapSubtract;
 virBitmapToData;
 virBitmapToDataBuf;
 
index eac63d9974cb2e877f5def7f30f55f35f7ae11c1..a5077fe7c8bfbcfdbce8a06ac20187b71a8ae8ad 100644 (file)
@@ -1091,15 +1091,15 @@ virBitmapOverlaps(virBitmapPtr b1,
 }
 
 /**
- * virBitmapSubtract:
- * @a: minuend/result
- * @b: subtrahend
+ * virBitmapIntersect:
+ * @a: bitmap, modified to contain result
+ * @b: bitmap
  *
- * Performs bitwise subtraction: a = a - b
+ * Performs intersection of two bitmaps: a = intersect(a, b)
  */
 void
-virBitmapSubtract(virBitmapPtr a,
-                  virBitmapPtr b)
+virBitmapIntersect(virBitmapPtr a,
+                   virBitmapPtr b)
 {
     size_t i;
     size_t max = a->map_len;
@@ -1108,5 +1108,5 @@ virBitmapSubtract(virBitmapPtr a,
         max = b->map_len;
 
     for (i = 0; i < max; i++)
-        a->map[i] &= ~b->map[i];
+        a->map[i] &= b->map[i];
 }
index 36282af1cddf2aa340ee3c134e7d7cc938ba73ac..ffa3c42d792b9f9e177f891ef0cfd99d6ba5a667 100644 (file)
@@ -143,7 +143,7 @@ bool virBitmapOverlaps(virBitmapPtr b1,
                        virBitmapPtr b2)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
-void virBitmapSubtract(virBitmapPtr a, virBitmapPtr b)
+void virBitmapIntersect(virBitmapPtr a, virBitmapPtr b)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
 #endif
index e5305d0223158f6a334321bde128af90424bb23e..76005117e793b8254835b2ecc76574d1a59b12f4 100644 (file)
@@ -589,10 +589,11 @@ test11(const void *opaque)
         virBitmapParse(data->res, &resmap, 256) < 0)
         goto cleanup;
 
-    virBitmapSubtract(amap, bmap);
+    virBitmapIntersect(amap, bmap);
 
     if (!virBitmapEqual(amap, resmap)) {
-        fprintf(stderr, "\n bitmap subtraction failed: '%s'-'%s'!='%s'\n",
+        fprintf(stderr,
+                "\n bitmap intersection failed: intersect('%s','%s') !='%s'\n",
                 data->a, data->b, data->res);
         goto cleanup;
     }
@@ -700,13 +701,13 @@ mymain(void)
         ret = -1;
 
     virTestCounterReset("test11-");
-    TESTBINARYOP("0", "0", "0,^0", test11);
-    TESTBINARYOP("0-3", "0", "1-3", test11);
-    TESTBINARYOP("0-3", "0,3", "1-2", test11);
+    TESTBINARYOP("0", "0", "0", test11);
+    TESTBINARYOP("0-3", "0", "0", test11);
+    TESTBINARYOP("0-3", "0,3", "0,3", test11);
     TESTBINARYOP("0,^0", "0", "0,^0", test11);
-    TESTBINARYOP("0-3", "0-3", "0,^0", test11);
-    TESTBINARYOP("0-3", "0,^0", "0-3", test11);
-    TESTBINARYOP("0,2", "1,3", "0,2", test11);
+    TESTBINARYOP("0-3", "0-3", "0-3", test11);
+    TESTBINARYOP("0-3", "0,^0", "0,^0", test11);
+    TESTBINARYOP("0,2", "1,3", "0,^0", test11);
 
     if (virTestRun("test12", test12, NULL) < 0)
         ret = -1;