162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#include "map_symbol.h"
362306a36Sopenharmony_ci#include "mem-events.h"
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#define E(t, n, s) { .tag = t, .name = n, .sysfs_name = s }
662306a36Sopenharmony_ci
762306a36Sopenharmony_cistatic struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX] = {
862306a36Sopenharmony_ci	E("spe-load",	"arm_spe_0/ts_enable=1,pa_enable=1,load_filter=1,store_filter=0,min_latency=%u/",	"arm_spe_0"),
962306a36Sopenharmony_ci	E("spe-store",	"arm_spe_0/ts_enable=1,pa_enable=1,load_filter=0,store_filter=1/",			"arm_spe_0"),
1062306a36Sopenharmony_ci	E("spe-ldst",	"arm_spe_0/ts_enable=1,pa_enable=1,load_filter=1,store_filter=1,min_latency=%u/",	"arm_spe_0"),
1162306a36Sopenharmony_ci};
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistatic char mem_ev_name[100];
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistruct perf_mem_event *perf_mem_events__ptr(int i)
1662306a36Sopenharmony_ci{
1762306a36Sopenharmony_ci	if (i >= PERF_MEM_EVENTS__MAX)
1862306a36Sopenharmony_ci		return NULL;
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	return &perf_mem_events[i];
2162306a36Sopenharmony_ci}
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciconst char *perf_mem_events__name(int i, const char *pmu_name __maybe_unused)
2462306a36Sopenharmony_ci{
2562306a36Sopenharmony_ci	struct perf_mem_event *e = perf_mem_events__ptr(i);
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	if (i >= PERF_MEM_EVENTS__MAX)
2862306a36Sopenharmony_ci		return NULL;
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	if (i == PERF_MEM_EVENTS__LOAD || i == PERF_MEM_EVENTS__LOAD_STORE)
3162306a36Sopenharmony_ci		scnprintf(mem_ev_name, sizeof(mem_ev_name),
3262306a36Sopenharmony_ci			  e->name, perf_mem_events__loads_ldlat);
3362306a36Sopenharmony_ci	else /* PERF_MEM_EVENTS__STORE */
3462306a36Sopenharmony_ci		scnprintf(mem_ev_name, sizeof(mem_ev_name), e->name);
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	return mem_ev_name;
3762306a36Sopenharmony_ci}
38