Add #ifdef CONFIG_HMP guards around HMP-specific declarations in monitor headers and implementations:
Signed-off-by: Marc-André Lureau <[email protected]> --- include/monitor/hmp.h | 2 ++ include/monitor/monitor.h | 11 +++++++++++ monitor/monitor.c | 31 +++++++++++++++++++++++++++++++ monitor/qmp-cmds.c | 2 ++ stubs/monitor-core.c | 2 ++ stubs/monitor-internal.c | 2 ++ 6 files changed, 50 insertions(+) diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 9258a049bff..7bc524cd4ff 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -14,6 +14,7 @@ #ifndef HMP_H #define HMP_H +#ifdef CONFIG_HMP #include "qemu/readline.h" #include "qapi/qapi-types-common.h" #include "monitor/monitor.h" @@ -195,3 +196,4 @@ void hmp_info_cmma(Monitor *mon, const QDict *qdict); void hmp_migrationmode(Monitor *mon, const QDict *qdict); #endif +#endif diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h index 17182e626a7..3457f4a7f88 100644 --- a/include/monitor/monitor.h +++ b/include/monitor/monitor.h @@ -20,7 +20,9 @@ bool monitor_cur_is_qmp(void); void monitor_init_globals(void); void monitor_init_globals_core(void); void monitor_init_qmp(Chardev *chr, bool pretty, Error **errp); +#ifdef CONFIG_HMP void monitor_init_hmp(Chardev *chr, bool use_readline, Error **errp); +#endif int monitor_init(MonitorOptions *opts, bool allow_hmp, Error **errp); int monitor_init_opts(QemuOpts *opts, Error **errp); void monitor_cleanup(void); @@ -32,28 +34,37 @@ int monitor_get_fd(Monitor *mon, const char *fdname, Error **errp); int monitor_fd_param(Monitor *mon, const char *fdname, Error **errp); int monitor_puts(Monitor *mon, const char *str); + +#ifdef CONFIG_HMP 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); void monitor_printc(Monitor *mon, int ch); +#endif + void monitor_flush(Monitor *mon); int monitor_get_cpu_index(Monitor *mon); int monitor_puts_locked(Monitor *mon, const char *str); void monitor_flush_locked(Monitor *mon); + +#ifdef CONFIG_HMP void monitor_read_command(MonitorHMP *mon, int show_prompt); int monitor_read_password(MonitorHMP *mon, ReadLineFunc *readline_func, void *opaque); +#endif AddfdInfo *monitor_fdset_add_fd(int fd, bool has_fdset_id, int64_t fdset_id, const char *opaque, Error **errp); int monitor_fdset_dup_fd_add(int64_t fdset_id, int flags, Error **errp); void monitor_fdset_dup_fd_remove(int dup_fd); +#ifdef CONFIG_HMP void monitor_register_hmp(const char *name, bool info, void (*cmd)(Monitor *mon, const QDict *qdict)); void monitor_register_hmp_info_hrt(const char *name, HumanReadableText *(*handler)(Error **errp)); +#endif #endif /* MONITOR_H */ diff --git a/monitor/monitor.c b/monitor/monitor.c index 2dec0e299af..096a5ee748d 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -116,6 +116,7 @@ bool monitor_cur_is_qmp(void) return cur_mon && monitor_is_qmp(cur_mon); } +#ifdef CONFIG_HMP /** * Is @mon is using readline? * Note: not all HMP monitors use readline, e.g., gdbserver has a @@ -134,6 +135,12 @@ static inline bool monitor_is_hmp_non_interactive(const Monitor *mon) return !monitor_uses_readline(container_of(mon, MonitorHMP, common)); } +#else +static inline bool monitor_is_hmp_non_interactive(const Monitor *mon) +{ + return false; +} +#endif static gboolean monitor_unblocked(void *do_not_use, GIOCondition cond, void *opaque) @@ -211,6 +218,7 @@ int monitor_puts(Monitor *mon, const char *str) return monitor_puts_locked(mon, str); } +#ifdef CONFIG_HMP int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) { char *buf; @@ -267,6 +275,7 @@ void monitor_printc(Monitor *mon, int c) } monitor_printf(mon, "'"); } +#endif static MonitorQAPIEventConf monitor_qapi_event_conf[QAPI_EVENT__MAX] = { /* Limit guest-triggerable events to 1 per second */ @@ -541,6 +550,7 @@ static void monitor_accept_input(void *opaque) Monitor *mon = opaque; qemu_mutex_lock(&mon->mon_lock); +#ifdef CONFIG_HMP if (!monitor_is_qmp(mon)) { MonitorHMP *hmp_mon = container_of(mon, MonitorHMP, common); assert(hmp_mon->rs); @@ -555,6 +565,9 @@ static void monitor_accept_input(void *opaque) } else { qemu_mutex_unlock(&mon->mon_lock); } +#else + qemu_mutex_unlock(&mon->mon_lock); +#endif qemu_chr_fe_accept_input(&mon->chr); } @@ -631,9 +644,11 @@ void monitor_data_destroy(Monitor *mon) if (monitor_is_qmp(mon)) { monitor_data_destroy_qmp(container_of(mon, MonitorQMP, common)); } else { +#ifdef CONFIG_HMP MonitorHMP *hmp_mon = container_of(mon, MonitorHMP, common); readline_free(hmp_mon->rs); g_free(hmp_mon->mon_cpu_path); +#endif } g_string_free(mon->outbuf, true); qemu_mutex_destroy(&mon->mon_lock); @@ -733,13 +748,18 @@ int monitor_init(MonitorOptions *opts, bool allow_hmp, Error **errp) } if (!opts->has_mode) { +#ifdef CONFIG_HMP opts->mode = allow_hmp ? MONITOR_MODE_READLINE : MONITOR_MODE_CONTROL; +#else + opts->mode = MONITOR_MODE_CONTROL; +#endif } switch (opts->mode) { case MONITOR_MODE_CONTROL: monitor_init_qmp(chr, opts->pretty, errp); break; +#ifdef CONFIG_HMP case MONITOR_MODE_READLINE: if (!allow_hmp) { error_setg(errp, "Only QMP is supported"); @@ -751,6 +771,7 @@ int monitor_init(MonitorOptions *opts, bool allow_hmp, Error **errp) } monitor_init_hmp(chr, true, errp); break; +#endif default: g_assert_not_reached(); } @@ -764,6 +785,16 @@ int monitor_init_opts(QemuOpts *opts, Error **errp) MonitorOptions *options; int ret; +#ifndef CONFIG_HMP + const char *mode = qemu_opt_get(opts, "mode"); + /* readline is HMP.. */ + if (mode && g_str_equal(mode, "readline")) { + error_setg(errp, "HMP monitor is not available," + " use '-qmp' instead of '-monitor'"); + return -1; + } +#endif + v = opts_visitor_new(opts); visit_type_MonitorOptions(v, NULL, &options, errp); visit_free(v); diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c index 0c409c27dc3..cca25c18a15 100644 --- a/monitor/qmp-cmds.c +++ b/monitor/qmp-cmds.c @@ -162,6 +162,7 @@ void qmp_add_client(const char *protocol, const char *fdname, } } +#ifdef CONFIG_HMP char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index, int64_t cpu_index, Error **errp) { @@ -189,6 +190,7 @@ out: monitor_data_destroy(&hmp.common); return output; } +#endif static void __attribute__((__constructor__)) monitor_init_qmp_commands(void) { diff --git a/stubs/monitor-core.c b/stubs/monitor-core.c index 078a5012e9b..b4a4de41aa2 100644 --- a/stubs/monitor-core.c +++ b/stubs/monitor-core.c @@ -21,6 +21,7 @@ void qapi_event_emit(QAPIEvent event, QDict *qdict) { } +#ifdef CONFIG_HMP int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) { /* @@ -37,3 +38,4 @@ int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) } return -1; } +#endif diff --git a/stubs/monitor-internal.c b/stubs/monitor-internal.c index 4fece49d531..29274bd2b4a 100644 --- a/stubs/monitor-internal.c +++ b/stubs/monitor-internal.c @@ -8,6 +8,8 @@ int monitor_get_fd(Monitor *mon, const char *name, Error **errp) return -1; } +#ifdef CONFIG_HMP void monitor_init_hmp(Chardev *chr, bool use_readline, Error **errp) { } +#endif -- 2.54.0
