mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-04 00:58:38 +03:00
util: bitmap: Modify virBitmapSubtract to virBitmapIntersect
Since virBitmapSubtract is unused modify it to perform bitmap intersection.
This commit is contained in:
parent
f4258298d3
commit
a908e9e45e
@ -1298,6 +1298,7 @@ virBitmapEqual;
|
|||||||
virBitmapFormat;
|
virBitmapFormat;
|
||||||
virBitmapFree;
|
virBitmapFree;
|
||||||
virBitmapGetBit;
|
virBitmapGetBit;
|
||||||
|
virBitmapIntersect;
|
||||||
virBitmapIsAllClear;
|
virBitmapIsAllClear;
|
||||||
virBitmapIsAllSet;
|
virBitmapIsAllSet;
|
||||||
virBitmapIsBitSet;
|
virBitmapIsBitSet;
|
||||||
@ -1318,7 +1319,6 @@ virBitmapSetBit;
|
|||||||
virBitmapSetBitExpand;
|
virBitmapSetBitExpand;
|
||||||
virBitmapSize;
|
virBitmapSize;
|
||||||
virBitmapString;
|
virBitmapString;
|
||||||
virBitmapSubtract;
|
|
||||||
virBitmapToData;
|
virBitmapToData;
|
||||||
virBitmapToDataBuf;
|
virBitmapToDataBuf;
|
||||||
|
|
||||||
|
@ -1091,15 +1091,15 @@ virBitmapOverlaps(virBitmapPtr b1,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virBitmapSubtract:
|
* virBitmapIntersect:
|
||||||
* @a: minuend/result
|
* @a: bitmap, modified to contain result
|
||||||
* @b: subtrahend
|
* @b: bitmap
|
||||||
*
|
*
|
||||||
* Performs bitwise subtraction: a = a - b
|
* Performs intersection of two bitmaps: a = intersect(a, b)
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
virBitmapSubtract(virBitmapPtr a,
|
virBitmapIntersect(virBitmapPtr a,
|
||||||
virBitmapPtr b)
|
virBitmapPtr b)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
size_t max = a->map_len;
|
size_t max = a->map_len;
|
||||||
@ -1108,5 +1108,5 @@ virBitmapSubtract(virBitmapPtr a,
|
|||||||
max = b->map_len;
|
max = b->map_len;
|
||||||
|
|
||||||
for (i = 0; i < max; i++)
|
for (i = 0; i < max; i++)
|
||||||
a->map[i] &= ~b->map[i];
|
a->map[i] &= b->map[i];
|
||||||
}
|
}
|
||||||
|
@ -143,7 +143,7 @@ bool virBitmapOverlaps(virBitmapPtr b1,
|
|||||||
virBitmapPtr b2)
|
virBitmapPtr b2)
|
||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||||
|
|
||||||
void virBitmapSubtract(virBitmapPtr a, virBitmapPtr b)
|
void virBitmapIntersect(virBitmapPtr a, virBitmapPtr b)
|
||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -589,10 +589,11 @@ test11(const void *opaque)
|
|||||||
virBitmapParse(data->res, &resmap, 256) < 0)
|
virBitmapParse(data->res, &resmap, 256) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
virBitmapSubtract(amap, bmap);
|
virBitmapIntersect(amap, bmap);
|
||||||
|
|
||||||
if (!virBitmapEqual(amap, resmap)) {
|
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);
|
data->a, data->b, data->res);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -700,13 +701,13 @@ mymain(void)
|
|||||||
ret = -1;
|
ret = -1;
|
||||||
|
|
||||||
virTestCounterReset("test11-");
|
virTestCounterReset("test11-");
|
||||||
TESTBINARYOP("0", "0", "0,^0", test11);
|
TESTBINARYOP("0", "0", "0", test11);
|
||||||
TESTBINARYOP("0-3", "0", "1-3", test11);
|
TESTBINARYOP("0-3", "0", "0", test11);
|
||||||
TESTBINARYOP("0-3", "0,3", "1-2", test11);
|
TESTBINARYOP("0-3", "0,3", "0,3", test11);
|
||||||
TESTBINARYOP("0,^0", "0", "0,^0", test11);
|
TESTBINARYOP("0,^0", "0", "0,^0", test11);
|
||||||
TESTBINARYOP("0-3", "0-3", "0,^0", test11);
|
TESTBINARYOP("0-3", "0-3", "0-3", test11);
|
||||||
TESTBINARYOP("0-3", "0,^0", "0-3", test11);
|
TESTBINARYOP("0-3", "0,^0", "0,^0", test11);
|
||||||
TESTBINARYOP("0,2", "1,3", "0,2", test11);
|
TESTBINARYOP("0,2", "1,3", "0,^0", test11);
|
||||||
|
|
||||||
if (virTestRun("test12", test12, NULL) < 0)
|
if (virTestRun("test12", test12, NULL) < 0)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user