[libvirt] [PATCH v4 1/9] bitmap: new member variable and function renaming
Laine Stump
laine at laine.org
Mon Sep 17 16:27:11 UTC 2012
On 09/14/2012 03:46 AM, Hu Tao wrote:
> 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;
> }
I had to apply the following small patch to get a successful build with
libxl enabled.
I'll be pushing with that change squashed in as soon as I've completed
make check on the rest of the series.
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 1638314..eccae29 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -869,7 +869,7 @@ libxlStartup(int privileged) {
/* Allocate bitmap for vnc port reservation */
if ((libxl_driver->reservedVNCPorts =
- virBitmapAlloc(LIBXL_VNC_PORT_MAX - LIBXL_VNC_PORT_MIN)) == NULL)
+ virBitmapNew(LIBXL_VNC_PORT_MAX - LIBXL_VNC_PORT_MIN)) == NULL)
goto out_of_memory;
if (virDomainObjListInit(&libxl_driver->domains) < 0)
More information about the libvir-list
mailing list