On 10/26/2026 10:15 PM, Yonggang Luo wrote:
> QEMU_ARCH_* was defined as (1UL << target).  unsigned long is 32 bits
> on Windows and 64 bits on LP64 hosts, so the mask width depended on
> the host data model.  Define the bits with 1ULL and store every
> arch_bitmask as uint64_t.
> SYS_EMU_TARGET__MAX is already 29.  With a 32-bit mask, __MAX has to
> stay at most 31, so there is almost no room for new targets.  A
> uint64_t mask raises that ceiling to 63.  It stays 63, rather than
> 64, so the all-targets mask still fits in the int64_t range used by
> qemu_opt_set_number().
> 
> Yonggang Luo (3):
>   qemu/base-arch-defs: extract QEMU_ARCH_BIT for QEMU_ARCH_* enums
>   qemu: Use SYS_EMU_TARGET__MAX to define QEMU_ARCH_ALL
>   qemu: increase width of QEMU_ARCH_* masks enums to be 64 bits
> 
>  include/qemu/base-arch-defs.h  | 67 ++++++++++++++++++----------------
>  monitor/monitor-hmp-internal.h |  2 +-
>  system/arch_init.c             |  4 +-
>  system/qdev-monitor.c          |  2 +-
>  system/vl.c                    |  2 +-
>  5 files changed, 40 insertions(+), 37 deletions(-)
> 

Reviewed-by: Pierrick Bouvier <[email protected]>


Reply via email to