[libvirt] [PATCHv2 06/11] qemu_monitor: Introduce qemuMonitorCPUModelInfoRemovePropByBoolValue
Collin Walling
walling at linux.ibm.com
Wed Jul 11 23:58:37 UTC 2018
On 07/09/2018 11:56 PM, Chris Venteicher wrote:
> Filter out cpu properties in qemuMonitorCPUModelInfo structure based on
> boolean value of true or false.
>
> Goal is to form a list of "enabled" or "disabled" properties.
>
> Required to convert between cpu model feature / property lists that
> indicate if property is or isn't include in model and the form of cpu
> model feature / property lists that only enumerate properties that are
> actually included in the model.
> ---
> src/qemu/qemu_monitor.c | 29 +++++++++++++++++++++++++++++
> src/qemu/qemu_monitor.h | 4 ++++
> 2 files changed, 33 insertions(+)
>
> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index 91b946c8b4..dd8510fbab 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
> @@ -3766,6 +3766,35 @@ qemuMonitorCPUModelInfoCopy(const qemuMonitorCPUModelInfo *orig)
> return NULL;
> }
>
> +
> +/* Squash CPU Model Info property list
> + * removing props of type boolean matching value */
> +void
> +qemuMonitorCPUModelInfoRemovePropByBoolValue(qemuMonitorCPUModelInfoPtr model,
> + bool value)
> +{
> + qemuMonitorCPUPropertyPtr src, dst;
> + size_t i, dst_size = 0;
Nit: rename "dst_size" to something like "dst_props" or "dst_nprops"... something to
better reflect that this value represents the number of props in dst.
> +
> + for (i = 0; i < model->nprops; i++) {
> + src = &(model->props[i]);
> + dst = &(model->props[dst_size]);
> +
> + if ((src->type == QEMU_MONITOR_CPU_PROPERTY_BOOLEAN) &&
> + (src->value.boolean == value))
> + continue;
> +
> + *dst = *src;
> +
> + dst_size++;
> + }
> +
> + model->nprops = dst_size;
> +
> + ignore_value(VIR_REALLOC_N(model->props, dst_size)); /* not fatal */
> +}
> +
> +
> int
> qemuMonitorGetCPUModelBaseline(qemuMonitorPtr mon,
> qemuMonitorCPUModelInfoPtr model_a,
> diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
> index 6b4b527512..9841ab230c 100644
> --- a/src/qemu/qemu_monitor.h
> +++ b/src/qemu/qemu_monitor.h
> @@ -1028,6 +1028,10 @@ int qemuMonitorCPUModelInfoInit(const char *name, qemuMonitorCPUModelInfoPtr mod
> qemuMonitorCPUModelInfoPtr
> qemuMonitorCPUModelInfoCopy(const qemuMonitorCPUModelInfo *orig);
>
> +void qemuMonitorCPUModelInfoRemovePropByBoolValue( qemuMonitorCPUModelInfoPtr model,
> + bool value)
> + ATTRIBUTE_NONNULL(1);
> +
> int qemuMonitorGetCPUModelBaseline(qemuMonitorPtr mon,
> qemuMonitorCPUModelInfoPtr model_a,
> qemuMonitorCPUModelInfoPtr model_b,
>
--
Respectfully,
- Collin Walling
More information about the libvir-list
mailing list