On 01/14/2016 11:27 AM, Peter Krempa wrote:
---
src/conf/domain_conf.c | 29 +++++++++++++++++++++++++++++
src/conf/domain_conf.h | 3 +++
src/libvirt_private.syms | 1 +
3 files changed, 33 insertions(+)
Could be closer to usage in 30/34, but I understand the current order
after reading ahead...
Does the function really need to be added to libvirt_private.syms? It's
only used in domain_conf.c. I also have similar question and concern
about virDomainDefGetVcpuSched in patch 29.
John
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b18ce8d..14b6c80 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -18335,6 +18335,35 @@ virDomainIOThreadIDAdd(virDomainDefPtr def,
return NULL;
}
+
+/*
+ * virDomainIOThreadIDMap:
+ * @def: domain definition
+ *
+ * Returns a map of active iothreads for @def.
+ */
+virBitmapPtr
+virDomainIOThreadIDMap(virDomainDefPtr def)
+{
+ unsigned int max = 0;
+ size_t i;
+ virBitmapPtr ret = NULL;
+
+ for (i = 0; i < def->niothreadids; i++) {
+ if (def->iothreadids[i]->iothread_id > max)
+ max = def->iothreadids[i]->iothread_id;
+ }
+
+ if (!(ret = virBitmapNew(max)))
+ return NULL;
+
+ for (i = 0; i < def->niothreadids; i++)
+ ignore_value(virBitmapSetBit(ret, def->iothreadids[i]->iothread_id));
+
+ return ret;
+}
+
+
void
virDomainIOThreadIDDel(virDomainDefPtr def,
unsigned int iothread_id)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index b12eeca..a2c8eac 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2700,6 +2700,9 @@ virDomainIOThreadIDDefPtr virDomainIOThreadIDFind(virDomainDefPtr
def,
unsigned int iothread_id);
virDomainIOThreadIDDefPtr virDomainIOThreadIDAdd(virDomainDefPtr def,
unsigned int iothread_id);
+
+virBitmapPtr virDomainIOThreadIDMap(virDomainDefPtr def)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
void virDomainIOThreadIDDel(virDomainDefPtr def, unsigned int iothread_id);
void virDomainIOThreadSchedDelId(virDomainDefPtr def, unsigned int iothread_id);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 8213ff3..0c84672 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -342,6 +342,7 @@ virDomainIOThreadIDAdd;
virDomainIOThreadIDDefFree;
virDomainIOThreadIDDel;
virDomainIOThreadIDFind;
+virDomainIOThreadIDMap;
virDomainIOThreadSchedDelId;
virDomainKeyWrapCipherNameTypeFromString;
virDomainKeyWrapCipherNameTypeToString;