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: 21+ 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-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-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-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox