aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <philmd@linaro.org>2025-07-08 23:53:15 +0200
committerMichael S. Tsirkin <mst@redhat.com>2025-07-15 02:56:39 -0400
commita37aec2e7d8f7191d29c700629850da5057e446b (patch)
treec1d7346327aaa49724ff217660290a735a6452c8
parent536613be40c7005a956a52487c1fed4530d6613f (diff)
downloadqemu-a37aec2e7d8f7191d29c700629850da5057e446b.zip
qemu-a37aec2e7d8f7191d29c700629850da5057e446b.tar.gz
qemu-a37aec2e7d8f7191d29c700629850da5057e446b.tar.bz2
qemu/target-info: Add target_endian_mode()
target_endian_mode() returns the default endianness (QAPI type) of a target. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20250708215320.70426-5-philmd@linaro.org> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--include/qemu/target-info-impl.h2
-rw-r--r--include/qemu/target-info-qapi.h8
-rw-r--r--target-info-stub.c1
-rw-r--r--target-info.c5
4 files changed, 16 insertions, 0 deletions
diff --git a/include/qemu/target-info-impl.h b/include/qemu/target-info-impl.h
index a8b34d1..17887f6 100644
--- a/include/qemu/target-info-impl.h
+++ b/include/qemu/target-info-impl.h
@@ -22,6 +22,8 @@ typedef struct TargetInfo {
const char *cpu_type;
/* QOM typename machines for this binary must implement */
const char *machine_typename;
+ /* related to TARGET_BIG_ENDIAN definition */
+ EndianMode endianness;
} TargetInfo;
/**
diff --git a/include/qemu/target-info-qapi.h b/include/qemu/target-info-qapi.h
index a337c86..d5ce052 100644
--- a/include/qemu/target-info-qapi.h
+++ b/include/qemu/target-info-qapi.h
@@ -9,6 +9,7 @@
#ifndef QEMU_TARGET_INFO_EXTRA_H
#define QEMU_TARGET_INFO_EXTRA_H
+#include "qapi/qapi-types-common.h"
#include "qapi/qapi-types-machine.h"
/**
@@ -18,4 +19,11 @@
*/
SysEmuTarget target_arch(void);
+/**
+ * target_endian_mode:
+ *
+ * Returns: QAPI EndianMode enum (e.g. ENDIAN_MODE_LITTLE).
+ */
+EndianMode target_endian_mode(void);
+
#endif
diff --git a/target-info-stub.c b/target-info-stub.c
index 2e4407f..ca0caa3 100644
--- a/target-info-stub.c
+++ b/target-info-stub.c
@@ -18,6 +18,7 @@ static const TargetInfo target_info_stub = {
.long_bits = TARGET_LONG_BITS,
.cpu_type = CPU_RESOLVING_TYPE,
.machine_typename = TYPE_MACHINE,
+ .endianness = TARGET_BIG_ENDIAN ? ENDIAN_MODE_BIG : ENDIAN_MODE_LITTLE,
};
const TargetInfo *target_info(void)
diff --git a/target-info.c b/target-info.c
index 8e29553..a756c07 100644
--- a/target-info.c
+++ b/target-info.c
@@ -42,3 +42,8 @@ const char *target_machine_typename(void)
{
return target_info()->machine_typename;
}
+
+EndianMode target_endian_mode(void)
+{
+ return target_info()->endianness;
+}