get_monitor_def() doesn't use any target-specific declaration anymore, move it to hmp.c to compile it once.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> Reviewed-by: Dr. David Alan Gilbert <[email protected]> Reviewed-by: Richard Henderson <[email protected]> Reviewed-by: Pierrick Bouvier <[email protected]> Message-Id: <[email protected]> --- monitor/monitor-internal.h | 1 - monitor/hmp-target.c | 33 --------------------------------- monitor/hmp.c | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h index eaf9a607783..a5c4aba306e 100644 --- a/monitor/monitor-internal.h +++ b/monitor/monitor-internal.h @@ -191,7 +191,6 @@ void monitor_data_destroy_qmp(MonitorQMP *mon); void coroutine_fn monitor_qmp_dispatcher_co(void *data); void qmp_dispatcher_co_wake(void); -int get_monitor_def(Monitor *mon, int64_t *pval, const char *name); void handle_hmp_command(MonitorHMP *mon, const char *cmdline); int hmp_compare_cmd(const char *name, const char *list); diff --git a/monitor/hmp-target.c b/monitor/hmp-target.c index c2ddcd67e51..550a7178052 100644 --- a/monitor/hmp-target.c +++ b/monitor/hmp-target.c @@ -57,39 +57,6 @@ HMPCommand *hmp_cmds_for_target(bool info_command) return info_command ? hmp_info_cmds : hmp_cmds; } -/* - * Set @pval to the value in the register identified by @name. - * return 0 if OK, -1 if not found - */ -int get_monitor_def(Monitor *mon, int64_t *pval, const char *name) -{ - const MonitorDef *md = target_monitor_defs(); - CPUState *cs = mon_get_cpu(mon); - void *ptr; - - if (cs == NULL || md == NULL) { - return -1; - } - - for(; md->name != NULL; md++) { - if (hmp_compare_cmd(name, md->name)) { - if (md->get_value) { - *pval = md->get_value(mon, md, md->offset); - } else { - CPUArchState *env = mon_get_cpu_env(mon); - ptr = (uint8_t *)env + md->offset; - *pval = *(int32_t *)ptr; - } - return 0; - } - } - - if (!cs->cc->sysemu_ops->monitor_get_register) { - return -1; - } - return cs->cc->sysemu_ops->monitor_get_register(cs, name, pval); -} - static int compare_mon_cmd(const void *a, const void *b) { diff --git a/monitor/hmp.c b/monitor/hmp.c index e881c26c305..fe2f5560013 100644 --- a/monitor/hmp.c +++ b/monitor/hmp.c @@ -25,6 +25,7 @@ #include "qemu/osdep.h" #include <dirent.h> #include "hw/core/qdev.h" +#include "hw/core/sysemu-cpu-ops.h" #include "monitor-internal.h" #include "monitor/hmp.h" #include "monitor/hmp-target.h" @@ -359,6 +360,8 @@ static bool gdb_get_register(Monitor *mon, int64_t *pval, const char *name) static const char *pch; static sigjmp_buf expr_env; +static int get_monitor_def(Monitor *mon, int64_t *pval, const char *name); + static G_NORETURN G_GNUC_PRINTF(2, 3) void expr_error(Monitor *mon, const char *fmt, ...) { @@ -1599,3 +1602,36 @@ void monitor_register_hmp_info_hrt(const char *name, } g_assert_not_reached(); } + +/* + * Set @pval to the value in the register identified by @name. + * return 0 if OK, -1 if not found + */ +static int get_monitor_def(Monitor *mon, int64_t *pval, const char *name) +{ + const MonitorDef *md = target_monitor_defs(); + CPUState *cs = mon_get_cpu(mon); + void *ptr; + + if (cs == NULL || md == NULL) { + return -1; + } + + for (; md->name != NULL; md++) { + if (hmp_compare_cmd(name, md->name)) { + if (md->get_value) { + *pval = md->get_value(mon, md, md->offset); + } else { + CPUArchState *env = mon_get_cpu_env(mon); + ptr = (uint8_t *)env + md->offset; + *pval = *(int32_t *)ptr; + } + return 0; + } + } + + if (!cs->cc->sysemu_ops->monitor_get_register) { + return -1; + } + return cs->cc->sysemu_ops->monitor_get_register(cs, name, pval); +} -- 2.53.0
