If necessary, add an helper that can be used to retrieve the associated monitor. This is useful for asynchronous commands that may have to update cur_mon for various reasons.
Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- include/monitor/monitor.h | 3 +++ monitor/qmp.c | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h index a81eeff5f8..6a2907a366 100644 --- a/include/monitor/monitor.h +++ b/include/monitor/monitor.h @@ -4,6 +4,7 @@ #include "block/block.h" #include "qapi/qapi-types-misc.h" #include "qemu/readline.h" +#include "qapi/qmp/dispatch.h" extern __thread Monitor *cur_mon; typedef struct MonitorHMP MonitorHMP; @@ -43,4 +44,6 @@ int monitor_fdset_dup_fd_add(int64_t fdset_id, int dup_fd); void monitor_fdset_dup_fd_remove(int dup_fd); int64_t monitor_fdset_dup_fd_find(int dup_fd); +Monitor *qmp_return_get_monitor(QmpReturn *qret); + #endif /* MONITOR_H */ diff --git a/monitor/qmp.c b/monitor/qmp.c index 056ad7b68b..df8b9d8d4f 100644 --- a/monitor/qmp.c +++ b/monitor/qmp.c @@ -390,3 +390,14 @@ void monitor_init_qmp(Chardev *chr, bool pretty) monitor_list_append(&mon->common); } } + +Monitor *qmp_return_get_monitor(QmpReturn *qret) +{ + MonitorQMP *mon; + + if (!qret->session) { + return NULL; + } + mon = container_of(qret->session, MonitorQMP, session); + return &mon->common; +} -- 2.22.0.428.g6d5b264208