On Fri, Jun 10, 2016 at 06:29:07AM +0530, Bharata B Rao wrote:
> This is the HMP equivalent for QMP query-hotpluggable-cpus.
>
> Signed-off-by: Bharata B Rao
> Reviewed-by: David Gibson
This has a compile error on 32-bit host, because qapi 'int' values are
actually uint64s. I've fixed it in my tree.
> ---
> hmp-commands-info.hx | 14 ++
> hmp.c| 41 +
> hmp.h| 1 +
> 3 files changed, 56 insertions(+)
>
> diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
> index 52539c3..7da9e6c 100644
> --- a/hmp-commands-info.hx
> +++ b/hmp-commands-info.hx
> @@ -800,6 +800,20 @@ STEXI
> Display the latest dump status.
> ETEXI
>
> +{
> +.name = "hotpluggable-cpus",
> +.args_type = "",
> +.params = "",
> +.help = "Show information about hotpluggable CPUs",
> +.mhandler.cmd = hmp_hotpluggable_cpus,
> +},
> +
> +STEXI
> +@item info hotpluggable-cpus
> +@findex hotpluggable-cpus
> +Show information about hotpluggable CPUs
> +ETEXI
> +
> STEXI
> @end table
> ETEXI
> diff --git a/hmp.c b/hmp.c
> index a4b1d3d..14d4712 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -2424,3 +2424,44 @@ void hmp_info_dump(Monitor *mon, const QDict *qdict)
>
> qapi_free_DumpQueryResult(result);
> }
> +
> +void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
> +{
> +Error *err = NULL;
> +HotpluggableCPUList *l = qmp_query_hotpluggable_cpus(&err);
> +HotpluggableCPUList *saved = l;
> +CpuInstanceProperties *c;
> +
> +if (err != NULL) {
> +hmp_handle_error(mon, &err);
> +return;
> +}
> +
> +monitor_printf(mon, "Hotpluggable CPUs:\n");
> +while (l) {
> +monitor_printf(mon, " type: \"%s\"\n", l->value->type);
> +monitor_printf(mon, " vcpus_count: \"%ld\"\n",
> l->value->vcpus_count);
> +if (l->value->has_qom_path) {
> +monitor_printf(mon, " qom_path: \"%s\"\n", l->value->qom_path);
> +}
> +
> +c = l->value->props;
> +monitor_printf(mon, " CPUInstance Properties:\n");
> +if (c->has_node) {
> +monitor_printf(mon, "node: \"%ld\"\n", c->node);
> +}
> +if (c->has_socket) {
> +monitor_printf(mon, "socket: \"%ld\"\n", c->socket);
> +}
> +if (c->has_core) {
> +monitor_printf(mon, "core: \"%ld\"\n", c->core);
> +}
> +if (c->has_thread) {
> +monitor_printf(mon, "thread: \"%ld\"\n", c->thread);
> +}
> +
> +l = l->next;
> +}
> +
> +qapi_free_HotpluggableCPUList(saved);
> +}
> diff --git a/hmp.h b/hmp.h
> index 093d65f..f5d9749 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -132,5 +132,6 @@ void hmp_rocker_ports(Monitor *mon, const QDict *qdict);
> void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict);
> void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict);
> void hmp_info_dump(Monitor *mon, const QDict *qdict);
> +void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict);
>
> #endif
--
David Gibson| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature