From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: kwolf@redhat.com, "Daniel P. Berrange" <berrange@redhat.com>,
Eduardo Habkost <ehabkost@redhat.com>,
qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 06/17] qom: Move HMP command handlers to qom/
Date: Thu, 20 Jun 2019 10:51:50 +0100 [thread overview]
Message-ID: <20190620095150.GD2907@work-vm> (raw)
In-Reply-To: <20190619201050.19040-7-armbru@redhat.com>
* Markus Armbruster (armbru@redhat.com) 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 <pbonzini@redhat.com>
> Cc: "Daniel P. Berrange" <berrange@redhat.com>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
I look forward to those gaining the qom_get at some stage!
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> 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 / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2019-06-20 9:56 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-19 20:10 [Qemu-devel] [PATCH 00/17] Move QOM, qdev, machine core and dump code Markus Armbruster
2019-06-19 20:10 ` [Qemu-devel] [PATCH 01/17] MAINTAINERS: new maintainers for QOM Markus Armbruster
2019-06-19 20:31 ` Andreas Färber
2019-06-20 8:37 ` Paolo Bonzini
2019-06-24 11:07 ` Markus Armbruster
2019-06-20 8:31 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 02/17] Makefile: Don't add monitor/ twice to common-obj-y Markus Armbruster
2019-06-20 8:32 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 03/17] hmp: Move hmp.h to include/monitor/ Markus Armbruster
2019-06-20 8:33 ` Daniel P. Berrangé
2019-06-20 9:48 ` Dr. David Alan Gilbert
2019-06-19 20:10 ` [Qemu-devel] [PATCH 04/17] qapi: Split qom.json and qdev.json off misc.json Markus Armbruster
2019-06-20 8:34 ` Daniel P. Berrangé
2019-06-20 8:38 ` Paolo Bonzini
2019-06-24 11:19 ` Markus Armbruster
2019-06-24 11:45 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 05/17] qom: Move QMP command handlers to qom/ Markus Armbruster
2019-06-20 8:35 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 06/17] qom: Move HMP " Markus Armbruster
2019-06-20 8:39 ` Daniel P. Berrangé
2019-06-20 9:51 ` Dr. David Alan Gilbert [this message]
2019-07-02 5:08 ` Markus Armbruster
2019-06-19 20:10 ` [Qemu-devel] [PATCH 07/17] MAINTAINERS: Merge sections CPU, NUMA into Machine core Markus Armbruster
2019-06-20 8:41 ` Daniel P. Berrangé
2019-06-24 11:22 ` Markus Armbruster
2019-07-08 22:54 ` Eduardo Habkost
2019-07-09 6:36 ` Markus Armbruster
2019-06-19 20:10 ` [Qemu-devel] [PATCH 08/17] qapi: Split machine.json off misc.json Markus Armbruster
2019-06-20 8:45 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 09/17] hw/core: Move numa.c to hw/core/ Markus Armbruster
2019-06-20 8:46 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 10/17] hw/core: Collect QMP command handlers in hw/core/ Markus Armbruster
2019-06-20 8:50 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 11/17] hw/core: Collect HMP " Markus Armbruster
2019-06-20 8:51 ` Daniel P. Berrangé
2019-06-20 9:56 ` Dr. David Alan Gilbert
2019-06-19 20:10 ` [Qemu-devel] [PATCH 12/17] qapi: Split machine-target.json off target.json and misc.json Markus Armbruster
2019-06-19 20:18 ` Eric Blake
2019-06-24 11:33 ` Markus Armbruster
2019-06-20 8:53 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 13/17] qapi: Rename target.json to misc-target.json Markus Armbruster
2019-06-20 8:54 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 14/17] qapi: Split dump.json off misc.json Markus Armbruster
2019-06-19 23:36 ` Marc-André Lureau
2019-06-20 8:54 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 15/17] dump: Move the code to dump/ Markus Armbruster
2019-06-19 23:37 ` Marc-André Lureau
2019-06-20 8:55 ` Daniel P. Berrangé
2019-06-19 20:10 ` [Qemu-devel] [PATCH 16/17] MAINTAINERS: Add Windows dump to section "Dump" Markus Armbruster
2019-06-19 23:38 ` Marc-André Lureau
2019-06-20 8:56 ` Daniel P. Berrangé
2019-06-24 11:31 ` Markus Armbruster
2019-06-19 20:10 ` [Qemu-devel] [PATCH 17/17] dump: Move HMP command handlers to dump/ Markus Armbruster
2019-06-19 20:19 ` Eric Blake
2019-06-24 11:34 ` Markus Armbruster
2019-06-20 8:57 ` Daniel P. Berrangé
2019-06-20 9:57 ` Dr. David Alan Gilbert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190620095150.GD2907@work-vm \
--to=dgilbert@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=ehabkost@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).