[libvirt] [PATCH v4 1/9] bitmap: new member variable and function renaming

Hu Tao hutao at cn.fujitsu.com
Fri Sep 14 07:46:56 UTC 2012


Add a new member variable map_len to store map len of bitmap.
and rename size to max_bit accordingly.

rename virBitmapAlloc to virBitmapNew.
---
 src/conf/domain_conf.c       |    2 +-
 src/conf/snapshot_conf.c     |    2 +-
 src/libvirt_private.syms     |    2 +-
 src/qemu/qemu_capabilities.c |    2 +-
 src/qemu/qemu_driver.c       |    2 +-
 src/util/bitmap.c            |   30 +++++++++++++-----------------
 src/util/bitmap.h            |    2 +-
 tools/virsh-domain.c         |    2 +-
 8 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 292cc9a..3a44432 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8871,7 +8871,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
     if (STREQ(def->os.type, "hvm")) {
         if (virDomainDefParseBootXML(ctxt, def, &bootMapSize) < 0)
             goto error;
-        if (bootMapSize && !(bootMap = virBitmapAlloc(bootMapSize)))
+        if (bootMapSize && !(bootMap = virBitmapNew(bootMapSize)))
             goto no_memory;
     }
 
diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c
index e13cdd6..ba5b188 100644
--- a/src/conf/snapshot_conf.c
+++ b/src/conf/snapshot_conf.c
@@ -357,7 +357,7 @@ virDomainSnapshotAlignDisks(virDomainSnapshotDefPtr def,
         goto cleanup;
     }
 
-    if (!(map = virBitmapAlloc(def->dom->ndisks))) {
+    if (!(map = virBitmapNew(def->dom->ndisks))) {
         virReportOOMError();
         goto cleanup;
     }
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 8dfb4ce..557fa0e 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -6,11 +6,11 @@
 #
 
 # bitmap.h
-virBitmapAlloc;
 virBitmapClearBit;
 virBitmapCopy;
 virBitmapFree;
 virBitmapGetBit;
+virBitmapNew;
 virBitmapSetBit;
 virBitmapString;
 
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index ed85b6f..cf9de69 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1649,7 +1649,7 @@ qemuCapsNew(void)
 {
     virBitmapPtr caps;
 
-    if (!(caps = virBitmapAlloc(QEMU_CAPS_LAST)))
+    if (!(caps = virBitmapNew(QEMU_CAPS_LAST)))
         virReportOOMError();
 
     return caps;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index a410521..7a8b475 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -696,7 +696,7 @@ qemudStartup(int privileged) {
      * do this before the config is loaded properly, since the port
      * numbers are configurable now */
     if ((qemu_driver->reservedRemotePorts =
-         virBitmapAlloc(qemu_driver->remotePortMax - qemu_driver->remotePortMin)) == NULL)
+         virBitmapNew(qemu_driver->remotePortMax - qemu_driver->remotePortMin)) == NULL)
         goto out_of_memory;
 
     /* We should always at least have the 'nop' manager, so
diff --git a/src/util/bitmap.c b/src/util/bitmap.c
index cd52802..dc9c28a 100644
--- a/src/util/bitmap.c
+++ b/src/util/bitmap.c
@@ -36,7 +36,8 @@
 
 
 struct _virBitmap {
-    size_t size;
+    size_t max_bit;
+    size_t map_len;
     unsigned long *map;
 };
 
@@ -48,7 +49,7 @@ struct _virBitmap {
 
 
 /**
- * virBitmapAlloc:
+ * virBitmapNew:
  * @size: number of bits
  *
  * Allocate a bitmap capable of containing @size bits.
@@ -56,7 +57,7 @@ struct _virBitmap {
  * Returns a pointer to the allocated bitmap or NULL if
  * memory cannot be allocated.
  */
-virBitmapPtr virBitmapAlloc(size_t size)
+virBitmapPtr virBitmapNew(size_t size)
 {
     virBitmapPtr bitmap;
     size_t sz;
@@ -75,7 +76,8 @@ virBitmapPtr virBitmapAlloc(size_t size)
         return NULL;
     }
 
-    bitmap->size = size;
+    bitmap->max_bit = size;
+    bitmap->map_len = sz;
     return bitmap;
 }
 
@@ -83,7 +85,7 @@ virBitmapPtr virBitmapAlloc(size_t size)
  * virBitmapFree:
  * @bitmap: previously allocated bitmap
  *
- * Free @bitmap previously allocated by virBitmapAlloc.
+ * Free @bitmap previously allocated by virBitmapNew.
  */
 void virBitmapFree(virBitmapPtr bitmap)
 {
@@ -96,17 +98,12 @@ void virBitmapFree(virBitmapPtr bitmap)
 
 int virBitmapCopy(virBitmapPtr dst, virBitmapPtr src)
 {
-    size_t sz;
-
-    if (dst->size != src->size) {
+    if (dst->max_bit != src->max_bit) {
         errno = EINVAL;
         return -1;
     }
 
-    sz = (src->size + VIR_BITMAP_BITS_PER_UNIT - 1) /
-        VIR_BITMAP_BITS_PER_UNIT;
-
-    memcpy(dst->map, src->map, sz * sizeof(src->map[0]));
+    memcpy(dst->map, src->map, src->map_len * sizeof(src->map[0]));
 
     return 0;
 }
@@ -123,7 +120,7 @@ int virBitmapCopy(virBitmapPtr dst, virBitmapPtr src)
  */
 int virBitmapSetBit(virBitmapPtr bitmap, size_t b)
 {
-    if (bitmap->size <= b)
+    if (bitmap->max_bit <= b)
         return -1;
 
     bitmap->map[VIR_BITMAP_UNIT_OFFSET(b)] |= VIR_BITMAP_BIT(b);
@@ -141,7 +138,7 @@ int virBitmapSetBit(virBitmapPtr bitmap, size_t b)
  */
 int virBitmapClearBit(virBitmapPtr bitmap, size_t b)
 {
-    if (bitmap->size <= b)
+    if (bitmap->max_bit <= b)
         return -1;
 
     bitmap->map[VIR_BITMAP_UNIT_OFFSET(b)] &= ~VIR_BITMAP_BIT(b);
@@ -161,7 +158,7 @@ int virBitmapClearBit(virBitmapPtr bitmap, size_t b)
  */
 int virBitmapGetBit(virBitmapPtr bitmap, size_t b, bool *result)
 {
-    if (bitmap->size <= b)
+    if (bitmap->max_bit <= b)
         return -1;
 
     *result = !!(bitmap->map[VIR_BITMAP_UNIT_OFFSET(b)] & VIR_BITMAP_BIT(b));
@@ -183,8 +180,7 @@ char *virBitmapString(virBitmapPtr bitmap)
 
     virBufferAddLit(&buf, "0x");
 
-    sz = (bitmap->size + VIR_BITMAP_BITS_PER_UNIT - 1) /
-          VIR_BITMAP_BITS_PER_UNIT;
+    sz = bitmap->map_len;
 
     while (sz--) {
         virBufferAsprintf(&buf, "%0*lx",
diff --git a/src/util/bitmap.h b/src/util/bitmap.h
index 1d8750e..2609509 100644
--- a/src/util/bitmap.h
+++ b/src/util/bitmap.h
@@ -34,7 +34,7 @@ typedef virBitmap *virBitmapPtr;
 /*
  * Allocate a bitmap capable of containing @size bits.
  */
-virBitmapPtr virBitmapAlloc(size_t size) ATTRIBUTE_RETURN_CHECK;
+virBitmapPtr virBitmapNew(size_t size) ATTRIBUTE_RETURN_CHECK;
 
 /*
  * Free previously allocated bitmap
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index c6695b3..a7d6c37 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -7178,7 +7178,7 @@ vshNodeIsSuperset(xmlNodePtr n1, xmlNodePtr n2)
     if (n1_child_size == 0 && n2_child_size == 0)
         return true;
 
-    if (!(bitmap = virBitmapAlloc(n1_child_size))) {
+    if (!(bitmap = virBitmapNew(n1_child_size))) {
         virReportOOMError();
         return false;
     }
-- 
1.7.10.2




More information about the libvir-list mailing list