From: Markus Armbruster <armbru@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org,
Daniel Henrique Barboza <dbarboza@ventanamicro.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
Pierrick Bouvier <pierrick.bouvier@linaro.org>,
Artyom Tarasenko <atar4qemu@gmail.com>,
"Dr. David Alan Gilbert" <dave@treblig.org>,
Richard Henderson <richard.henderson@linaro.org>,
Zhao Liu <zhao1.liu@intel.com>
Subject: Re: [PATCH-for-11.1 v6 3/6] monitor: Have MonitorDef::get_value() always return int64_t type
Date: Tue, 24 Mar 2026 13:56:50 +0100 [thread overview]
Message-ID: <87pl4ts7vx.fsf@pond.sub.org> (raw)
In-Reply-To: <20260320091019.59902-4-philmd@linaro.org> ("Philippe Mathieu-Daudé"'s message of "Fri, 20 Mar 2026 10:10:15 +0100")
Philippe Mathieu-Daudé <philmd@linaro.org> writes:
> Simplify MonitorDef::get_value() handler by having it always
> return a int64_t type. Truncate to 32-bit in the single caller.
>
> Note, this handler is only implemented once for the x86 targets.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> include/monitor/hmp-target.h | 6 +-----
> monitor/hmp-target.c | 5 ++++-
> target/i386/monitor.c | 4 ++--
> 3 files changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/include/monitor/hmp-target.h b/include/monitor/hmp-target.h
> index 56322ceddd4..6364c94edf8 100644
> --- a/include/monitor/hmp-target.h
> +++ b/include/monitor/hmp-target.h
> @@ -27,15 +27,11 @@
>
> typedef struct MonitorDef MonitorDef;
>
> -#ifdef COMPILING_PER_TARGET
> -#include "cpu.h"
> struct MonitorDef {
> const char *name;
> int offset;
> - target_long (*get_value)(Monitor *mon, const struct MonitorDef *md,
> - int val);
> + int64_t (*get_value)(Monitor *mon, const struct MonitorDef *md, int offset);
> };
> -#endif
>
> const MonitorDef *target_monitor_defs(void);
> int target_get_monitor_def(CPUState *cs, const char *name, uint64_t *pval);
> diff --git a/monitor/hmp-target.c b/monitor/hmp-target.c
> index 3f019ae2a28..155caedd784 100644
> --- a/monitor/hmp-target.c
> +++ b/monitor/hmp-target.c
> @@ -23,6 +23,7 @@
> */
>
> #include "qemu/osdep.h"
> +#include "qemu/target-info.h"
> #include "monitor-internal.h"
> #include "monitor/qdev.h"
> #include "net/slirp.h"
> @@ -33,6 +34,7 @@
> #include "qapi/qapi-commands-control.h"
> #include "qapi/qapi-commands-misc.h"
> #include "qapi/qapi-commands-machine.h"
> +#include "exec/target_long.h"
>
> #if defined(TARGET_S390X)
> #include "hw/s390x/storage-keys.h"
> @@ -78,7 +80,8 @@ int get_monitor_def(Monitor *mon, int64_t *pval, const char *name)
> for(; md->name != NULL; md++) {
> if (hmp_compare_cmd(name, md->name)) {
> if (md->get_value) {
> - *pval = md->get_value(mon, md, md->offset);
> + int64_t val = md->get_value(mon, md, md->offset);
> + *pval = target_long_bits() == 32 ? (int32_t)val : val;
This assumes target_long_bits() returns either 32 or 64, doesn't it?
Is this true today?
Will it remain true?
Could we use something like
val & ((1 << target_long_bits()) - 1)
to truncate to target_long_bits() bits?
> } else {
> CPUArchState *env = mon_get_cpu_env(mon);
> ptr = (uint8_t *)env + md->offset;
> diff --git a/target/i386/monitor.c b/target/i386/monitor.c
> index 977f65fe16c..b128334e571 100644
> --- a/target/i386/monitor.c
> +++ b/target/i386/monitor.c
> @@ -593,8 +593,8 @@ void hmp_mce(Monitor *mon, const QDict *qdict)
> }
> }
>
> -static target_long monitor_get_pc(Monitor *mon, const struct MonitorDef *md,
> - int val)
> +static int64_t monitor_get_pc(Monitor *mon, const struct MonitorDef *md,
> + int offset)
> {
> CPUArchState *env = mon_get_cpu_env(mon);
> return env->eip + env->segs[R_CS].base;
next prev parent reply other threads:[~2026-03-24 12:57 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-20 9:10 [PATCH-for-11.1 v6 0/6] monitor/hmp: Reduce target-specific definitions Philippe Mathieu-Daudé
2026-03-20 9:10 ` [PATCH-for-11.1 v6 1/6] target/sparc/monitor: Dump all registers as 32-bit Philippe Mathieu-Daudé
2026-03-20 21:44 ` Pierrick Bouvier
2026-03-24 12:49 ` Markus Armbruster
2026-04-27 7:55 ` Philippe Mathieu-Daudé
2026-03-20 9:10 ` [PATCH-for-11.1 v6 2/6] monitor: Remove MonitorDef::type field and MD_TLONG / MD_I32 Philippe Mathieu-Daudé
2026-03-20 21:44 ` Pierrick Bouvier
2026-03-29 21:30 ` Richard Henderson
2026-04-27 8:01 ` Philippe Mathieu-Daudé
2026-03-20 9:10 ` [PATCH-for-11.1 v6 3/6] monitor: Have MonitorDef::get_value() always return int64_t type Philippe Mathieu-Daudé
2026-03-20 21:45 ` Pierrick Bouvier
2026-03-24 12:56 ` Markus Armbruster [this message]
2026-03-24 13:24 ` Peter Maydell
2026-03-24 14:42 ` Markus Armbruster
2026-03-24 18:34 ` Pierrick Bouvier
2026-03-25 5:51 ` Markus Armbruster
2026-03-25 17:37 ` Pierrick Bouvier
2026-03-20 9:10 ` [PATCH-for-11.1 v6 4/6] monitor: Remove last target_long use in get_monitor_def() Philippe Mathieu-Daudé
2026-03-20 21:45 ` Pierrick Bouvier
2026-03-20 21:51 ` Pierrick Bouvier
2026-03-29 21:48 ` Richard Henderson
2026-03-20 9:10 ` [PATCH-for-11.1 v6 5/6] monitor: Reduce target-specific methods further Philippe Mathieu-Daudé
2026-03-20 21:52 ` Pierrick Bouvier
2026-03-20 9:10 ` [PATCH-for-11.1 v6 6/6] monitor: Remove 'monitor/hmp-target.h' header Philippe Mathieu-Daudé
2026-03-20 21:52 ` Pierrick Bouvier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87pl4ts7vx.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=atar4qemu@gmail.com \
--cc=dave@treblig.org \
--cc=dbarboza@ventanamicro.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=zhao1.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.