[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH-for-9.1 12/21] system: Introduce QemuArchBit enum
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH-for-9.1 12/21] system: Introduce QemuArchBit enum |
Date: |
Fri, 15 Mar 2024 14:09:00 +0100 |
Current QEMU_ARCH_foo definitions are used as masks.
Extract the bit values, so we can easily iterate over.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/sysemu/arch_init.h | 69 ++++++++++++++++++++++++++------------
1 file changed, 47 insertions(+), 22 deletions(-)
diff --git a/include/sysemu/arch_init.h b/include/sysemu/arch_init.h
index 8850cb1a14..cf597c40a3 100644
--- a/include/sysemu/arch_init.h
+++ b/include/sysemu/arch_init.h
@@ -1,30 +1,55 @@
#ifndef QEMU_ARCH_INIT_H
#define QEMU_ARCH_INIT_H
+typedef enum QemuArchBit {
+ QEMU_ARCH_BIT_ALPHA = 0,
+ QEMU_ARCH_BIT_ARM = 1,
+ QEMU_ARCH_BIT_CRIS = 2,
+ 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_NIOS2 = 17,
+ 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,
-enum {
+ QEMU_ARCH_BIT_LAST = QEMU_ARCH_BIT_LOONGARCH
+} QemuArchBit;
+
+enum QemuArchMask {
QEMU_ARCH_ALL = -1,
- QEMU_ARCH_ALPHA = (1 << 0),
- QEMU_ARCH_ARM = (1 << 1),
- QEMU_ARCH_CRIS = (1 << 2),
- 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_NIOS2 = (1 << 17),
- 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),
+ QEMU_ARCH_ALPHA = (1 << QEMU_ARCH_BIT_ALPHA),
+ QEMU_ARCH_ARM = (1 << QEMU_ARCH_BIT_ARM),
+ QEMU_ARCH_CRIS = (1 << QEMU_ARCH_BIT_CRIS),
+ QEMU_ARCH_I386 = (1 << QEMU_ARCH_BIT_I386),
+ QEMU_ARCH_M68K = (1 << QEMU_ARCH_BIT_M68K),
+ QEMU_ARCH_MICROBLAZE = (1 << QEMU_ARCH_BIT_MICROBLAZE),
+ QEMU_ARCH_MIPS = (1 << QEMU_ARCH_BIT_MIPS),
+ QEMU_ARCH_PPC = (1 << QEMU_ARCH_BIT_PPC),
+ QEMU_ARCH_S390X = (1 << QEMU_ARCH_BIT_S390X),
+ QEMU_ARCH_SH4 = (1 << QEMU_ARCH_BIT_SH4),
+ QEMU_ARCH_SPARC = (1 << QEMU_ARCH_BIT_SPARC),
+ QEMU_ARCH_XTENSA = (1 << QEMU_ARCH_BIT_XTENSA),
+ QEMU_ARCH_OPENRISC = (1 << QEMU_ARCH_BIT_OPENRISC),
+ QEMU_ARCH_TRICORE = (1 << QEMU_ARCH_BIT_TRICORE),
+ QEMU_ARCH_NIOS2 = (1 << QEMU_ARCH_BIT_NIOS2),
+ QEMU_ARCH_HPPA = (1 << QEMU_ARCH_BIT_HPPA),
+ QEMU_ARCH_RISCV = (1 << QEMU_ARCH_BIT_RISCV),
+ QEMU_ARCH_RX = (1 << QEMU_ARCH_BIT_RX),
+ QEMU_ARCH_AVR = (1 << QEMU_ARCH_BIT_AVR),
+ QEMU_ARCH_HEXAGON = (1 << QEMU_ARCH_BIT_HEXAGON),
+ QEMU_ARCH_LOONGARCH = (1 << QEMU_ARCH_BIT_LOONGARCH),
};
extern const uint32_t arch_type;
--
2.41.0
- [PATCH-for-9.1 05/21] cpus: Open code OBJECT_DECLARE_TYPE() in OBJECT_DECLARE_CPU_TYPE(), (continued)
- [PATCH-for-9.1 05/21] cpus: Open code OBJECT_DECLARE_TYPE() in OBJECT_DECLARE_CPU_TYPE(), Philippe Mathieu-Daudé, 2024/03/15
- [PATCH-for-9.1 07/21] target/mips: Make MIPS_CPU common to new MIPS32_CPU / MIPS64_CPU types, Philippe Mathieu-Daudé, 2024/03/15
- [RFC PATCH-for-9.1 15/21] target/arm: Use QMP generic_query_cpu_definitions(), Philippe Mathieu-Daudé, 2024/03/15
- [PATCH-for-9.1 08/21] target/sparc: Make SPARC_CPU common to new SPARC32_CPU/SPARC64_CPU types, Philippe Mathieu-Daudé, 2024/03/15
- [PATCH-for-9.1 10/21] qapi: Make CpuModel* definitions target agnostic, Philippe Mathieu-Daudé, 2024/03/15
- [PATCH-for-9.1 11/21] qapi: Make CpuDefinitionInfo target agnostic, Philippe Mathieu-Daudé, 2024/03/15
- [PATCH-for-9.1 12/21] system: Introduce QemuArchBit enum,
Philippe Mathieu-Daudé <=
- [RFC PATCH-for-9.1 16/21] target/loongarch: Use QMP generic_query_cpu_definitions(), Philippe Mathieu-Daudé, 2024/03/15
- [RFC PATCH-for-9.1 17/21] target/riscv: Use QMP generic_query_cpu_definitions(), Philippe Mathieu-Daudé, 2024/03/15
- [PATCH-for-9.1 13/21] system: Introduce cpu_typename_by_arch_bit(), Philippe Mathieu-Daudé, 2024/03/15
- [RFC PATCH-for-9.1 14/21] system: Introduce QMP generic_query_cpu_definitions(), Philippe Mathieu-Daudé, 2024/03/15
- [RFC PATCH-for-9.1 18/21] target/i386: Use QMP generic_query_cpu_definitions(), Philippe Mathieu-Daudé, 2024/03/15
- [PATCH-for-9.1 19/21] target/ppc: Factor ppc_add_alias_definitions() out, Philippe Mathieu-Daudé, 2024/03/15