xref: /openbmc/qemu/target-info.c (revision e452053097371880910c744a5d42ae2df058a4a7)
13d881164SPhilippe Mathieu-Daudé /*
23d881164SPhilippe Mathieu-Daudé  * QEMU target info helpers
33d881164SPhilippe Mathieu-Daudé  *
43d881164SPhilippe Mathieu-Daudé  *  Copyright (c) Linaro
53d881164SPhilippe Mathieu-Daudé  *
63d881164SPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
73d881164SPhilippe Mathieu-Daudé  */
83d881164SPhilippe Mathieu-Daudé 
93d881164SPhilippe Mathieu-Daudé #include "qemu/osdep.h"
103d881164SPhilippe Mathieu-Daudé #include "qemu/target-info.h"
110af00042SPhilippe Mathieu-Daudé #include "qemu/target-info-qapi.h"
123d881164SPhilippe Mathieu-Daudé #include "qemu/target-info-impl.h"
130af00042SPhilippe Mathieu-Daudé #include "qapi/error.h"
143d881164SPhilippe Mathieu-Daudé 
target_name(void)153d881164SPhilippe Mathieu-Daudé const char *target_name(void)
163d881164SPhilippe Mathieu-Daudé {
173d881164SPhilippe Mathieu-Daudé     return target_info()->target_name;
183d881164SPhilippe Mathieu-Daudé }
1928502121SPhilippe Mathieu-Daudé 
target_long_bits(void)20c1be135aSPhilippe Mathieu-Daudé unsigned target_long_bits(void)
21c1be135aSPhilippe Mathieu-Daudé {
22c1be135aSPhilippe Mathieu-Daudé     return target_info()->long_bits;
23c1be135aSPhilippe Mathieu-Daudé }
24c1be135aSPhilippe Mathieu-Daudé 
target_arch(void)250af00042SPhilippe Mathieu-Daudé SysEmuTarget target_arch(void)
260af00042SPhilippe Mathieu-Daudé {
27536613beSPhilippe Mathieu-Daudé     SysEmuTarget arch = target_info()->target_arch;
28536613beSPhilippe Mathieu-Daudé 
29536613beSPhilippe Mathieu-Daudé     if (arch == SYS_EMU_TARGET__MAX) {
30536613beSPhilippe Mathieu-Daudé         arch = qapi_enum_parse(&SysEmuTarget_lookup, target_name(), -1,
310af00042SPhilippe Mathieu-Daudé                                &error_abort);
320af00042SPhilippe Mathieu-Daudé     }
33536613beSPhilippe Mathieu-Daudé     return arch;
34536613beSPhilippe Mathieu-Daudé }
350af00042SPhilippe Mathieu-Daudé 
target_cpu_type(void)36b113dfa0SPhilippe Mathieu-Daudé const char *target_cpu_type(void)
37b113dfa0SPhilippe Mathieu-Daudé {
38b113dfa0SPhilippe Mathieu-Daudé     return target_info()->cpu_type;
39b113dfa0SPhilippe Mathieu-Daudé }
40b113dfa0SPhilippe Mathieu-Daudé 
target_machine_typename(void)4128502121SPhilippe Mathieu-Daudé const char *target_machine_typename(void)
4228502121SPhilippe Mathieu-Daudé {
4328502121SPhilippe Mathieu-Daudé     return target_info()->machine_typename;
4428502121SPhilippe Mathieu-Daudé }
45a37aec2eSPhilippe Mathieu-Daudé 
target_endian_mode(void)46a37aec2eSPhilippe Mathieu-Daudé EndianMode target_endian_mode(void)
47a37aec2eSPhilippe Mathieu-Daudé {
48a37aec2eSPhilippe Mathieu-Daudé     return target_info()->endianness;
49a37aec2eSPhilippe Mathieu-Daudé }
50*749c21cfSPhilippe Mathieu-Daudé 
target_big_endian(void)51*749c21cfSPhilippe Mathieu-Daudé bool target_big_endian(void)
52*749c21cfSPhilippe Mathieu-Daudé {
53*749c21cfSPhilippe Mathieu-Daudé     return target_endian_mode() == ENDIAN_MODE_BIG;
54*749c21cfSPhilippe Mathieu-Daudé }
55