---
src/libvirt_private.syms | 1 +
src/util/virbitmap.c | 17 +++++++++++++++++
src/util/virbitmap.h | 3 +++
3 files changed, 21 insertions(+)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index b7b9631..6b831b3 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1046,6 +1046,7 @@ virBitmapEqual;
virBitmapFormat;
virBitmapFree;
virBitmapGetBit;
+virBitmapIsAllClear;
virBitmapIsAllSet;
virBitmapNew;
virBitmapNewCopy;
diff --git a/src/util/virbitmap.c b/src/util/virbitmap.c
index 21509ac..998c302 100644
--- a/src/util/virbitmap.c
+++ b/src/util/virbitmap.c
@@ -591,6 +591,23 @@ bool virBitmapIsAllSet(virBitmapPtr bitmap)
}
/**
+ * virBitmapIsAllClear:
+ * @bitmap: the bitmap to check
+ *
+ * check if all bits in @bitmap are clear
+ */
+bool virBitmapIsAllClear(virBitmapPtr bitmap)
+{
+ int i;
+
+ for (i = 0; i < bitmap->map_len; i++)
+ if (bitmap->map[i] != 0)
+ return false;
+
+ return true;
+}
+
+/**
* virBitmapNextSetBit:
* @bitmap: the bitmap
* @pos: the position after which to search for a set bit
diff --git a/src/util/virbitmap.h b/src/util/virbitmap.h
index 044c7a6..b682523 100644
--- a/src/util/virbitmap.h
+++ b/src/util/virbitmap.h
@@ -100,6 +100,9 @@ void virBitmapClearAll(virBitmapPtr bitmap)
bool virBitmapIsAllSet(virBitmapPtr bitmap)
ATTRIBUTE_NONNULL(1);
+bool virBitmapIsAllClear(virBitmapPtr bitmap)
+ ATTRIBUTE_NONNULL(1);
+
ssize_t virBitmapNextSetBit(virBitmapPtr bitmap, ssize_t pos)
ATTRIBUTE_NONNULL(1);
--
1.8.1.4