monitor: Rename HMP command type and tables
This renames the type for HMP monitor commands and the tables holding the commands to make clear that they are related to HMP and to allow making them public later: * mon_cmd_t -> HMPCommand (fixing use of a reserved name, too) * mon_cmds -> hmp_cmds * info_cmds -> hmp_info_cmds Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20190613153405.24769-7-kwolf@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [sortcmdlist() cleaned up to make checkpatch.pl happy] Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
18a8887309
commit
a0cd5e1c8e
@ -1934,7 +1934,7 @@ ETEXI
|
|||||||
.params = "[subcommand]",
|
.params = "[subcommand]",
|
||||||
.help = "show various information about the system state",
|
.help = "show various information about the system state",
|
||||||
.cmd = hmp_info_help,
|
.cmd = hmp_info_help,
|
||||||
.sub_table = info_cmds,
|
.sub_table = hmp_info_cmds,
|
||||||
.flags = "p",
|
.flags = "p",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
66
monitor.c
66
monitor.c
@ -127,7 +127,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct mon_cmd_t {
|
typedef struct HMPCommand {
|
||||||
const char *name;
|
const char *name;
|
||||||
const char *args_type;
|
const char *args_type;
|
||||||
const char *params;
|
const char *params;
|
||||||
@ -138,9 +138,9 @@ typedef struct mon_cmd_t {
|
|||||||
* cmd should be used. If it exists, sub_table[?].cmd should be
|
* cmd should be used. If it exists, sub_table[?].cmd should be
|
||||||
* used, and cmd of 1st level plays the role of help function.
|
* used, and cmd of 1st level plays the role of help function.
|
||||||
*/
|
*/
|
||||||
struct mon_cmd_t *sub_table;
|
struct HMPCommand *sub_table;
|
||||||
void (*command_completion)(ReadLineState *rs, int nb_args, const char *str);
|
void (*command_completion)(ReadLineState *rs, int nb_args, const char *str);
|
||||||
} mon_cmd_t;
|
} HMPCommand;
|
||||||
|
|
||||||
/* file descriptors passed via SCM_RIGHTS */
|
/* file descriptors passed via SCM_RIGHTS */
|
||||||
typedef struct mon_fd_t mon_fd_t;
|
typedef struct mon_fd_t mon_fd_t;
|
||||||
@ -277,8 +277,8 @@ static QLIST_HEAD(, MonFdset) mon_fdsets;
|
|||||||
|
|
||||||
static int mon_refcount;
|
static int mon_refcount;
|
||||||
|
|
||||||
static mon_cmd_t mon_cmds[];
|
static HMPCommand hmp_cmds[];
|
||||||
static mon_cmd_t info_cmds[];
|
static HMPCommand hmp_info_cmds[];
|
||||||
|
|
||||||
QmpCommandList qmp_commands, qmp_cap_negotiation_commands;
|
QmpCommandList qmp_commands, qmp_cap_negotiation_commands;
|
||||||
|
|
||||||
@ -933,7 +933,7 @@ static int parse_cmdline(const char *cmdline,
|
|||||||
/*
|
/*
|
||||||
* Can command @cmd be executed in preconfig state?
|
* Can command @cmd be executed in preconfig state?
|
||||||
*/
|
*/
|
||||||
static bool cmd_can_preconfig(const mon_cmd_t *cmd)
|
static bool cmd_can_preconfig(const HMPCommand *cmd)
|
||||||
{
|
{
|
||||||
if (!cmd->flags) {
|
if (!cmd->flags) {
|
||||||
return false;
|
return false;
|
||||||
@ -943,7 +943,7 @@ static bool cmd_can_preconfig(const mon_cmd_t *cmd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void help_cmd_dump_one(Monitor *mon,
|
static void help_cmd_dump_one(Monitor *mon,
|
||||||
const mon_cmd_t *cmd,
|
const HMPCommand *cmd,
|
||||||
char **prefix_args,
|
char **prefix_args,
|
||||||
int prefix_args_nb)
|
int prefix_args_nb)
|
||||||
{
|
{
|
||||||
@ -960,10 +960,10 @@ static void help_cmd_dump_one(Monitor *mon,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* @args[@arg_index] is the valid command need to find in @cmds */
|
/* @args[@arg_index] is the valid command need to find in @cmds */
|
||||||
static void help_cmd_dump(Monitor *mon, const mon_cmd_t *cmds,
|
static void help_cmd_dump(Monitor *mon, const HMPCommand *cmds,
|
||||||
char **args, int nb_args, int arg_index)
|
char **args, int nb_args, int arg_index)
|
||||||
{
|
{
|
||||||
const mon_cmd_t *cmd;
|
const HMPCommand *cmd;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
/* No valid arg need to compare with, dump all in *cmds */
|
/* No valid arg need to compare with, dump all in *cmds */
|
||||||
@ -1021,7 +1021,7 @@ static void help_cmd(Monitor *mon, const char *name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 2. dump the contents according to parsed args */
|
/* 2. dump the contents according to parsed args */
|
||||||
help_cmd_dump(mon, mon_cmds, args, nb_args, 0);
|
help_cmd_dump(mon, hmp_cmds, args, nb_args, 0);
|
||||||
|
|
||||||
free_cmdline_args(args, nb_args);
|
free_cmdline_args(args, nb_args);
|
||||||
}
|
}
|
||||||
@ -2689,13 +2689,13 @@ int monitor_fd_param(Monitor *mon, const char *fdname, Error **errp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Please update hmp-commands.hx when adding or changing commands */
|
/* Please update hmp-commands.hx when adding or changing commands */
|
||||||
static mon_cmd_t info_cmds[] = {
|
static HMPCommand hmp_info_cmds[] = {
|
||||||
#include "hmp-commands-info.h"
|
#include "hmp-commands-info.h"
|
||||||
{ NULL, NULL, },
|
{ NULL, NULL, },
|
||||||
};
|
};
|
||||||
|
|
||||||
/* mon_cmds and info_cmds would be sorted at runtime */
|
/* hmp_cmds and hmp_info_cmds would be sorted at runtime */
|
||||||
static mon_cmd_t mon_cmds[] = {
|
static HMPCommand hmp_cmds[] = {
|
||||||
#include "hmp-commands.h"
|
#include "hmp-commands.h"
|
||||||
{ NULL, NULL, },
|
{ NULL, NULL, },
|
||||||
};
|
};
|
||||||
@ -3037,10 +3037,10 @@ static int is_valid_option(const char *c, const char *typestr)
|
|||||||
return (typestr != NULL);
|
return (typestr != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const mon_cmd_t *search_dispatch_table(const mon_cmd_t *disp_table,
|
static const HMPCommand *search_dispatch_table(const HMPCommand *disp_table,
|
||||||
const char *cmdname)
|
const char *cmdname)
|
||||||
{
|
{
|
||||||
const mon_cmd_t *cmd;
|
const HMPCommand *cmd;
|
||||||
|
|
||||||
for (cmd = disp_table; cmd->name != NULL; cmd++) {
|
for (cmd = disp_table; cmd->name != NULL; cmd++) {
|
||||||
if (compare_cmd(cmdname, cmd->name)) {
|
if (compare_cmd(cmdname, cmd->name)) {
|
||||||
@ -3061,14 +3061,14 @@ static const mon_cmd_t *search_dispatch_table(const mon_cmd_t *disp_table,
|
|||||||
* Do not assume the return value points into @table! It doesn't when
|
* Do not assume the return value points into @table! It doesn't when
|
||||||
* the command is found in a sub-command table.
|
* the command is found in a sub-command table.
|
||||||
*/
|
*/
|
||||||
static const mon_cmd_t *monitor_parse_command(MonitorHMP *hmp_mon,
|
static const HMPCommand *monitor_parse_command(MonitorHMP *hmp_mon,
|
||||||
const char *cmdp_start,
|
const char *cmdp_start,
|
||||||
const char **cmdp,
|
const char **cmdp,
|
||||||
mon_cmd_t *table)
|
HMPCommand *table)
|
||||||
{
|
{
|
||||||
Monitor *mon = &hmp_mon->common;
|
Monitor *mon = &hmp_mon->common;
|
||||||
const char *p;
|
const char *p;
|
||||||
const mon_cmd_t *cmd;
|
const HMPCommand *cmd;
|
||||||
char cmdname[256];
|
char cmdname[256];
|
||||||
|
|
||||||
/* extract the command name */
|
/* extract the command name */
|
||||||
@ -3112,7 +3112,7 @@ static const mon_cmd_t *monitor_parse_command(MonitorHMP *hmp_mon,
|
|||||||
|
|
||||||
static QDict *monitor_parse_arguments(Monitor *mon,
|
static QDict *monitor_parse_arguments(Monitor *mon,
|
||||||
const char **endp,
|
const char **endp,
|
||||||
const mon_cmd_t *cmd)
|
const HMPCommand *cmd)
|
||||||
{
|
{
|
||||||
const char *typestr;
|
const char *typestr;
|
||||||
char *key;
|
char *key;
|
||||||
@ -3477,12 +3477,12 @@ fail:
|
|||||||
static void handle_hmp_command(MonitorHMP *mon, const char *cmdline)
|
static void handle_hmp_command(MonitorHMP *mon, const char *cmdline)
|
||||||
{
|
{
|
||||||
QDict *qdict;
|
QDict *qdict;
|
||||||
const mon_cmd_t *cmd;
|
const HMPCommand *cmd;
|
||||||
const char *cmd_start = cmdline;
|
const char *cmd_start = cmdline;
|
||||||
|
|
||||||
trace_handle_hmp_command(mon, cmdline);
|
trace_handle_hmp_command(mon, cmdline);
|
||||||
|
|
||||||
cmd = monitor_parse_command(mon, cmdline, &cmdline, mon_cmds);
|
cmd = monitor_parse_command(mon, cmdline, &cmdline, hmp_cmds);
|
||||||
if (!cmd) {
|
if (!cmd) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -4015,14 +4015,14 @@ void loadvm_completion(ReadLineState *rs, int nb_args, const char *str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void monitor_find_completion_by_table(MonitorHMP *mon,
|
static void monitor_find_completion_by_table(MonitorHMP *mon,
|
||||||
const mon_cmd_t *cmd_table,
|
const HMPCommand *cmd_table,
|
||||||
char **args,
|
char **args,
|
||||||
int nb_args)
|
int nb_args)
|
||||||
{
|
{
|
||||||
const char *cmdname;
|
const char *cmdname;
|
||||||
int i;
|
int i;
|
||||||
const char *ptype, *old_ptype, *str, *name;
|
const char *ptype, *old_ptype, *str, *name;
|
||||||
const mon_cmd_t *cmd;
|
const HMPCommand *cmd;
|
||||||
BlockBackend *blk = NULL;
|
BlockBackend *blk = NULL;
|
||||||
|
|
||||||
if (nb_args <= 1) {
|
if (nb_args <= 1) {
|
||||||
@ -4129,7 +4129,7 @@ static void monitor_find_completion(void *opaque,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 2. auto complete according to args */
|
/* 2. auto complete according to args */
|
||||||
monitor_find_completion_by_table(mon, mon_cmds, args, nb_args);
|
monitor_find_completion_by_table(mon, hmp_cmds, args, nb_args);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
free_cmdline_args(args, nb_args);
|
free_cmdline_args(args, nb_args);
|
||||||
@ -4529,20 +4529,18 @@ static void monitor_event(void *opaque, int event)
|
|||||||
static int
|
static int
|
||||||
compare_mon_cmd(const void *a, const void *b)
|
compare_mon_cmd(const void *a, const void *b)
|
||||||
{
|
{
|
||||||
return strcmp(((const mon_cmd_t *)a)->name,
|
return strcmp(((const HMPCommand *)a)->name,
|
||||||
((const mon_cmd_t *)b)->name);
|
((const HMPCommand *)b)->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sortcmdlist(void)
|
static void sortcmdlist(void)
|
||||||
{
|
{
|
||||||
int array_num;
|
qsort(hmp_cmds, ARRAY_SIZE(hmp_cmds) - 1,
|
||||||
int elem_size = sizeof(mon_cmd_t);
|
sizeof(*hmp_cmds),
|
||||||
|
compare_mon_cmd);
|
||||||
array_num = sizeof(mon_cmds)/elem_size-1;
|
qsort(hmp_info_cmds, ARRAY_SIZE(hmp_info_cmds) - 1,
|
||||||
qsort((void *)mon_cmds, array_num, elem_size, compare_mon_cmd);
|
sizeof(*hmp_info_cmds),
|
||||||
|
compare_mon_cmd);
|
||||||
array_num = sizeof(info_cmds)/elem_size-1;
|
|
||||||
qsort((void *)info_cmds, array_num, elem_size, compare_mon_cmd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void monitor_iothread_init(void)
|
static void monitor_iothread_init(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user