monitor: Use trad. command interface for HMP pcie_aer_inject_error
authorMarkus Armbruster <armbru@redhat.com>
Thu, 5 Mar 2015 16:48:49 +0000 (17:48 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Tue, 2 Jun 2015 07:59:13 +0000 (09:59 +0200)
commit04e00c92ef75629a241ebc50537f75de0867928d
treee448117b21a2b9f237ac96e9466b6cd09dc7012a
parent318660f84a0a26451750aee68ab7dcf88731637d
monitor: Use trad. command interface for HMP pcie_aer_inject_error

All QMP commands use the "new" handler interface (mhandler.cmd_new).
Most HMP commands still use the traditional interface (mhandler.cmd),
but a few use the "new" one.  Complicates handle_user_command() for no
gain, so I'm converting these to the traditional interface.

pcie_aer_inject_error's implementation is split into the
hmp_pcie_aer_inject_error() and pcie_aer_inject_error_print().  The
former is a peculiar crossbreed between HMP and QMP handler.  On
success, it works like a QMP handler: store QDict through ret_data
parameter, return 0.  Printing the QDict is left to
pcie_aer_inject_error_print().  On failure, it works more like an HMP
handler: print error to monitor, return negative number.

To convert to the traditional interface, turn
pcie_aer_inject_error_print() into a command handler wrapping around
hmp_pcie_aer_inject_error().  By convention, this command handler
should be called hmp_pcie_aer_inject_error(), so rename the existing
hmp_pcie_aer_inject_error() to do_pcie_aer_inject_error().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>
hmp-commands.hx
hw/pci/pci-stub.c
hw/pci/pcie_aer.c
include/sysemu/sysemu.h