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:
Luiz Capitulino 2010-09-15 17:17:45 -03:00
parent bead3ce139
commit f36b4afba9
2 changed files with 14 additions and 4 deletions

View file

@ -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,