diff options
author | Kevin Wolf <kwolf@redhat.com> | 2020-10-05 17:58:44 +0200 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2020-10-09 07:08:19 +0200 |
commit | 947e47448dcc4e4d7a8b7c42b43acb3435b3ad35 (patch) | |
tree | 855a18a7da785ee7dff7919ec9a02be34c6ff51c /monitor/misc.c | |
parent | 87e6f4a4d6885006931b371771e2933c40700427 (diff) |
monitor: Use getter/setter functions for cur_mon
cur_mon really needs to be coroutine-local as soon as we move monitor
command handlers to coroutines and let them yield. As a first step, just
remove all direct accesses to cur_mon so that we can implement this in
the getter function later.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20201005155855.256490-4-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'monitor/misc.c')
-rw-r--r-- | monitor/misc.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/monitor/misc.c b/monitor/misc.c index 4ea575eea8..ee8db45094 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -125,13 +125,12 @@ char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index, monitor_data_init(&hmp.common, false, true, false); - old_mon = cur_mon; - cur_mon = &hmp.common; + old_mon = monitor_set_cur(&hmp.common); if (has_cpu_index) { int ret = monitor_set_cpu(&hmp.common, cpu_index); if (ret < 0) { - cur_mon = old_mon; + monitor_set_cur(old_mon); error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "cpu-index", "a CPU number"); goto out; @@ -139,7 +138,7 @@ char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index, } handle_hmp_command(&hmp, command_line); - cur_mon = old_mon; + monitor_set_cur(old_mon); WITH_QEMU_LOCK_GUARD(&hmp.common.mon_lock) { if (qstring_get_length(hmp.common.outbuf) > 0) { @@ -297,7 +296,7 @@ static CPUState *mon_get_cpu_sync(Monitor *mon, bool synchronize) CPUState *mon_get_cpu(void) { - return mon_get_cpu_sync(cur_mon, true); + return mon_get_cpu_sync(monitor_cur(), true); } CPUArchState *mon_get_cpu_env(void) @@ -1232,6 +1231,7 @@ static void hmp_acl_remove(Monitor *mon, const QDict *qdict) void qmp_getfd(const char *fdname, Error **errp) { + Monitor *cur_mon = monitor_cur(); mon_fd_t *monfd; int fd, tmp_fd; @@ -1270,6 +1270,7 @@ void qmp_getfd(const char *fdname, Error **errp) void qmp_closefd(const char *fdname, Error **errp) { + Monitor *cur_mon = monitor_cur(); mon_fd_t *monfd; int tmp_fd; @@ -1356,7 +1357,7 @@ AddfdInfo *qmp_add_fd(bool has_fdset_id, int64_t fdset_id, bool has_opaque, const char *opaque, Error **errp) { int fd; - Monitor *mon = cur_mon; + Monitor *mon = monitor_cur(); AddfdInfo *fdinfo; fd = qemu_chr_fe_get_msgfd(&mon->chr); |