mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:56:38 +00:00
monitor: replace 'common' with 'parent_obj' in MonitorHMP
The field name 'parent_obj' is standard practice for QOM structs so align the HMP monitor. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org> Tested-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20260706135824.2623960-3-berrange@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
committed by
Markus Armbruster
parent
9c3b2c9db5
commit
8b5ca42730
@@ -287,7 +287,7 @@ void hmp_info_sync_profile(Monitor *mon, const QDict *qdict)
|
||||
|
||||
void hmp_info_history(Monitor *mon, const QDict *qdict)
|
||||
{
|
||||
MonitorHMP *hmp_mon = container_of(mon, MonitorHMP, common);
|
||||
MonitorHMP *hmp_mon = container_of(mon, MonitorHMP, parent_obj);
|
||||
int i;
|
||||
const char *str;
|
||||
|
||||
|
||||
@@ -48,9 +48,9 @@ static void monitor_command_cb(void *opaque, const char *cmdline,
|
||||
{
|
||||
MonitorHMP *mon = opaque;
|
||||
|
||||
monitor_suspend(&mon->common);
|
||||
monitor_suspend(&mon->parent_obj);
|
||||
handle_hmp_command(mon, cmdline);
|
||||
monitor_resume(&mon->common);
|
||||
monitor_resume(&mon->parent_obj);
|
||||
}
|
||||
|
||||
void monitor_read_command(MonitorHMP *mon, int show_prompt)
|
||||
@@ -73,7 +73,7 @@ int monitor_read_password(MonitorHMP *mon, ReadLineFunc *readline_func,
|
||||
/* prompt is printed on return from the command handler */
|
||||
return 0;
|
||||
} else {
|
||||
monitor_printf(&mon->common,
|
||||
monitor_printf(&mon->parent_obj,
|
||||
"terminal does not support password prompting\n");
|
||||
return -ENOTTY;
|
||||
}
|
||||
@@ -695,7 +695,7 @@ static const HMPCommand *monitor_parse_command(MonitorHMP *hmp_mon,
|
||||
const char **cmdp,
|
||||
HMPCommand *table)
|
||||
{
|
||||
Monitor *mon = &hmp_mon->common;
|
||||
Monitor *mon = &hmp_mon->parent_obj;
|
||||
const char *p;
|
||||
const HMPCommand *cmd;
|
||||
char cmdname[256];
|
||||
@@ -1188,35 +1188,37 @@ void handle_hmp_command(MonitorHMP *mon, const char *cmdline)
|
||||
|
||||
if (!cmd->cmd && !cmd->cmd_info_hrt) {
|
||||
/* FIXME: is it useful to try autoload modules here ??? */
|
||||
monitor_printf(&mon->common, "Command \"%.*s\" is not available.\n",
|
||||
monitor_printf(&mon->parent_obj, "Command \"%.*s\" is not available.\n",
|
||||
(int)(cmdline - cmd_start), cmd_start);
|
||||
return;
|
||||
}
|
||||
|
||||
qdict = monitor_parse_arguments(&mon->common, &cmdline, cmd);
|
||||
qdict = monitor_parse_arguments(&mon->parent_obj, &cmdline, cmd);
|
||||
if (!qdict) {
|
||||
while (cmdline > cmd_start && qemu_isspace(cmdline[-1])) {
|
||||
cmdline--;
|
||||
}
|
||||
monitor_printf(&mon->common, "Try \"help %.*s\" for more information\n",
|
||||
monitor_printf(&mon->parent_obj,
|
||||
"Try \"help %.*s\" for more information\n",
|
||||
(int)(cmdline - cmd_start), cmd_start);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!cmd->coroutine) {
|
||||
/* old_mon is non-NULL when called from qmp_human_monitor_command() */
|
||||
Monitor *old_mon = monitor_set_cur(qemu_coroutine_self(), &mon->common);
|
||||
handle_hmp_command_exec(&mon->common, cmd, qdict);
|
||||
Monitor *old_mon = monitor_set_cur(qemu_coroutine_self(),
|
||||
&mon->parent_obj);
|
||||
handle_hmp_command_exec(&mon->parent_obj, cmd, qdict);
|
||||
monitor_set_cur(qemu_coroutine_self(), old_mon);
|
||||
} else {
|
||||
HandleHmpCommandCo data = {
|
||||
.mon = &mon->common,
|
||||
.mon = &mon->parent_obj,
|
||||
.cmd = cmd,
|
||||
.qdict = qdict,
|
||||
.done = false,
|
||||
};
|
||||
Coroutine *co = qemu_coroutine_create(handle_hmp_command_co, &data);
|
||||
monitor_set_cur(co, &mon->common);
|
||||
monitor_set_cur(co, &mon->parent_obj);
|
||||
aio_co_enter(qemu_get_aio_context(), co);
|
||||
AIO_WAIT_WHILE_UNLOCKED(NULL, !data.done);
|
||||
}
|
||||
@@ -1434,7 +1436,7 @@ cleanup:
|
||||
|
||||
static void monitor_read(void *opaque, const uint8_t *buf, int size)
|
||||
{
|
||||
MonitorHMP *mon = container_of(opaque, MonitorHMP, common);
|
||||
MonitorHMP *mon = container_of(opaque, MonitorHMP, parent_obj);
|
||||
int i;
|
||||
|
||||
if (mon->rs) {
|
||||
@@ -1443,7 +1445,7 @@ static void monitor_read(void *opaque, const uint8_t *buf, int size)
|
||||
}
|
||||
} else {
|
||||
if (size == 0 || buf[size - 1] != 0) {
|
||||
monitor_printf(&mon->common, "corrupted command\n");
|
||||
monitor_printf(&mon->parent_obj, "corrupted command\n");
|
||||
} else {
|
||||
handle_hmp_command(mon, (char *)buf);
|
||||
}
|
||||
@@ -1512,26 +1514,26 @@ static void G_GNUC_PRINTF(2, 3) monitor_readline_printf(void *opaque,
|
||||
MonitorHMP *mon = opaque;
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
monitor_vprintf(&mon->common, fmt, ap);
|
||||
monitor_vprintf(&mon->parent_obj, fmt, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
static void monitor_readline_flush(void *opaque)
|
||||
{
|
||||
MonitorHMP *mon = opaque;
|
||||
monitor_flush(&mon->common);
|
||||
monitor_flush(&mon->parent_obj);
|
||||
}
|
||||
|
||||
void monitor_init_hmp(Chardev *chr, bool use_readline, Error **errp)
|
||||
{
|
||||
MonitorHMP *mon = g_new0(MonitorHMP, 1);
|
||||
|
||||
if (!qemu_chr_fe_init(&mon->common.chr, chr, errp)) {
|
||||
if (!qemu_chr_fe_init(&mon->parent_obj.chr, chr, errp)) {
|
||||
g_free(mon);
|
||||
return;
|
||||
}
|
||||
|
||||
monitor_data_init(&mon->common, false, false, false);
|
||||
monitor_data_init(&mon->parent_obj, false, false, false);
|
||||
|
||||
mon->use_readline = use_readline;
|
||||
if (mon->use_readline) {
|
||||
@@ -1542,9 +1544,10 @@ void monitor_init_hmp(Chardev *chr, bool use_readline, Error **errp)
|
||||
monitor_read_command(mon, 0);
|
||||
}
|
||||
|
||||
qemu_chr_fe_set_handlers(&mon->common.chr, monitor_can_read, monitor_read,
|
||||
monitor_event, NULL, &mon->common, NULL, true);
|
||||
monitor_list_append(&mon->common);
|
||||
qemu_chr_fe_set_handlers(&mon->parent_obj.chr,
|
||||
monitor_can_read, monitor_read, monitor_event,
|
||||
NULL, &mon->parent_obj, NULL, true);
|
||||
monitor_list_append(&mon->parent_obj);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -128,7 +128,7 @@ struct Monitor {
|
||||
};
|
||||
|
||||
struct MonitorHMP {
|
||||
Monitor common;
|
||||
Monitor parent_obj;
|
||||
bool use_readline;
|
||||
/*
|
||||
* State used only in the thread "owning" the monitor.
|
||||
|
||||
@@ -132,7 +132,7 @@ static inline bool monitor_is_hmp_non_interactive(const Monitor *mon)
|
||||
return false;
|
||||
}
|
||||
|
||||
return !monitor_uses_readline(container_of(mon, MonitorHMP, common));
|
||||
return !monitor_uses_readline(container_of(mon, MonitorHMP, parent_obj));
|
||||
}
|
||||
|
||||
static gboolean monitor_unblocked(void *do_not_use, GIOCondition cond,
|
||||
@@ -542,7 +542,7 @@ static void monitor_accept_input(void *opaque)
|
||||
|
||||
qemu_mutex_lock(&mon->mon_lock);
|
||||
if (!monitor_is_qmp(mon) && mon->reset_seen) {
|
||||
MonitorHMP *hmp_mon = container_of(mon, MonitorHMP, common);
|
||||
MonitorHMP *hmp_mon = container_of(mon, MonitorHMP, parent_obj);
|
||||
assert(hmp_mon->rs);
|
||||
readline_restart(hmp_mon->rs);
|
||||
qemu_mutex_unlock(&mon->mon_lock);
|
||||
@@ -627,7 +627,7 @@ void monitor_data_destroy(Monitor *mon)
|
||||
if (monitor_is_qmp(mon)) {
|
||||
monitor_data_destroy_qmp(container_of(mon, MonitorQMP, common));
|
||||
} else {
|
||||
readline_free(container_of(mon, MonitorHMP, common)->rs);
|
||||
readline_free(container_of(mon, MonitorHMP, parent_obj)->rs);
|
||||
}
|
||||
g_string_free(mon->outbuf, true);
|
||||
qemu_mutex_destroy(&mon->mon_lock);
|
||||
|
||||
@@ -168,10 +168,10 @@ char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index,
|
||||
char *output = NULL;
|
||||
MonitorHMP hmp = {};
|
||||
|
||||
monitor_data_init(&hmp.common, false, true, false);
|
||||
monitor_data_init(&hmp.parent_obj, false, true, false);
|
||||
|
||||
if (has_cpu_index) {
|
||||
int ret = monitor_set_cpu(&hmp.common, cpu_index);
|
||||
int ret = monitor_set_cpu(&hmp.parent_obj, cpu_index);
|
||||
if (ret < 0) {
|
||||
error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "cpu-index",
|
||||
"a CPU number");
|
||||
@@ -181,12 +181,12 @@ char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index,
|
||||
|
||||
handle_hmp_command(&hmp, command_line);
|
||||
|
||||
WITH_QEMU_LOCK_GUARD(&hmp.common.mon_lock) {
|
||||
output = g_strdup(hmp.common.outbuf->str);
|
||||
WITH_QEMU_LOCK_GUARD(&hmp.parent_obj.mon_lock) {
|
||||
output = g_strdup(hmp.parent_obj.outbuf->str);
|
||||
}
|
||||
|
||||
out:
|
||||
monitor_data_destroy(&hmp.common);
|
||||
monitor_data_destroy(&hmp.parent_obj);
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
@@ -343,7 +343,7 @@ void hmp_change_vnc(Monitor *mon, const char *device, const char *target,
|
||||
return;
|
||||
}
|
||||
if (!arg) {
|
||||
MonitorHMP *hmp_mon = container_of(mon, MonitorHMP, common);
|
||||
MonitorHMP *hmp_mon = container_of(mon, MonitorHMP, parent_obj);
|
||||
monitor_read_password(hmp_mon, hmp_change_read_arg, NULL);
|
||||
} else {
|
||||
qmp_change_vnc_password(arg, errp);
|
||||
|
||||
Reference in New Issue
Block a user