All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] system: Convert qemu_arch_available() to TargetInfo API
@ 2026-01-07 18:10 Philippe Mathieu-Daudé
  2026-01-08  0:36 ` Pierrick Bouvier
  0 siblings, 1 reply; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-01-07 18:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Marc-André Lureau,
	Paolo Bonzini, Pierrick Bouvier, Daniel P. Berrangé,
	Manos Pitsidianakis

Get the base arch_mask from the current SysEmuTarget,
making qemu_arch_available() target-agnostic.

We don't need the per-target QEMU_ARCH definition anymore,
remove it.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 meson.build        |  2 --
 system/arch_init.c | 30 ------------------------------
 target-info.c      | 41 +++++++++++++++++++++++++++++++++++++++++
 system/meson.build |  1 -
 4 files changed, 41 insertions(+), 33 deletions(-)
 delete mode 100644 system/arch_init.c

diff --git a/meson.build b/meson.build
index 734c801cc77..435dc6e3c8e 100644
--- a/meson.build
+++ b/meson.build
@@ -3419,8 +3419,6 @@ 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_h += {target: configure_file(output: target + '-config-target.h',
                                                configuration: config_target_data)}
 
diff --git a/system/arch_init.c b/system/arch_init.c
deleted file mode 100644
index e85736884c9..00000000000
--- a/system/arch_init.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * QEMU System Emulator
- *
- * Copyright (c) 2003-2008 Fabrice Bellard
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-#include "qemu/osdep.h"
-#include "system/arch_init.h"
-
-bool qemu_arch_available(unsigned qemu_arch_mask)
-{
-    return qemu_arch_mask & QEMU_ARCH;
-}
diff --git a/target-info.c b/target-info.c
index 24696ff4111..4d38767d214 100644
--- a/target-info.c
+++ b/target-info.c
@@ -11,6 +11,7 @@
 #include "qemu/target-info-qapi.h"
 #include "qemu/target-info-impl.h"
 #include "qapi/error.h"
+#include "system/arch_init.h"
 
 const char *target_name(void)
 {
@@ -33,6 +34,46 @@ SysEmuTarget target_arch(void)
     return arch;
 }
 
+bool qemu_arch_available(unsigned qemu_arch_mask)
+{
+    static const unsigned base_arch_mask[SYS_EMU_TARGET__MAX] = {
+        [SYS_EMU_TARGET_AARCH64]        = QEMU_ARCH_ARM,
+        [SYS_EMU_TARGET_ALPHA]          = QEMU_ARCH_ALPHA,
+        [SYS_EMU_TARGET_ARM]            = QEMU_ARCH_ARM,
+        [SYS_EMU_TARGET_AVR]            = QEMU_ARCH_AVR,
+        /*
+        [SYS_EMU_TARGET_HEXAGON]        = QEMU_ARCH_HEXAGON,
+        */
+        [SYS_EMU_TARGET_HPPA]           = QEMU_ARCH_HPPA,
+        [SYS_EMU_TARGET_I386]           = QEMU_ARCH_I386,
+        [SYS_EMU_TARGET_LOONGARCH64]    = QEMU_ARCH_LOONGARCH,
+        [SYS_EMU_TARGET_M68K]           = QEMU_ARCH_M68K,
+        [SYS_EMU_TARGET_MICROBLAZE]     = QEMU_ARCH_MICROBLAZE,
+        [SYS_EMU_TARGET_MICROBLAZEEL]   = QEMU_ARCH_MICROBLAZE,
+        [SYS_EMU_TARGET_MIPS]           = QEMU_ARCH_MIPS,
+        [SYS_EMU_TARGET_MIPS64]         = QEMU_ARCH_MIPS,
+        [SYS_EMU_TARGET_MIPS64EL]       = QEMU_ARCH_MIPS,
+        [SYS_EMU_TARGET_MIPSEL]         = QEMU_ARCH_MIPS,
+        [SYS_EMU_TARGET_OR1K]           = QEMU_ARCH_OPENRISC,
+        [SYS_EMU_TARGET_PPC]            = QEMU_ARCH_PPC,
+        [SYS_EMU_TARGET_PPC64]          = QEMU_ARCH_PPC,
+        [SYS_EMU_TARGET_RISCV32]        = QEMU_ARCH_RISCV,
+        [SYS_EMU_TARGET_RISCV64]        = QEMU_ARCH_RISCV,
+        [SYS_EMU_TARGET_RX]             = QEMU_ARCH_RX,
+        [SYS_EMU_TARGET_S390X]          = QEMU_ARCH_S390X,
+        [SYS_EMU_TARGET_SH4]            = QEMU_ARCH_SH4,
+        [SYS_EMU_TARGET_SH4EB]          = QEMU_ARCH_SH4,
+        [SYS_EMU_TARGET_SPARC]          = QEMU_ARCH_SPARC,
+        [SYS_EMU_TARGET_SPARC64]        = QEMU_ARCH_SPARC,
+        [SYS_EMU_TARGET_TRICORE]        = QEMU_ARCH_TRICORE,
+        [SYS_EMU_TARGET_X86_64]         = QEMU_ARCH_I386,
+        [SYS_EMU_TARGET_XTENSA]         = QEMU_ARCH_XTENSA,
+        [SYS_EMU_TARGET_XTENSAEB]       = QEMU_ARCH_XTENSA,
+    };
+
+    return qemu_arch_mask & base_arch_mask[target_arch()];
+}
+
 const char *target_cpu_type(void)
 {
     return target_info()->cpu_type;
diff --git a/system/meson.build b/system/meson.build
index 4b69ef0f5fb..66e16db55ce 100644
--- a/system/meson.build
+++ b/system/meson.build
@@ -1,5 +1,4 @@
 specific_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_true: [files(
-  'arch_init.c',
   'globals-target.c',
 )])
 
-- 
2.52.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-01-09  6:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-07 18:10 [PATCH] system: Convert qemu_arch_available() to TargetInfo API Philippe Mathieu-Daudé
2026-01-08  0:36 ` Pierrick Bouvier
2026-01-08 16:32   ` Philippe Mathieu-Daudé
2026-01-08 18:53     ` Pierrick Bouvier
2026-01-09  6:09       ` Markus Armbruster

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.