From: Markus Armbruster <armbru@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: dgilbert@redhat.com, berrange@redhat.com, qemu-devel@nongnu.org,
qemu-block@nongnu.org, armbru@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 10/11] monitor: Split out monitor/hmp.c
Date: Wed, 12 Jun 2019 15:17:48 +0200 [thread overview]
Message-ID: <87wohrx7r7.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20190611134043.9524-11-kwolf@redhat.com> (Kevin Wolf's message of "Tue, 11 Jun 2019 15:40:42 +0200")
Kevin Wolf <kwolf@redhat.com> writes:
> Move HMP infrastructure from monitor/misc.c to monitor/hmp.c. This is
> code that can be shared for all targets, so compile it only once.
>
> The amount of function and particularly extern variables in
> monitor_int.h is probably a bit larger than it needs to be, but this way
> no non-trivial code modifications are needed. The interfaces between HMP
> and the monitor core can be cleaned up later.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> include/monitor/monitor.h | 1 +
> monitor/monitor_int.h | 31 +
> monitor/hmp.c | 1387 +++++++++++++++++++++++++++++++++++++
> monitor/misc.c | 1338 +----------------------------------
> monitor/Makefile.objs | 2 +-
> monitor/trace-events | 4 +-
> 6 files changed, 1429 insertions(+), 1334 deletions(-)
> create mode 100644 monitor/hmp.c
>
> diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h
> index 7bbab05320..8547529e49 100644
> --- a/include/monitor/monitor.h
> +++ b/include/monitor/monitor.h
> @@ -22,6 +22,7 @@ bool monitor_cur_is_qmp(void);
> void monitor_init_globals(void);
> void monitor_init(Chardev *chr, int flags);
> void monitor_init_qmp(Chardev *chr, int flags);
> +void monitor_init_hmp(Chardev *chr, int flags);
> void monitor_cleanup(void);
>
> int monitor_suspend(Monitor *mon);
> diff --git a/monitor/monitor_int.h b/monitor/monitor_int.h
> index 4aabee54e1..88eaed9c5c 100644
> --- a/monitor/monitor_int.h
> +++ b/monitor/monitor_int.h
> @@ -27,6 +27,7 @@
>
> #include "qemu-common.h"
> #include "monitor/monitor.h"
> +#include "qemu/cutils.h"
>
> #include "qapi/qmp/qdict.h"
> #include "qapi/qmp/json-parser.h"
> @@ -154,6 +155,29 @@ static inline bool monitor_is_qmp(const Monitor *mon)
> return (mon->flags & MONITOR_USE_CONTROL);
> }
>
> +/**
> + * Is @name in the '|' separated list of names @list?
> + */
> +static inline int compare_cmd(const char *name, const char *list)
> +{
> + const char *p, *pstart;
> + int len;
> + len = strlen(name);
> + p = list;
> + for (;;) {
> + pstart = p;
> + p = qemu_strchrnul(p, '|');
> + if ((p - pstart) == len && !memcmp(pstart, name, len)) {
> + return 1;
> + }
> + if (*p == '\0') {
> + break;
> + }
> + p++;
> + }
> + return 0;
> +}
> +
What's the justification for inline?
> typedef QTAILQ_HEAD(MonitorList, Monitor) MonitorList;
> extern IOThread *mon_iothread;
> extern QEMUBH *qmp_dispatcher_bh;
> @@ -162,6 +186,8 @@ extern QemuMutex monitor_lock;
> extern MonitorList mon_list;
> extern int mon_refcount;
>
> +extern mon_cmd_t mon_cmds[];
> +
Any particular reason for not moving this one to hmp.c, along with
info_cmds? Question, not demand :)
> int monitor_puts(Monitor *mon, const char *str);
> void monitor_data_init(Monitor *mon, int flags, bool skip_flush,
> bool use_io_thread);
> @@ -173,4 +199,9 @@ void qmp_send_response(MonitorQMP *mon, const QDict *rsp);
> void monitor_data_destroy_qmp(MonitorQMP *mon);
> void monitor_qmp_bh_dispatcher(void *data);
>
> +void monitor_data_init_hmp(MonitorHMP *mon, int flags, bool skip_flush);
> +int get_monitor_def(int64_t *pval, const char *name);
> +void help_cmd(Monitor *mon, const char *name);
> +void handle_hmp_command(MonitorHMP *mon, const char *cmdline);
> +
> #endif
[...]
next prev parent reply other threads:[~2019-06-12 13:21 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-11 13:40 [Qemu-devel] [PATCH v2 00/11] monitor: Split monitor.c in core/HMP/QMP/misc Kevin Wolf
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 01/11] monitor: Remove unused password prompting fields Kevin Wolf
2019-06-12 6:43 ` Markus Armbruster
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 02/11] monitor: Split monitor_init in HMP and QMP function Kevin Wolf
2019-06-12 6:12 ` Markus Armbruster
2019-06-12 6:43 ` Markus Armbruster
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 03/11] monitor: Make MonitorQMP a child class of Monitor Kevin Wolf
2019-06-12 7:59 ` Markus Armbruster
2019-06-12 11:28 ` Kevin Wolf
2019-06-12 14:18 ` Markus Armbruster
2019-06-12 8:05 ` [Qemu-devel] [PATCH v2.1 02.5/11] monitor: Restrict use of Monitor member qmp to actual QMP monitors Markus Armbruster
2019-06-12 8:05 ` [Qemu-devel] [PATCH v2.1 03/11] monitor: Make MonitorQMP a child class of Monitor Markus Armbruster
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 04/11] monitor: Create MonitorHMP with readline state Kevin Wolf
2019-06-12 9:07 ` Markus Armbruster
2019-06-12 9:54 ` Peter Xu
2019-06-12 10:03 ` Kevin Wolf
2019-06-12 14:08 ` Markus Armbruster
2019-06-12 14:10 ` Dr. David Alan Gilbert
2019-06-12 15:03 ` Kevin Wolf
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 05/11] monitor: Move cmd_table to MonitorHMP Kevin Wolf
2019-06-12 11:45 ` Markus Armbruster
2019-06-12 13:55 ` Kevin Wolf
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 06/11] Move monitor.c to monitor/misc.c Kevin Wolf
2019-06-11 15:38 ` Dr. David Alan Gilbert
2019-06-12 11:57 ` Markus Armbruster
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 07/11] monitor: Move {hmp, qmp}.c to monitor/{hmp, qmp}-cmds.c Kevin Wolf
2019-06-11 16:09 ` Dr. David Alan Gilbert
2019-06-12 12:01 ` Markus Armbruster
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 08/11] monitor: Create monitor_int.h with common definitions Kevin Wolf
2019-06-12 12:18 ` Markus Armbruster
2019-06-12 12:43 ` Markus Armbruster
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 09/11] monitor: Split out monitor/qmp.c Kevin Wolf
2019-06-12 13:11 ` Markus Armbruster
2019-06-12 15:25 ` Kevin Wolf
2019-06-13 5:38 ` Markus Armbruster
2019-06-13 14:11 ` Kevin Wolf
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 10/11] monitor: Split out monitor/hmp.c Kevin Wolf
2019-06-12 13:17 ` Markus Armbruster [this message]
2019-06-12 15:31 ` Kevin Wolf
2019-06-13 5:44 ` Markus Armbruster
2019-06-11 13:40 ` [Qemu-devel] [PATCH v2 11/11] monitor: Split out monitor/monitor.c Kevin Wolf
2019-06-12 13:49 ` Markus Armbruster
2019-06-12 15:51 ` Kevin Wolf
2019-06-11 14:18 ` [Qemu-devel] [PATCH v2 00/11] monitor: Split monitor.c in core/HMP/QMP/misc no-reply
2019-06-11 15:24 ` no-reply
2019-06-12 14:22 ` Markus Armbruster
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=87wohrx7r7.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dgilbert@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.