xref: /openbmc/linux/tools/perf/arch/x86/util/env.c (revision 99d48500)
10cd1ca46SRavi Bangoria // SPDX-License-Identifier: GPL-2.0
20cd1ca46SRavi Bangoria #include "linux/string.h"
30cd1ca46SRavi Bangoria #include "util/env.h"
40cd1ca46SRavi Bangoria #include "env.h"
50cd1ca46SRavi Bangoria 
x86__is_amd_cpu(void)60cd1ca46SRavi Bangoria bool x86__is_amd_cpu(void)
70cd1ca46SRavi Bangoria {
80cd1ca46SRavi Bangoria 	struct perf_env env = { .total_mem = 0, };
90cd1ca46SRavi Bangoria 	static int is_amd; /* 0: Uninitialized, 1: Yes, -1: No */
100cd1ca46SRavi Bangoria 
110cd1ca46SRavi Bangoria 	if (is_amd)
120cd1ca46SRavi Bangoria 		goto ret;
130cd1ca46SRavi Bangoria 
140cd1ca46SRavi Bangoria 	perf_env__cpuid(&env);
150cd1ca46SRavi Bangoria 	is_amd = env.cpuid && strstarts(env.cpuid, "AuthenticAMD") ? 1 : -1;
16*99d48500SIan Rogers 	perf_env__exit(&env);
170cd1ca46SRavi Bangoria ret:
180cd1ca46SRavi Bangoria 	return is_amd >= 1 ? true : false;
190cd1ca46SRavi Bangoria }
20