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: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
072ebe6b03
commit
318660f84a
|
@ -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,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
6
hmp.c
6
hmp.c
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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");
|
||||||
|
|
1
hmp.h
1
hmp.h
|
@ -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,
|
||||||
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;
|
||||||
|
|
Loading…
Reference in New Issue