
On 02/15/2017 11:44 AM, Jiri Denemark wrote:
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> ---
Notes: Version 2: - no change
src/qemu/qemu_capabilities.c | 4 +++- src/qemu/qemu_monitor.c | 4 ++-- src/qemu/qemu_monitor.h | 6 +++++- src/qemu/qemu_monitor_json.c | 11 +++++++++-- src/qemu/qemu_monitor_json.h | 4 ++-- 5 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index bcfb6b694..20aaaf8f0 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2856,7 +2856,9 @@ virQEMUCapsProbeQMPHostCPU(virQEMUCapsPtr qemuCaps, model = "host"; }
- return qemuMonitorGetCPUModelExpansion(mon, "static", model, modelInfo); + return qemuMonitorGetCPUModelExpansion(mon, + QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC, + model, modelInfo); }
struct tpmTypeToCaps { diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index a434b234b..a987e107e 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3641,11 +3641,11 @@ qemuMonitorCPUDefInfoFree(qemuMonitorCPUDefInfoPtr cpu)
int qemuMonitorGetCPUModelExpansion(qemuMonitorPtr mon, - const char *type, + qemuMonitorCPUModelExpansionType type, const char *model_name, qemuMonitorCPUModelInfoPtr *model_info) { - VIR_DEBUG("type=%s model_name=%s", type, model_name); + VIR_DEBUG("type=%d model_name=%s", type, model_name);
QEMU_CHECK_MONITOR_JSON(mon);
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 112f041f1..b61f1cf54 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -948,8 +948,12 @@ struct _qemuMonitorCPUModelInfo { qemuMonitorCPUPropertyPtr props; };
+typedef enum { + QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC, +} qemuMonitorCPUModelExpansionType; +
If you went with VIR_ENUM_IMPL type logic for the strings, then you could have a _UNKNOWN and _LAST too...
int qemuMonitorGetCPUModelExpansion(qemuMonitorPtr mon, - const char *type, + qemuMonitorCPUModelExpansionType type, const char *model_name, qemuMonitorCPUModelInfoPtr *model_info);
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index d89dfb88d..dd7907482 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -5021,7 +5021,7 @@ qemuMonitorJSONParseCPUModelProperty(const char *key,
int qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon, - const char *type, + qemuMonitorCPUModelExpansionType type, const char *model_name, qemuMonitorCPUModelInfoPtr *model_info) { @@ -5034,6 +5034,7 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon, virJSONValuePtr cpu_props; qemuMonitorCPUModelInfoPtr machine_model = NULL; char const *cpu_name; + const char *typeStr = "";
*model_info = NULL;
@@ -5043,8 +5044,14 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon, if (virJSONValueObjectAppendString(model, "name", model_name) < 0) goto cleanup;
+ switch (type) { + case QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC: + typeStr = "static"; + break; + } +
This works, but why not use VIR_ENUM_IMPL type logic? Weak ACK, I think it'd be better to use VIR_ENUM_IMPL. John
if (!(cmd = qemuMonitorJSONMakeCommand("query-cpu-model-expansion", - "s:type", type, + "s:type", typeStr, "a:model", model, NULL))) goto cleanup; diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index 79688c82f..59d9f098c 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -354,10 +354,10 @@ int qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon, ATTRIBUTE_NONNULL(2);
int qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon, - const char *type, + qemuMonitorCPUModelExpansionType type, const char *model_name, qemuMonitorCPUModelInfoPtr *model_info) - ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); + ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
int qemuMonitorJSONGetCommands(qemuMonitorPtr mon, char ***commands)