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é 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é 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é 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é 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é 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é 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é 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