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