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