7#define VENDOR_ARM_ARM 65
8#define VENDOR_ARM_BROADCOM 66
9#define VENDOR_ARM_CAVIUM 67
10#define VENDOR_ARM_FUJITSU 70
11#define VENDOR_ARM_HISILICON 72
12#define VENDOR_ARM_APM 80
13#define VENDOR_ARM_QUALCOMM 81
14#define NAMEID_ARM_1176 0xb76
15#define NAMEID_ARM_CORTEX_A7 0xc07
16#define NAMEID_ARM_CORTEX_A8 0xc08
17#define NAMEID_ARM_CORTEX_A9 0xc09
18#define NAMEID_ARM_CORTEX_A15 0xc0f
19#define NAMEID_ARM_CORTEX_A53 0xd03
20#define NAMEID_ARM_CORTEX_A57 0xd07
21#define NAMEID_ARM_CORTEX_A76 0xd0b
22#define NAMEID_ARM_NEOVERSE_N1 0xd0c
23#define NAMEID_ARM_NEOVERSE_N2 0xd49
24#define NAMEID_ARM_NEOVERSE_V1 0xd40
25#define NAMEID_ARM_NEOVERSE_V2 0xd4f
26#define NAMEID_BROADCOM_THUNDERX2 0x516
27#define NAMEID_CAVIUM_THUNDERX2 0x0af
28#define NAMEID_FUJITSU_A64FX 0x001
29#define NAMEID_HISILICON_KUNPENG 0xd01
30#define NAMEID_APM_XGENE 0x000
31#define NAMEID_QUALCOMM_KRAIT 0x040
83 sscanf(
tmp,
"%x", &vendor_id);
87 strcpy(vendor,
"Arm");
90 strcpy(vendor,
"Broadcom");
93 strcpy(vendor,
"Cavium");
96 strcpy(vendor,
"Fujitsu");
99 strcpy(vendor,
"Hisilicon");
102 strcpy(vendor,
"Apm");
105 strcpy(vendor,
"Qualcomm");
120 if (strlen(
name) != 0) {
131 sscanf(
tmp,
"%x", &vendor_id);
230 strcpy(
name,
"ARM1176");
233 strcpy(
name,
"ARM Cortex A7");
236 strcpy(
name,
"ARM Cortex A8");
239 strcpy(
name,
"ARM Cortex A9");
242 strcpy(
name,
"ARM Cortex A15");
245 strcpy(
name,
"ARM Cortex A53");
248 strcpy(
name,
"ARM Cortex A57");
251 strcpy(
name,
"ARM Cortex A76");
254 strcpy(
name,
"ARM Neoverse N1");
257 strcpy(
name,
"ARM Neoverse N2");
260 strcpy(
name,
"ARM Neoverse V1");
263 strcpy(
name,
"ARM Neoverse V2");
279 strcpy(
name,
"Broadcom ThunderX2");
295 strcpy(
name,
"Cavium ThunderX2");
311 strcpy(
name,
"Fujitsu A64FX");
327 strcpy(
name,
"Hisilicon Kunpeng");
343 strcpy(
name,
"Applied Micro X-Gene");
359 strcpy(
name,
"ARM Qualcomm Krait");
372 unsigned int implementer, partnum;
388 switch ( implementer ) {
#define NAMEID_ARM_NEOVERSE_N1
#define NAMEID_ARM_CORTEX_A7
#define NAMEID_ARM_NEOVERSE_V1
static int name_id_hisilicon_cpu_get_name(int name_id, char *name)
static int name_id_arm_cpu_get_name(int name_id, char *name)
#define NAMEID_ARM_CORTEX_A15
static int name_id_broadcom_cpu_get_name(int name_id, char *name)
#define NAMEID_ARM_NEOVERSE_V2
#define VENDOR_ARM_CAVIUM
int arm_cpu_get_attribute(CPU_attr_e attr, int *value)
int arm_cpu_get_name(char *name)
static int name_id_fujitsu_cpu_get_name(int name_id, char *name)
#define NAMEID_ARM_CORTEX_A57
#define VENDOR_ARM_HISILICON
static int name_id_cavium_cpu_get_name(int name_id, char *name)
#define NAMEID_HISILICON_KUNPENG
int arm_cpu_finalize(void)
_sysdetect_cache_level_info_t fujitsu_a64fx_cache_info[]
#define VENDOR_ARM_BROADCOM
int arm_cpu_get_attribute_at(CPU_attr_e attr, int loc, int *value)
#define NAMEID_ARM_NEOVERSE_N2
int arm_cpu_get_vendor(char *vendor)
#define NAMEID_ARM_CORTEX_A76
#define NAMEID_ARM_CORTEX_A8
#define VENDOR_ARM_QUALCOMM
static int name_id_apm_cpu_get_name(int name_id, char *name)
#define NAMEID_ARM_CORTEX_A9
static int get_cache_info(CPU_attr_e attr, int level, int *value)
#define NAMEID_BROADCOM_THUNDERX2
#define VENDOR_ARM_FUJITSU
#define NAMEID_FUJITSU_A64FX
#define NAMEID_CAVIUM_THUNDERX2
#define NAMEID_QUALCOMM_KRAIT
#define NAMEID_ARM_CORTEX_A53
static int name_id_qualcomm_cpu_get_name(int name_id, char *name)
int cpu_get_cache_info(CPU_attr_e attr, int level, _sysdetect_cache_level_info_t *clevel_ptr, int *value)
@ CPU_ATTR__CACHE_INST_TOT_SIZE
@ CPU_ATTR__HWTHREAD_NUMA_AFFINITY
@ CPU_ATTR__CACHE_UNIF_TOT_SIZE
@ CPU_ATTR__CACHE_DATA_ASSOCIATIVITY
@ CPU_ATTR__CACHE_INST_LINE_SIZE
@ CPU_ATTR__NUMA_MEM_SIZE
@ CPU_ATTR__CACHE_UNIF_LINE_SIZE
@ CPU_ATTR__CACHE_DATA_NUM_LINES
@ CPU_ATTR__CACHE_UNIF_ASSOCIATIVITY
@ CPU_ATTR__CACHE_INST_PRESENT
@ CPU_ATTR__CACHE_DATA_PRESENT
@ CPU_ATTR__CACHE_DATA_LINE_SIZE
@ CPU_ATTR__CACHE_INST_ASSOCIATIVITY
@ CPU_ATTR__CACHE_INST_NUM_LINES
@ CPU_ATTR__CACHE_UNIF_NUM_LINES
@ CPU_ATTR__CACHE_DATA_TOT_SIZE
@ CPU_ATTR__CACHE_UNIF_PRESENT
int os_cpu_get_attribute(CPU_attr_e attr, int *value)
int os_cpu_get_vendor(char *vendor)
int os_cpu_get_attribute_at(CPU_attr_e attr, int loc, int *value)
int os_cpu_get_name(char *name)
#define PAPI_MH_TYPE_DATA
#define PAPI_MH_TYPE_INST
#define PAPI_MH_TYPE_EMPTY
#define PAPI_MH_TYPE_UNIFIED