提交 318660f8 编写于 作者: M Markus Armbruster

monitor: Use traditional command interface for HMP device_add

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.

For device_add, that's easy: just wrap the obvious hmp_device_add()
around do_device_add().

monitor_user_noop() is now unused, drop it.
Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
Reviewed-by: NEric Blake <eblake@redhat.com>
Reviewed-by: NLuiz Capitulino <lcapitulino@redhat.com>
上级 072ebe6b
...@@ -653,8 +653,7 @@ ETEXI ...@@ -653,8 +653,7 @@ ETEXI
.args_type = "device:O", .args_type = "device:O",
.params = "driver[,prop=value][,...]", .params = "driver[,prop=value][,...]",
.help = "add device, like -device on the command line", .help = "add device, like -device on the command line",
.user_print = monitor_user_noop, .mhandler.cmd = hmp_device_add,
.mhandler.cmd_new = do_device_add,
.command_completion = device_add_completion, .command_completion = device_add_completion,
}, },
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "qmp-commands.h" #include "qmp-commands.h"
#include "qemu/sockets.h" #include "qemu/sockets.h"
#include "monitor/monitor.h" #include "monitor/monitor.h"
#include "monitor/qdev.h"
#include "qapi/opts-visitor.h" #include "qapi/opts-visitor.h"
#include "qapi/string-output-visitor.h" #include "qapi/string-output-visitor.h"
#include "qapi-visit.h" #include "qapi-visit.h"
...@@ -1499,6 +1500,11 @@ void hmp_migrate(Monitor *mon, const QDict *qdict) ...@@ -1499,6 +1500,11 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
} }
} }
void hmp_device_add(Monitor *mon, const QDict *qdict)
{
do_device_add(mon, qdict, NULL);
}
void hmp_device_del(Monitor *mon, const QDict *qdict) void hmp_device_del(Monitor *mon, const QDict *qdict)
{ {
const char *id = qdict_get_str(qdict, "id"); const char *id = qdict_get_str(qdict, "id");
......
...@@ -80,6 +80,7 @@ void hmp_block_job_pause(Monitor *mon, const QDict *qdict); ...@@ -80,6 +80,7 @@ void hmp_block_job_pause(Monitor *mon, const QDict *qdict);
void hmp_block_job_resume(Monitor *mon, const QDict *qdict); void hmp_block_job_resume(Monitor *mon, const QDict *qdict);
void hmp_block_job_complete(Monitor *mon, const QDict *qdict); void hmp_block_job_complete(Monitor *mon, const QDict *qdict);
void hmp_migrate(Monitor *mon, const QDict *qdict); void hmp_migrate(Monitor *mon, const QDict *qdict);
void hmp_device_add(Monitor *mon, const QDict *qdict);
void hmp_device_del(Monitor *mon, const QDict *qdict); void hmp_device_del(Monitor *mon, const QDict *qdict);
void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict); void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict);
void hmp_netdev_add(Monitor *mon, const QDict *qdict); void hmp_netdev_add(Monitor *mon, const QDict *qdict);
......
...@@ -378,8 +378,6 @@ static int GCC_FMT_ATTR(2, 3) monitor_fprintf(FILE *stream, ...@@ -378,8 +378,6 @@ static int GCC_FMT_ATTR(2, 3) monitor_fprintf(FILE *stream,
return 0; return 0;
} }
static void monitor_user_noop(Monitor *mon, const QObject *data) { }
static inline int handler_is_qobject(const mon_cmd_t *cmd) static inline int handler_is_qobject(const mon_cmd_t *cmd)
{ {
return cmd->user_print != NULL; return cmd->user_print != NULL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册