qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 07/11] qmp: Wean off qerror_report()


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH 07/11] qmp: Wean off qerror_report()
Date: Mon, 15 Jun 2015 16:08:07 +0100
User-agent: Mutt/1.5.23 (2014-03-12)

On Sat, Jun 13, 2015 at 04:20:54PM +0200, Markus Armbruster wrote:
> The traditional QMP command handler interface
> 
>     int qmp_FOO(Monitor *mon, const QDict *params, QObject **ret_data);
> 
> doesn't provide for returning an Error object.  Instead, the handler
> is expected to stash it in the monitor with qerror_report().
> 
> When we rebased QMP on top of QAPI, we didn't change this interface.
> Instead, commit 776574d introduced "middle mode" as a temporary aid
> for converting existing QMP commands to QAPI one by one.  More than
> three years later, we're still using it.
> 
> Middle mode has two effects:
> 
> * Instead of the native input marshallers
> 
>       static void qmp_marshal_input_FOO(QDict *, QObject **, Error **)
> 
>   it generates input marshallers conforming to the traditional QMP
>   command handler interface.
> 
> * It suppresses generation of code to register them with
>   qmp_register_command()
> 
>   This permits giving them internal linkage.
> 
> As long as we need qmp-commands.hx, we can't use the registry behind
> qmp_register_command(), so the latter has to stay for now.
> 
> The former has to go to get rid of qerror_report().  Changing all QMP
> commands to fit the QAPI mold in one go was impractical back when we
> started, but by now there are just a few stragglers left:
> do_qmp_capabilities(), qmp_qom_set(), qmp_qom_get(), qmp_object_add(),
> qmp_netdev_add(), do_device_add().
> 
> Switch middle mode to generate native input marshallers, and adapt the
> stragglers.  Simplifies both the monitor code and the stragglers.
> 
> Rename do_qmp_capabilities() to qmp_capabilities(), and
> do_device_add() to qmp_device_add, because that's how QMP command
> handlers are named today.
> 
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
>  hmp.c                     |  5 ++++-
>  include/monitor/monitor.h |  7 +++---
>  include/monitor/qdev.h    |  3 ++-
>  include/net/net.h         |  2 +-
>  monitor.c                 | 24 ++++++---------------
>  net/net.c                 | 16 ++++++--------
>  qdev-monitor.c            | 15 ++++++-------
>  qmp-commands.hx           |  4 ++--
>  qmp.c                     | 55 
> +++++++++++------------------------------------
>  scripts/qapi-commands.py  | 41 ++++++-----------------------------
>  util/qemu-error.c         |  4 ++--
>  11 files changed, 50 insertions(+), 126 deletions(-)

Net portions look good.

Reviewed-by: Stefan Hajnoczi <address@hidden>

Attachment: pgpgIQj8kupbC.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]