On Wed, Mar 05, 2025 at 01:52:17AM +0100, Philippe Mathieu-Daudé wrote:
> Declare QEMU_ARCH_BIT_$target as QemuArchBit enum.
> Use them to declare QEMU_ARCH_$target bitmasks.
> 
> Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
> ---
>  meson.build                |  4 +--
>  include/system/arch_init.h | 65 +++++++++++++++++++++++++-------------
>  system/arch_init.c         |  2 +-
>  3 files changed, 46 insertions(+), 25 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index 0a2c61d2bfa..1ab02a5d48d 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -3357,8 +3357,8 @@ foreach target : target_dirs
>        config_target_data.set(k, v)
>      endif
>    endforeach
> -  config_target_data.set('QEMU_ARCH',
> -                         'QEMU_ARCH_' + 
> config_target['TARGET_BASE_ARCH'].to_upper())
> +  config_target_data.set('QEMU_ARCH_BIT',
> +                         'QEMU_ARCH_BIT_' + 
> config_target['TARGET_BASE_ARCH'].to_upper())
>    config_target_h += {target: configure_file(output: target + 
> '-config-target.h',
>                                                 configuration: 
> config_target_data)}
>  
> diff --git a/include/system/arch_init.h b/include/system/arch_init.h
> index d8b77440487..06e5527ec88 100644
> --- a/include/system/arch_init.h
> +++ b/include/system/arch_init.h
> @@ -1,29 +1,50 @@
>  #ifndef QEMU_ARCH_INIT_H
>  #define QEMU_ARCH_INIT_H
>  
> +#include "qemu/bitops.h"
>  
> -enum {
> -    QEMU_ARCH_ALL = -1,
> -    QEMU_ARCH_ALPHA = (1 << 0),
> -    QEMU_ARCH_ARM = (1 << 1),
> -    QEMU_ARCH_I386 = (1 << 3),
> -    QEMU_ARCH_M68K = (1 << 4),
> -    QEMU_ARCH_MICROBLAZE = (1 << 6),
> -    QEMU_ARCH_MIPS = (1 << 7),
> -    QEMU_ARCH_PPC = (1 << 8),
> -    QEMU_ARCH_S390X = (1 << 9),
> -    QEMU_ARCH_SH4 = (1 << 10),
> -    QEMU_ARCH_SPARC = (1 << 11),
> -    QEMU_ARCH_XTENSA = (1 << 12),
> -    QEMU_ARCH_OPENRISC = (1 << 13),
> -    QEMU_ARCH_TRICORE = (1 << 16),
> -    QEMU_ARCH_HPPA = (1 << 18),
> -    QEMU_ARCH_RISCV = (1 << 19),
> -    QEMU_ARCH_RX = (1 << 20),
> -    QEMU_ARCH_AVR = (1 << 21),
> -    QEMU_ARCH_HEXAGON = (1 << 22),
> -    QEMU_ARCH_LOONGARCH = (1 << 23),
> -};
> +typedef enum QemuArchBit {
> +    QEMU_ARCH_BIT_ALPHA         = 0,
> +    QEMU_ARCH_BIT_ARM           = 1,
> +    QEMU_ARCH_BIT_I386          = 3,
> +    QEMU_ARCH_BIT_M68K          = 4,
> +    QEMU_ARCH_BIT_MICROBLAZE    = 6,
> +    QEMU_ARCH_BIT_MIPS          = 7,
> +    QEMU_ARCH_BIT_PPC           = 8,
> +    QEMU_ARCH_BIT_S390X         = 9,
> +    QEMU_ARCH_BIT_SH4           = 10,
> +    QEMU_ARCH_BIT_SPARC         = 11,
> +    QEMU_ARCH_BIT_XTENSA        = 12,
> +    QEMU_ARCH_BIT_OPENRISC      = 13,
> +    QEMU_ARCH_BIT_TRICORE       = 16,
> +    QEMU_ARCH_BIT_HPPA          = 18,
> +    QEMU_ARCH_BIT_RISCV         = 19,
> +    QEMU_ARCH_BIT_RX            = 20,
> +    QEMU_ARCH_BIT_AVR           = 21,
> +    QEMU_ARCH_BIT_HEXAGON       = 22,
> +    QEMU_ARCH_BIT_LOONGARCH     = 23,
> +} QemuArchBit;

I'm somewhat inclined to say we should be defining this as a QemuArch
enum in QAPI, especially because that gives us the string <> int
conversion that you hand-code in a latter patch.


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Reply via email to