xref: /openbmc/qemu/target-info.c (revision 3728de31925ae9658e2ce3d1ff9b63c83609f310)
1 /*
2  * QEMU target info helpers
3  *
4  *  Copyright (c) Linaro
5  *
6  * SPDX-License-Identifier: GPL-2.0-or-later
7  */
8 
9 #include "qemu/osdep.h"
10 #include "qemu/target-info.h"
11 #include "qemu/target-info-qapi.h"
12 #include "qemu/target-info-impl.h"
13 #include "qapi/error.h"
14 
15 const char *target_name(void)
16 {
17     return target_info()->target_name;
18 }
19 
20 unsigned target_long_bits(void)
21 {
22     return target_info()->long_bits;
23 }
24 
25 SysEmuTarget target_arch(void)
26 {
27     SysEmuTarget arch = target_info()->target_arch;
28 
29     if (arch == SYS_EMU_TARGET__MAX) {
30         arch = qapi_enum_parse(&SysEmuTarget_lookup, target_name(), -1,
31                                &error_abort);
32     }
33     return arch;
34 }
35 
36 const char *target_cpu_type(void)
37 {
38     return target_info()->cpu_type;
39 }
40 
41 const char *target_machine_typename(void)
42 {
43     return target_info()->machine_typename;
44 }
45 
46 EndianMode target_endian_mode(void)
47 {
48     return target_info()->endianness;
49 }
50 
51 bool target_big_endian(void)
52 {
53     return target_endian_mode() == ENDIAN_MODE_BIG;
54 }
55 
56 bool target_base_arm(void)
57 {
58     switch (target_arch()) {
59     case SYS_EMU_TARGET_ARM:
60     case SYS_EMU_TARGET_AARCH64:
61         return true;
62     default:
63         return false;
64     }
65 }
66 
67 bool target_arm(void)
68 {
69     return target_arch() == SYS_EMU_TARGET_ARM;
70 }
71 
72 bool target_aarch64(void)
73 {
74     return target_arch() == SYS_EMU_TARGET_AARCH64;
75 }
76