]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Add qemuMonitorJSONCPUDataAddFeatures helper
authorJiri Denemark <jdenemar@redhat.com>
Thu, 4 Sep 2025 12:30:20 +0000 (14:30 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Mon, 8 Sep 2025 13:32:47 +0000 (15:32 +0200)
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>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_monitor_json.c

index 7ef065ba453a2e5115e4f7d7de691eb022df9386..732834c01f1b08706f749a850b85a6b96fb01add 100644 (file)
@@ -6703,18 +6703,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;
 
@@ -6729,6 +6723,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,
@@ -6736,21 +6749,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;
 }