mirror of https://gitee.com/openkylin/qemu.git
QMP: Introduce command dispatch table
Also update QMP functions to use it. The table is generated from the qmp-commands.hx file. From now on, QMP and HMP have different command dispatch tables. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
bead3ce139
commit
f36b4afba9
|
@ -307,7 +307,7 @@ obj-alpha-y = alpha_palcode.o
|
|||
|
||||
main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
||||
|
||||
monitor.o: qemu-monitor.h
|
||||
monitor.o: qemu-monitor.h qmp-commands.h
|
||||
|
||||
$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
|
||||
|
||||
|
@ -331,10 +331,13 @@ gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/feature_to_c.sh
|
|||
qemu-monitor.h: $(SRC_PATH)/qemu-monitor.hx
|
||||
$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@")
|
||||
|
||||
qmp-commands.h: $(SRC_PATH)/qmp-commands.hx
|
||||
$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@")
|
||||
|
||||
clean:
|
||||
rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o
|
||||
rm -f *.d */*.d tcg/*.o ide/*.o
|
||||
rm -f qemu-monitor.h gdbstub-xml.c
|
||||
rm -f qemu-monitor.h qmp-commands.h gdbstub-xml.c
|
||||
|
||||
install: all
|
||||
ifneq ($(PROGS),)
|
||||
|
|
11
monitor.c
11
monitor.c
|
@ -189,6 +189,8 @@ static QLIST_HEAD(mon_list, Monitor) mon_list;
|
|||
static const mon_cmd_t mon_cmds[];
|
||||
static const mon_cmd_t info_cmds[];
|
||||
|
||||
static const mon_cmd_t qmp_cmds[];
|
||||
|
||||
Monitor *cur_mon;
|
||||
Monitor *default_mon;
|
||||
|
||||
|
@ -745,7 +747,7 @@ static void do_info_commands(Monitor *mon, QObject **ret_data)
|
|||
|
||||
cmd_list = qlist_new();
|
||||
|
||||
for (cmd = mon_cmds; cmd->name != NULL; cmd++) {
|
||||
for (cmd = qmp_cmds; cmd->name != NULL; cmd++) {
|
||||
if (monitor_handler_ported(cmd) && !monitor_cmd_user_only(cmd) &&
|
||||
!compare_cmd(cmd->name, "info")) {
|
||||
qlist_append_obj(cmd_list, get_cmd_dict(cmd->name));
|
||||
|
@ -2635,6 +2637,11 @@ static const mon_cmd_t info_cmds[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static const mon_cmd_t qmp_cmds[] = {
|
||||
#include "qmp-commands.h"
|
||||
{ /* NULL */ },
|
||||
};
|
||||
|
||||
/*******************************************************************/
|
||||
|
||||
static const char *pch;
|
||||
|
@ -3367,7 +3374,7 @@ static const mon_cmd_t *qmp_find_query_cmd(const char *info_item)
|
|||
|
||||
static const mon_cmd_t *qmp_find_cmd(const char *cmdname)
|
||||
{
|
||||
return search_dispatch_table(mon_cmds, cmdname);
|
||||
return search_dispatch_table(qmp_cmds, cmdname);
|
||||
}
|
||||
|
||||
static const mon_cmd_t *monitor_parse_command(Monitor *mon,
|
||||
|
|
Loading…
Reference in New Issue