On 4/22/25 11:24, Philippe Mathieu-Daudé wrote:
On 22/4/25 20:20, Pierrick Bouvier wrote:
On 4/22/25 07:54, Philippe Mathieu-Daudé wrote:
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
---
   include/qemu/target-info-impl.h   | 4 ++++
   configs/targets/aarch64-softmmu.c | 1 +
   configs/targets/arm-softmmu.c     | 1 +
   target-info-stub.c                | 1 +
   4 files changed, 7 insertions(+)

diff --git a/include/qemu/target-info-impl.h b/include/qemu/target-
info-impl.h
index 4ef54c5136a..e5cd169b49a 100644
--- a/include/qemu/target-info-impl.h
+++ b/include/qemu/target-info-impl.h
@@ -10,12 +10,16 @@
   #define QEMU_TARGET_INFO_IMPL_H
   #include "qemu/target-info.h"
+#include "qapi/qapi-types-machine.h"
   typedef struct TargetInfo {
       /* runtime equivalent of TARGET_NAME definition */
       const char *const target_name;
+    /* related to TARGET_ARCH definition */
+    SysEmuTarget target_arch;
+
       /* QOM typename machines for this binary must implement */
       const char *const machine_typename;
diff --git a/configs/targets/aarch64-softmmu.c b/configs/targets/
aarch64-softmmu.c
index 375e6fa0b7b..ff89401ea34 100644
--- a/configs/targets/aarch64-softmmu.c
+++ b/configs/targets/aarch64-softmmu.c
@@ -13,6 +13,7 @@
   static const TargetInfo target_info_aarch64_system = {
       .target_name = "aarch64",
+    .target_arch = SYS_EMU_TARGET_AARCH64,
       .machine_typename = TYPE_TARGET_AARCH64_MACHINE,
   };
diff --git a/configs/targets/arm-softmmu.c b/configs/targets/arm-
softmmu.c
index d4acdae64f3..22ec9e4faa3 100644
--- a/configs/targets/arm-softmmu.c
+++ b/configs/targets/arm-softmmu.c
@@ -13,6 +13,7 @@
   static const TargetInfo target_info_arm_system = {
       .target_name = "arm",
+    .target_arch = SYS_EMU_TARGET_ARM,
       .machine_typename = TYPE_TARGET_ARM_MACHINE,
   };
diff --git a/target-info-stub.c b/target-info-stub.c
index 218e5898e7f..e573f5c1975 100644
--- a/target-info-stub.c
+++ b/target-info-stub.c
@@ -12,6 +12,7 @@
   static const TargetInfo target_info_stub = {
       .target_name = TARGET_NAME,
+    .target_arch = -1,

I think we should have a full ifdef ladder here, to handle all
architectures. Setting -1 is not a safe default.

TargetInfo definition is internal to "qemu/target-info-impl.h",
otherwise its type is forward-declared as opaque.


Fine, but we need to be able to access to target_arch(), which returns the enum value, without having to deal with -1 situation, which is not a proper enum value.

switch (target_arch()) {
case SYS_EMU_TARGET_ARM:
case SYS_EMU_TARGET_AARCH64:
...
default:
        break;
}


       .machine_typename = TYPE_MACHINE,
   };



Reply via email to