aboutsummaryrefslogtreecommitdiff
path: root/target-info.c
diff options
context:
space:
mode:
Diffstat (limited to 'target-info.c')
-rw-r--r--target-info.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/target-info.c b/target-info.c
new file mode 100644
index 0000000..3110ab3
--- /dev/null
+++ b/target-info.c
@@ -0,0 +1,54 @@
+/*
+ * QEMU target info helpers
+ *
+ * Copyright (c) Linaro
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "qemu/osdep.h"
+#include "qemu/target-info.h"
+#include "qemu/target-info-qapi.h"
+#include "qemu/target-info-impl.h"
+#include "qapi/error.h"
+
+const char *target_name(void)
+{
+ return target_info()->target_name;
+}
+
+unsigned target_long_bits(void)
+{
+ return target_info()->long_bits;
+}
+
+SysEmuTarget target_arch(void)
+{
+ SysEmuTarget arch = target_info()->target_arch;
+
+ if (arch == SYS_EMU_TARGET__MAX) {
+ arch = qapi_enum_parse(&SysEmuTarget_lookup, target_name(), -1,
+ &error_abort);
+ }
+ return arch;
+}
+
+const char *target_cpu_type(void)
+{
+ return target_info()->cpu_type;
+}
+
+const char *target_machine_typename(void)
+{
+ return target_info()->machine_typename;
+}
+
+EndianMode target_endian_mode(void)
+{
+ return target_info()->endianness;
+}
+
+bool target_big_endian(void)
+{
+ return target_endian_mode() == ENDIAN_MODE_BIG;
+}