This will help to simplify the code in the following changes.
Signed-off-by: Marc-André Lureau <[email protected]>
---
include/monitor/hmp.h | 2 ++
monitor/hmp.c | 10 ++++++++++
stubs/meson.build | 1 +
stubs/monitor-hmp.c | 9 +++++++++
4 files changed, 22 insertions(+)
diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
index 827a56144824..6aa562ddbaa2 100644
--- a/include/monitor/hmp.h
+++ b/include/monitor/hmp.h
@@ -36,6 +36,8 @@ struct MonitorDef {
void monitor_new_hmp(const char *id, const char *chardev_id,
bool use_readline, Error **errp);
+MonitorHMP *monitor_cur_hmp(void);
+
int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap)
G_GNUC_PRINTF(2, 0);
int monitor_printf(Monitor *mon, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
diff --git a/monitor/hmp.c b/monitor/hmp.c
index 57c4127641ac..47fb7cef6de2 100644
--- a/monitor/hmp.c
+++ b/monitor/hmp.c
@@ -47,6 +47,16 @@
OBJECT_DEFINE_TYPE(MonitorHMP, monitor_hmp, MONITOR_HMP, MONITOR);
+MonitorHMP *monitor_cur_hmp(void)
+{
+ Monitor *mon = monitor_cur();
+ if (mon) {
+ return (MonitorHMP *)object_dynamic_cast(OBJECT(mon),
+ TYPE_MONITOR_HMP);
+ }
+ return NULL;
+}
+
static void monitor_hmp_finalize(Object *obj)
{
MonitorHMP *hmp = MONITOR_HMP(obj);
diff --git a/stubs/meson.build b/stubs/meson.build
index 3b2f2680b193..7e15687a62b7 100644
--- a/stubs/meson.build
+++ b/stubs/meson.build
@@ -7,6 +7,7 @@ stub_ss.add(files('fdset.c'))
stub_ss.add(files('iothread-lock.c'))
stub_ss.add(files('is-daemonized.c'))
stub_ss.add(files('monitor-core.c'))
+stub_ss.add(files('monitor-hmp.c'))
stub_ss.add(files('replay-mode.c'))
stub_ss.add(files('trace-control.c'))
diff --git a/stubs/monitor-hmp.c b/stubs/monitor-hmp.c
new file mode 100644
index 000000000000..9452a3f0c2c8
--- /dev/null
+++ b/stubs/monitor-hmp.c
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include "qemu/osdep.h"
+#include "monitor/hmp.h"
+
+MonitorHMP *monitor_cur_hmp(void)
+{
+ return NULL;
+}
--
2.55.0.543.g5ebe2ebe4ea8