| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #include "sample-raw.h" | |
| #include <elf.h> | |
| #include <linux/string.h> | |
| #include "env.h" | |
| #include "evlist.h" | |
| #include "header.h" | |
| #include "session.h" | |
| /* | |
| * Check platform the perf data file was created on and perform platform | |
| * specific interpretation. | |
| */ | |
| void evlist__init_trace_event_sample_raw(struct evlist *evlist, struct perf_env *env) | |
| { | |
| uint16_t e_machine = perf_env__e_machine(env, /*e_flags=*/NULL); | |
| if (e_machine == EM_S390) { | |
| evlist->trace_event_sample_raw = evlist__s390_sample_raw; | |
| } else if (e_machine == EM_X86_64 || e_machine == EM_386) { | |
| const char *cpuid = perf_env__cpuid(env); | |
| if (cpuid && strstarts(cpuid, "AuthenticAMD") && evlist__has_amd_ibs(evlist)) | |
| evlist->trace_event_sample_raw = evlist__amd_sample_raw; | |
| } | |
| } |