hmp: introduce cmd_available
Combine the RUN_STATE_PRECONFIG and cmd_can_preconfig checks into a single function, to avoid repeating the same expression (or its negation after applying DeMorgan's rule) over and over again. Reviewed-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
ee55686efb
commit
4cd2927472
@ -213,6 +213,11 @@ static bool cmd_can_preconfig(const HMPCommand *cmd)
|
|||||||
return strchr(cmd->flags, 'p');
|
return strchr(cmd->flags, 'p');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool cmd_available(const HMPCommand *cmd)
|
||||||
|
{
|
||||||
|
return !runstate_check(RUN_STATE_PRECONFIG) || cmd_can_preconfig(cmd);
|
||||||
|
}
|
||||||
|
|
||||||
static void help_cmd_dump_one(Monitor *mon,
|
static void help_cmd_dump_one(Monitor *mon,
|
||||||
const HMPCommand *cmd,
|
const HMPCommand *cmd,
|
||||||
char **prefix_args,
|
char **prefix_args,
|
||||||
@ -220,7 +225,7 @@ static void help_cmd_dump_one(Monitor *mon,
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (runstate_check(RUN_STATE_PRECONFIG) && !cmd_can_preconfig(cmd)) {
|
if (!cmd_available(cmd)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -248,8 +253,7 @@ static void help_cmd_dump(Monitor *mon, const HMPCommand *cmds,
|
|||||||
/* Find one entry to dump */
|
/* Find one entry to dump */
|
||||||
for (cmd = cmds; cmd->name != NULL; cmd++) {
|
for (cmd = cmds; cmd->name != NULL; cmd++) {
|
||||||
if (hmp_compare_cmd(args[arg_index], cmd->name) &&
|
if (hmp_compare_cmd(args[arg_index], cmd->name) &&
|
||||||
((!runstate_check(RUN_STATE_PRECONFIG) ||
|
cmd_available(cmd)) {
|
||||||
cmd_can_preconfig(cmd)))) {
|
|
||||||
if (cmd->sub_table) {
|
if (cmd->sub_table) {
|
||||||
/* continue with next arg */
|
/* continue with next arg */
|
||||||
help_cmd_dump(mon, cmd->sub_table,
|
help_cmd_dump(mon, cmd->sub_table,
|
||||||
@ -653,7 +657,7 @@ static const HMPCommand *monitor_parse_command(MonitorHMP *hmp_mon,
|
|||||||
(int)(p - cmdp_start), cmdp_start);
|
(int)(p - cmdp_start), cmdp_start);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (runstate_check(RUN_STATE_PRECONFIG) && !cmd_can_preconfig(cmd)) {
|
if (!cmd_available(cmd)) {
|
||||||
monitor_printf(mon, "Command '%.*s' not available with -preconfig "
|
monitor_printf(mon, "Command '%.*s' not available with -preconfig "
|
||||||
"until after exit_preconfig.\n",
|
"until after exit_preconfig.\n",
|
||||||
(int)(p - cmdp_start), cmdp_start);
|
(int)(p - cmdp_start), cmdp_start);
|
||||||
@ -1225,8 +1229,7 @@ static void monitor_find_completion_by_table(MonitorHMP *mon,
|
|||||||
}
|
}
|
||||||
readline_set_completion_index(mon->rs, strlen(cmdname));
|
readline_set_completion_index(mon->rs, strlen(cmdname));
|
||||||
for (cmd = cmd_table; cmd->name != NULL; cmd++) {
|
for (cmd = cmd_table; cmd->name != NULL; cmd++) {
|
||||||
if (!runstate_check(RUN_STATE_PRECONFIG) ||
|
if (cmd_available(cmd)) {
|
||||||
cmd_can_preconfig(cmd)) {
|
|
||||||
cmd_completion(mon, cmdname, cmd->name);
|
cmd_completion(mon, cmdname, cmd->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1234,8 +1237,7 @@ static void monitor_find_completion_by_table(MonitorHMP *mon,
|
|||||||
/* find the command */
|
/* find the command */
|
||||||
for (cmd = cmd_table; cmd->name != NULL; cmd++) {
|
for (cmd = cmd_table; cmd->name != NULL; cmd++) {
|
||||||
if (hmp_compare_cmd(args[0], cmd->name) &&
|
if (hmp_compare_cmd(args[0], cmd->name) &&
|
||||||
(!runstate_check(RUN_STATE_PRECONFIG) ||
|
cmd_available(cmd)) {
|
||||||
cmd_can_preconfig(cmd))) {
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user