[libvirt] [PATCH v2 13/31] qemu: Add qemuMonitorCPUDefsCopy

Jiri Denemark posted 31 patches 6 years, 2 months ago
There is a newer version of this series
[libvirt] [PATCH v2 13/31] qemu: Add qemuMonitorCPUDefsCopy
Posted by Jiri Denemark 6 years, 2 months ago
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---

Notes:
    Version 2:
    - no change

 src/qemu/qemu_monitor.c | 33 +++++++++++++++++++++++++++++++++
 src/qemu/qemu_monitor.h |  2 ++
 2 files changed, 35 insertions(+)

diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 87a9d06d45..8d86112f30 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -3582,6 +3582,39 @@ qemuMonitorCPUDefsNew(size_t count)
 }
 
 
+int
+qemuMonitorCPUDefsCopy(qemuMonitorCPUDefsPtr *dst,
+                       qemuMonitorCPUDefsPtr src)
+{
+    VIR_AUTOPTR(qemuMonitorCPUDefs) defs = NULL;
+    size_t i;
+
+    if (!src) {
+        *dst = NULL;
+        return 0;
+    }
+
+    if (!(defs = qemuMonitorCPUDefsNew(src->ncpus)))
+        return -1;
+
+    defs->ncpus = src->ncpus;
+    for (i = 0; i < src->ncpus; i++) {
+        qemuMonitorCPUDefInfoPtr cpuDst = defs->cpus + i;
+        qemuMonitorCPUDefInfoPtr cpuSrc = src->cpus + i;
+
+        cpuDst->usable = cpuSrc->usable;
+
+        if (VIR_STRDUP(cpuDst->name, cpuSrc->name) < 0 ||
+            virStringListCopy(&cpuDst->blockers,
+                              (const char **)cpuSrc->blockers) < 0)
+            return -1;
+    }
+
+    VIR_STEAL_PTR(*dst, defs);
+    return 0;
+}
+
+
 int
 qemuMonitorGetCPUModelExpansion(qemuMonitorPtr mon,
                                 qemuMonitorCPUModelExpansionType type,
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index aa2a0e392a..4f355c760a 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1111,6 +1111,8 @@ struct _qemuMonitorCPUDefs {
 int qemuMonitorGetCPUDefinitions(qemuMonitorPtr mon,
                                  qemuMonitorCPUDefsPtr *cpuDefs);
 qemuMonitorCPUDefsPtr qemuMonitorCPUDefsNew(size_t count);
+int qemuMonitorCPUDefsCopy(qemuMonitorCPUDefsPtr *dst,
+                           qemuMonitorCPUDefsPtr src);
 void qemuMonitorCPUDefsFree(qemuMonitorCPUDefsPtr defs);
 VIR_DEFINE_AUTOPTR_FUNC(qemuMonitorCPUDefs, qemuMonitorCPUDefsFree);
 
-- 
2.23.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 13/31] qemu: Add qemuMonitorCPUDefsCopy
Posted by Ján Tomko 6 years, 2 months ago
On Tue, Oct 15, 2019 at 05:34:49PM +0200, Jiri Denemark wrote:
>Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
>---
>
>Notes:
>    Version 2:
>    - no change
>
> src/qemu/qemu_monitor.c | 33 +++++++++++++++++++++++++++++++++
> src/qemu/qemu_monitor.h |  2 ++
> 2 files changed, 35 insertions(+)
>

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano

diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index adb6befe4a..614fee98c1 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -3582,7 +3582,7 @@ int
 qemuMonitorCPUDefsCopy(qemuMonitorCPUDefsPtr *dst,
                        qemuMonitorCPUDefsPtr src)
 {
-    VIR_AUTOPTR(qemuMonitorCPUDefs) defs = NULL;
+    g_autoptr(qemuMonitorCPUDefs) defs = NULL;
     size_t i;

     if (!src) {
@@ -3599,14 +3599,11 @@ qemuMonitorCPUDefsCopy(qemuMonitorCPUDefsPtr *dst,
         qemuMonitorCPUDefInfoPtr cpuSrc = src->cpus + i;

         cpuDst->usable = cpuSrc->usable;
-
-        if (VIR_STRDUP(cpuDst->name, cpuSrc->name) < 0 ||
-            virStringListCopy(&cpuDst->blockers,
-                              (const char **)cpuSrc->blockers) < 0)
-            return -1;
+        cpuDst->name = g_strdup(cpuSrc->name);
+        cpuDst->blockers = g_strdupv(cpuSrc->blockers);
     }

-    VIR_STEAL_PTR(*dst, defs);
+    *dst = g_steal_pointer(&defs);
     return 0;
 }


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list