monitor: move monitor_hmp_print*() functions to hmp.c
Those functions are only used when CONFIG_HMP, compile them out, and add conditions for the calling code. Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <20260828-qemu-no-hmp-v5-47-9227de146347@redhat.com>
Marc-André Lureau committed
Aug 28, 2026 at 16:04 UTC
ab0d33832f3bd5a43bb5e2a0d69edbef4dfcf806
4 files changed
+57
-50
monitor/hmp.c
+49
@@ -1754,3 +1754,52 @@ static int get_monitor_def(MonitorHMP *hmp, int64_t *pval, const char *name)
1754
}
1755
return cs->cc->sysemu_ops->monitor_get_register(cs, name, pval);
1756
}
1757
+
1758
+int monitor_hmp_vprintf(MonitorHMP *hmp, const char *fmt, va_list ap)
1759
+{
1760
+ g_autofree char *buf = g_strdup_vprintf(fmt, ap);
1761
+
1762
+ if (!hmp) {
1763
+ return -1;
1764
+ }
1765
+
1766
+ return monitor_puts(MONITOR(hmp), buf);
1767
+}
1768
+
1769
+int monitor_hmp_printf(MonitorHMP *hmp, const char *fmt, ...)
1770
+{
1771
+ int ret;
1772
+
1773
+ va_list ap;
1774
+ va_start(ap, fmt);
1775
+ ret = monitor_hmp_vprintf(hmp, fmt, ap);
1776
+ va_end(ap);
1777
+ return ret;
1778
+}
1779
+
1780
+void monitor_hmp_printc(MonitorHMP *hmp, int c)
1781
+{
1782
+ monitor_hmp_printf(hmp, "'");
1783
+ switch (c) {
1784
+ case '\'':
1785
+ monitor_hmp_printf(hmp, "\\'");
1786
+ break;
1787
+ case '\\':
1788
+ monitor_hmp_printf(hmp, "\\\\");
1789
+ break;
1790
+ case '\n':
1791
+ monitor_hmp_printf(hmp, "\\n");
1792
+ break;
1793
+ case '\r':
1794
+ monitor_hmp_printf(hmp, "\\r");
1795
+ break;
1796
+ default:
1797
+ if (c >= 32 && c <= 126) {
1798
+ monitor_hmp_printf(hmp, "%c", c);
1799
+ } else {
1800
+ monitor_hmp_printf(hmp, "\\x%02x", c);
1801
+ }
1802
+ break;
1803
+ }
1804
+ monitor_hmp_printf(hmp, "'");
1805
+}
monitor/monitor.c
-49
@@ -272,55 +272,6 @@ int monitor_puts(Monitor *mon, const char *str)
272
return monitor_puts_locked(mon, str);
273
}
274
275
-int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap)
276
-{
277
- g_autofree char *buf = g_strdup_vprintf(fmt, ap);
278
-
279
- if (!mon) {
280
- return -1;
281
- }
282
-
283
- return monitor_puts(MONITOR(mon), buf);
284
-}
285
-
286
-int monitor_hmp_printf(MonitorHMP *mon, const char *fmt, ...)
287
-{
288
- int ret;
289
-
290
- va_list ap;
291
- va_start(ap, fmt);
292
- ret = monitor_hmp_vprintf(mon, fmt, ap);
293
- va_end(ap);
294
- return ret;
295
-}
296
-
297
-void monitor_hmp_printc(MonitorHMP *mon, int c)
298
-{
299
- monitor_hmp_printf(mon, "'");
300
- switch(c) {
301
- case '\'':
302
- monitor_hmp_printf(mon, "\\'");
303
- break;
304
- case '\\':
305
- monitor_hmp_printf(mon, "\\\\");
306
- break;
307
- case '\n':
308
- monitor_hmp_printf(mon, "\\n");
309
- break;
310
- case '\r':
311
- monitor_hmp_printf(mon, "\\r");
312
- break;
313
- default:
314
- if (c >= 32 && c <= 126) {
315
- monitor_hmp_printf(mon, "%c", c);
316
- } else {
317
- monitor_hmp_printf(mon, "\\x%02x", c);
318
- }
319
- break;
320
- }
321
- monitor_hmp_printf(mon, "'");
322
-}
323
-
275
static MonitorQAPIEventConf monitor_qapi_event_conf[QAPI_EVENT__MAX] = {
276
/* Limit guest-triggerable events to 1 per second */
277
[QAPI_EVENT_RTC_CHANGE] = { 1000 * SCALE_MS },
util/error-report.c
+2
-1
@@ -35,10 +35,11 @@ const char *error_guest_name;
35
static int G_GNUC_PRINTF(2, 0)
36
error_vprintf_hmp(MonitorHMP *hmp, const char *fmt, va_list ap)
37
{
38
+#ifdef CONFIG_HMP
39
if (hmp) {
40
return monitor_hmp_vprintf(hmp, fmt, ap);
41
}
41
-
42
+#endif
43
return vfprintf(stderr, fmt, ap);
44
}
45
util/qemu-print.c
+6
@@ -27,6 +27,7 @@ int qemu_vprintf(const char *fmt, va_list ap)
27
28
/* for all monitors: QMP & HMP */
29
if (cur_mon) {
30
+#ifdef CONFIG_HMP
31
/* don't use monitor_cur_hmp(), to avoid a second lookup */
32
MonitorHMP *hmp = (MonitorHMP *)
33
object_dynamic_cast(OBJECT(cur_mon), TYPE_MONITOR_HMP);
@@ -34,6 +35,9 @@ int qemu_vprintf(const char *fmt, va_list ap)
35
return -1;
36
}
37
return monitor_hmp_vprintf(hmp, fmt, ap);
38
+#else
39
+ return -1;
40
+#endif
41
}
42
return vprintf(fmt, ap);
43
}
@@ -63,6 +67,7 @@ int qemu_printf(const char *fmt, ...)
67
*/
68
int qemu_vfprintf(FILE *stream, const char *fmt, va_list ap)
69
{
70
+#ifdef CONFIG_HMP
71
if (!stream) {
72
MonitorHMP *hmp = monitor_cur_hmp();
73
if (!hmp) {
@@ -70,6 +75,7 @@ int qemu_vfprintf(FILE *stream, const char *fmt, va_list ap)
75
}
76
return monitor_hmp_vprintf(hmp, fmt, ap);
77
}
78
+#endif
79
return vfprintf(stream, fmt, ap);
80
}
81