
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