[PATCH 09/14] qemu: Add qemuMonitorJSONCPUDataAddFeatures helper

Jiri Denemark via Devel posted 14 patches 3 days, 9 hours ago
[PATCH 09/14] qemu: Add qemuMonitorJSONCPUDataAddFeatures helper
Posted by Jiri Denemark via Devel 3 days, 9 hours ago
From: Jiri Denemark <jdenemar@redhat.com>

The function translates a list of CPU feature names retrieved from QEMU
and adds them to virCPUData.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 src/qemu/qemu_monitor_json.c | 43 ++++++++++++++++++++----------------
 1 file changed, 24 insertions(+), 19 deletions(-)

diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 8c70279f6d..a831e9e26c 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -6704,18 +6704,12 @@ qemuMonitorJSONGetCPUProperties(qemuMonitor *mon,
 
 
 static int
-qemuMonitorJSONGetCPUData(qemuMonitor *mon,
-                          bool qomListGet,
-                          const char *cpuQOMPath,
-                          qemuMonitorCPUFeatureTranslationCallback translate,
-                          virCPUData *data)
+qemuMonitorJSONCPUDataAddFeatures(virCPUData *data,
+                                  GStrv props,
+                                  qemuMonitorCPUFeatureTranslationCallback translate)
 {
-    g_auto(GStrv) props = NULL;
     char **p;
 
-    if (qemuMonitorJSONGetCPUProperties(mon, qomListGet, cpuQOMPath, &props) < 0)
-        return -1;
-
     for (p = props; p && *p; p++) {
         const char *name = *p;
 
@@ -6730,6 +6724,25 @@ qemuMonitorJSONGetCPUData(qemuMonitor *mon,
 }
 
 
+static int
+qemuMonitorJSONGetCPUData(qemuMonitor *mon,
+                          bool qomListGet,
+                          const char *cpuQOMPath,
+                          qemuMonitorCPUFeatureTranslationCallback translate,
+                          virCPUData *data)
+{
+    g_auto(GStrv) props = NULL;
+
+    if (qemuMonitorJSONGetCPUProperties(mon, qomListGet, cpuQOMPath, &props) < 0)
+        return -1;
+
+    if (qemuMonitorJSONCPUDataAddFeatures(data, props, translate) < 0)
+        return -1;
+
+    return 0;
+}
+
+
 static int
 qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon,
                                   const char *cpuQOMPath,
@@ -6737,21 +6750,13 @@ qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon,
                                   virCPUData *data)
 {
     g_auto(GStrv) props = NULL;
-    char **p;
 
     if (qemuMonitorJSONGetStringListProperty(mon, cpuQOMPath,
                                              "unavailable-features", &props) < 0)
         return -1;
 
-    for (p = props; p && *p; p++) {
-        const char *name = *p;
-
-        if (translate)
-            name = translate(data->arch, name);
-
-        if (virCPUDataAddFeature(data, name) < 0)
-            return -1;
-    }
+    if (qemuMonitorJSONCPUDataAddFeatures(data, props, translate) < 0)
+        return -1;
 
     return 0;
 }
-- 
2.51.0