162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#include <string.h>
462306a36Sopenharmony_ci#include <linux/string.h>
562306a36Sopenharmony_ci#include "evlist.h"
662306a36Sopenharmony_ci#include "env.h"
762306a36Sopenharmony_ci#include "header.h"
862306a36Sopenharmony_ci#include "sample-raw.h"
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/*
1162306a36Sopenharmony_ci * Check platform the perf data file was created on and perform platform
1262306a36Sopenharmony_ci * specific interpretation.
1362306a36Sopenharmony_ci */
1462306a36Sopenharmony_civoid evlist__init_trace_event_sample_raw(struct evlist *evlist)
1562306a36Sopenharmony_ci{
1662306a36Sopenharmony_ci	const char *arch_pf = perf_env__arch(evlist->env);
1762306a36Sopenharmony_ci	const char *cpuid = perf_env__cpuid(evlist->env);
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	if (arch_pf && !strcmp("s390", arch_pf))
2062306a36Sopenharmony_ci		evlist->trace_event_sample_raw = evlist__s390_sample_raw;
2162306a36Sopenharmony_ci	else if (arch_pf && !strcmp("x86", arch_pf) &&
2262306a36Sopenharmony_ci		 cpuid && strstarts(cpuid, "AuthenticAMD") &&
2362306a36Sopenharmony_ci		 evlist__has_amd_ibs(evlist)) {
2462306a36Sopenharmony_ci		evlist->trace_event_sample_raw = evlist__amd_sample_raw;
2562306a36Sopenharmony_ci	}
2662306a36Sopenharmony_ci}
27