[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 06/17] qom: Move HMP command handlers to qom/
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [PATCH 06/17] qom: Move HMP command handlers to qom/ |
Date: |
Thu, 20 Jun 2019 10:51:50 +0100 |
User-agent: |
Mutt/1.11.4 (2019-03-13) |
* Markus Armbruster (address@hidden) wrote:
> There are just two HMP commands related to QOM: qom-list and qom-set.
> Move their handlers from monitor/hmp-cmds.c to new qom/qom-hmp-cmds.c,
> where they are covered by MAINTAINERS section QOM.
>
> Cc: Paolo Bonzini <address@hidden>
> Cc: "Daniel P. Berrange" <address@hidden>
> Cc: Eduardo Habkost <address@hidden>
> Cc: "Dr. David Alan Gilbert" <address@hidden>
> Signed-off-by: Markus Armbruster <address@hidden>
I look forward to those gaining the qom_get at some stage!
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> ---
> include/monitor/hmp.h | 2 ++
> monitor/hmp-cmds.c | 50 +---------------------------------
> qom/Makefile.objs | 2 +-
> qom/qom-hmp-cmds.c | 62 +++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 66 insertions(+), 50 deletions(-)
> create mode 100644 qom/qom-hmp-cmds.c
>
> diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
> index 1d095d5837..f46ccdaa35 100644
> --- a/include/monitor/hmp.h
> +++ b/include/monitor/hmp.h
> @@ -16,6 +16,8 @@
>
> #include "qemu/readline.h"
>
> +void hmp_handle_error(Monitor *mon, Error **errp);
> +
> void hmp_info_name(Monitor *mon, const QDict *qdict);
> void hmp_info_version(Monitor *mon, const QDict *qdict);
> void hmp_info_kvm(Monitor *mon, const QDict *qdict);
> diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
> index d94ab7563e..5641036dc3 100644
> --- a/monitor/hmp-cmds.c
> +++ b/monitor/hmp-cmds.c
> @@ -60,7 +60,7 @@
> #include <spice/enums.h>
> #endif
>
> -static void hmp_handle_error(Monitor *mon, Error **errp)
> +void hmp_handle_error(Monitor *mon, Error **errp)
> {
> assert(errp);
> if (*errp) {
> @@ -2714,54 +2714,6 @@ void hmp_info_iothreads(Monitor *mon, const QDict
> *qdict)
> qapi_free_IOThreadInfoList(info_list);
> }
>
> -void hmp_qom_list(Monitor *mon, const QDict *qdict)
> -{
> - const char *path = qdict_get_try_str(qdict, "path");
> - ObjectPropertyInfoList *list;
> - Error *err = NULL;
> -
> - if (path == NULL) {
> - monitor_printf(mon, "/\n");
> - return;
> - }
> -
> - list = qmp_qom_list(path, &err);
> - if (err == NULL) {
> - ObjectPropertyInfoList *start = list;
> - while (list != NULL) {
> - ObjectPropertyInfo *value = list->value;
> -
> - monitor_printf(mon, "%s (%s)\n",
> - value->name, value->type);
> - list = list->next;
> - }
> - qapi_free_ObjectPropertyInfoList(start);
> - }
> - hmp_handle_error(mon, &err);
> -}
> -
> -void hmp_qom_set(Monitor *mon, const QDict *qdict)
> -{
> - const char *path = qdict_get_str(qdict, "path");
> - const char *property = qdict_get_str(qdict, "property");
> - const char *value = qdict_get_str(qdict, "value");
> - Error *err = NULL;
> - bool ambiguous = false;
> - Object *obj;
> -
> - obj = object_resolve_path(path, &ambiguous);
> - if (obj == NULL) {
> - error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND,
> - "Device '%s' not found", path);
> - } else {
> - if (ambiguous) {
> - monitor_printf(mon, "Warning: Path '%s' is ambiguous\n", path);
> - }
> - object_property_parse(obj, value, property, &err);
> - }
> - hmp_handle_error(mon, &err);
> -}
> -
> void hmp_rocker(Monitor *mon, const QDict *qdict)
> {
> const char *name = qdict_get_str(qdict, "name");
> diff --git a/qom/Makefile.objs b/qom/Makefile.objs
> index 5fb43b842c..aae478fc21 100644
> --- a/qom/Makefile.objs
> +++ b/qom/Makefile.objs
> @@ -2,4 +2,4 @@ qom-obj-y = object.o container.o qom-qobject.o
> qom-obj-y += object_interfaces.o
>
> common-obj-y = cpu.o
> -common-obj-$(CONFIG_SOFTMMU) += qom-qmp-cmds.o
> +common-obj-$(CONFIG_SOFTMMU) += qom-hmp-cmds.o qom-qmp-cmds.o
> diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c
> new file mode 100644
> index 0000000000..2028a21052
> --- /dev/null
> +++ b/qom/qom-hmp-cmds.c
> @@ -0,0 +1,62 @@
> +/*
> + * HMP commands related to QOM
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or
> + * later. See the COPYING file in the top-level directory.
> + */
> +
> +#include "qemu/osdep.h"
> +#include "monitor/hmp.h"
> +#include "qapi/qapi-commands-qom.h"
> +#include "qapi/qmp/qdict.h"
> +#include "monitor/monitor.h"
> +#include "qom/object.h"
> +#include "qapi/error.h"
> +
> +void hmp_qom_list(Monitor *mon, const QDict *qdict)
> +{
> + const char *path = qdict_get_try_str(qdict, "path");
> + ObjectPropertyInfoList *list;
> + Error *err = NULL;
> +
> + if (path == NULL) {
> + monitor_printf(mon, "/\n");
> + return;
> + }
> +
> + list = qmp_qom_list(path, &err);
> + if (err == NULL) {
> + ObjectPropertyInfoList *start = list;
> + while (list != NULL) {
> + ObjectPropertyInfo *value = list->value;
> +
> + monitor_printf(mon, "%s (%s)\n",
> + value->name, value->type);
> + list = list->next;
> + }
> + qapi_free_ObjectPropertyInfoList(start);
> + }
> + hmp_handle_error(mon, &err);
> +}
> +
> +void hmp_qom_set(Monitor *mon, const QDict *qdict)
> +{
> + const char *path = qdict_get_str(qdict, "path");
> + const char *property = qdict_get_str(qdict, "property");
> + const char *value = qdict_get_str(qdict, "value");
> + Error *err = NULL;
> + bool ambiguous = false;
> + Object *obj;
> +
> + obj = object_resolve_path(path, &ambiguous);
> + if (obj == NULL) {
> + error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND,
> + "Device '%s' not found", path);
> + } else {
> + if (ambiguous) {
> + monitor_printf(mon, "Warning: Path '%s' is ambiguous\n", path);
> + }
> + object_property_parse(obj, value, property, &err);
> + }
> + hmp_handle_error(mon, &err);
> +}
> --
> 2.21.0
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
- [Qemu-devel] [PATCH 12/17] qapi: Split machine-target.json off target.json and misc.json, (continued)
- [Qemu-devel] [PATCH 12/17] qapi: Split machine-target.json off target.json and misc.json, Markus Armbruster, 2019/06/19
- [Qemu-devel] [PATCH 13/17] qapi: Rename target.json to misc-target.json, Markus Armbruster, 2019/06/19
- [Qemu-devel] [PATCH 08/17] qapi: Split machine.json off misc.json, Markus Armbruster, 2019/06/19
- [Qemu-devel] [PATCH 06/17] qom: Move HMP command handlers to qom/, Markus Armbruster, 2019/06/19
- [Qemu-devel] [PATCH 10/17] hw/core: Collect QMP command handlers in hw/core/, Markus Armbruster, 2019/06/19
- [Qemu-devel] [PATCH 04/17] qapi: Split qom.json and qdev.json off misc.json, Markus Armbruster, 2019/06/19
- Re: [Qemu-devel] [PATCH 04/17] qapi: Split qom.json and qdev.json off misc.json, Daniel P . Berrangé, 2019/06/20
- [Qemu-devel] [PATCH 05/17] qom: Move QMP command handlers to qom/, Markus Armbruster, 2019/06/19