xref: /linux/tools/perf/util/sample-raw.c (revision f4f346c3465949ebba80c6cc52cd8d2eeaa545fd)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #include <string.h>
4 #include <linux/string.h>
5 #include "evlist.h"
6 #include "env.h"
7 #include "header.h"
8 #include "sample-raw.h"
9 #include "session.h"
10 
11 /*
12  * Check platform the perf data file was created on and perform platform
13  * specific interpretation.
14  */
evlist__init_trace_event_sample_raw(struct evlist * evlist,struct perf_env * env)15 void evlist__init_trace_event_sample_raw(struct evlist *evlist, struct perf_env *env)
16 {
17 	const char *arch_pf = perf_env__arch(env);
18 	const char *cpuid = perf_env__cpuid(env);
19 
20 	if (arch_pf && !strcmp("s390", arch_pf))
21 		evlist->trace_event_sample_raw = evlist__s390_sample_raw;
22 	else if (arch_pf && !strcmp("x86", arch_pf) &&
23 		 cpuid && strstarts(cpuid, "AuthenticAMD") &&
24 		 evlist__has_amd_ibs(evlist)) {
25 		evlist->trace_event_sample_raw = evlist__amd_sample_raw;
26 	}
27 }
28