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.lureau@redhat.com>
---
include/monitor/monitor.h | 3 +++
monitor.c | 6 ++++++
2 files changed, 9 insertions(+)
diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h
index c1b40a9cac..5f25cd2616 100644
--- a/include/monitor/monitor.h
+++ b/include/monitor/monitor.h
@@ -5,6 +5,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;
@@ -51,4 +52,6 @@ int monitor_fdset_dup_fd_find(int dup_fd);
void monitor_vfprintf(FILE *stream,
const char *fmt, va_list ap) GCC_FMT_ATTR(2, 0);
+Monitor *qmp_return_get_monitor(QmpReturn *qret);
+
#endif /* MONITOR_H */
diff --git a/monitor.c b/monitor.c
index b1c4647a37..76bc2f8c7c 100644
--- a/monitor.c
+++ b/monitor.c
@@ -324,6 +324,12 @@ bool monitor_cur_is_qmp(void)
return cur_mon && monitor_is_qmp(cur_mon);
}
+Monitor *qmp_return_get_monitor(QmpReturn *qret)
+{
+ return qret->session ?
+ container_of(qret->session, Monitor, qmp.session) : NULL;
+}
+
void monitor_read_command(Monitor *mon, int show_prompt)
{
if (!mon->rs)
--
2.21.0.196.g041f5ea1cf