[libvirt] [PATCH 8/9] Export virDomainGetBlkioParametersAssignFromDef

Ján Tomko jtomko at redhat.com
Mon Jun 6 08:08:31 UTC 2016


Move qemuDomainGetBlkioParametersAssignFromDef into domain_conf
and export it, to allow reuse in the LXC driver.
---
 src/conf/domain_conf.c   | 51 +++++++++++++++++++++++++++++++++++++++++
 src/conf/domain_conf.h   |  6 +++++
 src/libvirt_private.syms |  1 +
 src/qemu/qemu_driver.c   | 59 ++++--------------------------------------------
 4 files changed, 62 insertions(+), 55 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 11ec80d..0c09546 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -24558,3 +24558,54 @@ virDomainObjGetShortName(virDomainObjPtr vm)
 
     return ret;
 }
+
+
+int
+virDomainGetBlkioParametersAssignFromDef(virDomainDefPtr def,
+                                         virTypedParameterPtr params,
+                                         int *nparams,
+                                         int maxparams)
+{
+    virBuffer buf = VIR_BUFFER_INITIALIZER;
+    char *data = NULL;
+    size_t i;
+
+#define VIR_BLKIO_ASSIGN(param, format, name)                                  \
+    if (*nparams < maxparams) {                                                \
+        for (i = 0; i < def->blkio.ndevices; i++) {                            \
+            if (!def->blkio.devices[i].param)                                  \
+                continue;                                                      \
+            virBufferAsprintf(&buf, "%s," format ",",                          \
+                              def->blkio.devices[i].path,                      \
+                              def->blkio.devices[i].param);                    \
+        }                                                                      \
+        virBufferTrim(&buf, ",", -1);                                          \
+        if (virBufferCheckError(&buf) < 0)                                     \
+            goto error;                                                        \
+        data = virBufferContentAndReset(&buf);                                 \
+        if (virTypedParameterAssign(&(params[(*nparams)++]), name,             \
+                                    VIR_TYPED_PARAM_STRING, data) < 0)         \
+            goto error;                                                        \
+        VIR_FREE(data);                                                        \
+    }
+
+    /* blkiotune.device_weight */
+    VIR_BLKIO_ASSIGN(weight, "%u", VIR_DOMAIN_BLKIO_DEVICE_WEIGHT);
+    /* blkiotune.device_read_iops */
+    VIR_BLKIO_ASSIGN(riops, "%u", VIR_DOMAIN_BLKIO_DEVICE_READ_IOPS);
+    /* blkiotune.device_write_iops */
+    VIR_BLKIO_ASSIGN(wiops, "%u", VIR_DOMAIN_BLKIO_DEVICE_WRITE_IOPS);
+    /* blkiotune.device_read_bps */
+    VIR_BLKIO_ASSIGN(rbps, "%llu", VIR_DOMAIN_BLKIO_DEVICE_READ_BPS);
+    /* blkiotune.device_write_bps */
+    VIR_BLKIO_ASSIGN(wbps, "%llu", VIR_DOMAIN_BLKIO_DEVICE_WRITE_BPS);
+
+#undef VIR_BLKIO_ASSIGN
+
+    return 0;
+
+ error:
+    VIR_FREE(data);
+    virBufferFreeAndReset(&buf);
+    return -1;
+}
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index c182747..0d18304 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -52,6 +52,7 @@
 # include "virprocess.h"
 # include "virgic.h"
 # include "virperf.h"
+# include "virtypedparam.h"
 
 /* forward declarations of all device types, required by
  * virDomainDeviceDef
@@ -3062,4 +3063,9 @@ bool virDomainDefHasMemballoon(const virDomainDef *def) ATTRIBUTE_NONNULL(1);
 
 char *virDomainObjGetShortName(virDomainObjPtr vm);
 
+int
+virDomainGetBlkioParametersAssignFromDef(virDomainDefPtr def,
+                                         virTypedParameterPtr params,
+                                         int *nparams,
+                                         int maxparams);
 #endif /* __DOMAIN_CONF_H */
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 333bf7c..3968a8d 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -93,6 +93,7 @@ virDomainCCWAddressReleaseAddr;
 virDomainCCWAddressSetCreate;
 virDomainCCWAddressSetFree;
 virDomainCCWAddressValidate;
+virDomainGetBlkioParametersAssignFromDef;
 virDomainPCIAddressAsString;
 virDomainPCIAddressBusSetModel;
 virDomainPCIAddressEnsureAddr;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 10d3e3d..1a674af 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -9083,57 +9083,6 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
 
 
 static int
-qemuDomainGetBlkioParametersAssignFromDef(virDomainDefPtr def,
-                                          virTypedParameterPtr params,
-                                          int *nparams,
-                                          int maxparams)
-{
-    virBuffer buf = VIR_BUFFER_INITIALIZER;
-    char *data = NULL;
-    size_t i;
-
-#define QEMU_BLKIO_ASSIGN(param, format, name)                                 \
-    if (*nparams < maxparams) {                                                \
-        for (i = 0; i < def->blkio.ndevices; i++) {                            \
-            if (!def->blkio.devices[i].param)                                  \
-                continue;                                                      \
-            virBufferAsprintf(&buf, "%s," format ",",                          \
-                              def->blkio.devices[i].path,                      \
-                              def->blkio.devices[i].param);                    \
-        }                                                                      \
-        virBufferTrim(&buf, ",", -1);                                          \
-        if (virBufferCheckError(&buf) < 0)                                     \
-            goto error;                                                        \
-        data = virBufferContentAndReset(&buf);                                 \
-        if (virTypedParameterAssign(&(params[(*nparams)++]), name,             \
-                                    VIR_TYPED_PARAM_STRING, data) < 0)         \
-            goto error;                                                        \
-        VIR_FREE(data);                                                        \
-    }
-
-    /* blkiotune.device_weight */
-    QEMU_BLKIO_ASSIGN(weight, "%u", VIR_DOMAIN_BLKIO_DEVICE_WEIGHT);
-    /* blkiotune.device_read_iops */
-    QEMU_BLKIO_ASSIGN(riops, "%u", VIR_DOMAIN_BLKIO_DEVICE_READ_IOPS);
-    /* blkiotune.device_write_iops */
-    QEMU_BLKIO_ASSIGN(wiops, "%u", VIR_DOMAIN_BLKIO_DEVICE_WRITE_IOPS);
-    /* blkiotune.device_read_bps */
-    QEMU_BLKIO_ASSIGN(rbps, "%llu", VIR_DOMAIN_BLKIO_DEVICE_READ_BPS);
-    /* blkiotune.device_write_bps */
-    QEMU_BLKIO_ASSIGN(wbps, "%llu", VIR_DOMAIN_BLKIO_DEVICE_WRITE_BPS);
-
-#undef QEMU_BLKIO_ASSIGN
-
-    return 0;
-
- error:
-    VIR_FREE(data);
-    virBufferFreeAndReset(&buf);
-    return -1;
-}
-
-
-static int
 qemuDomainGetBlkioParameters(virDomainPtr dom,
                              virTypedParameterPtr params,
                              int *nparams,
@@ -9200,8 +9149,8 @@ qemuDomainGetBlkioParameters(virDomainPtr dom,
                                     VIR_TYPED_PARAM_UINT, val) < 0)
             goto cleanup;
 
-        if (qemuDomainGetBlkioParametersAssignFromDef(def, params, nparams,
-                                                      maxparams) < 0)
+        if (virDomainGetBlkioParametersAssignFromDef(def, params, nparams,
+                                                     maxparams) < 0)
             goto cleanup;
 
     } else if (persistentDef) {
@@ -9212,8 +9161,8 @@ qemuDomainGetBlkioParameters(virDomainPtr dom,
                                     persistentDef->blkio.weight) < 0)
             goto cleanup;
 
-        if (qemuDomainGetBlkioParametersAssignFromDef(persistentDef, params,
-                                                      nparams, maxparams) < 0)
+        if (virDomainGetBlkioParametersAssignFromDef(persistentDef, params,
+                                                     nparams, maxparams) < 0)
             goto cleanup;
     }
 
-- 
2.7.3




More information about the libvir-list mailing list