}
/**
- * 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;
max = b->map_len;
for (i = 0; i < max; i++)
- a->map[i] &= ~b->map[i];
+ a->map[i] &= b->map[i];
}
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;
}
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;