162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Arm Statistical Profiling Extensions (SPE) support 462306a36Sopenharmony_ci * Copyright (c) 2017-2018, Arm Ltd. 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#ifndef INCLUDE__PERF_ARM_SPE_H__ 862306a36Sopenharmony_ci#define INCLUDE__PERF_ARM_SPE_H__ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#define ARM_SPE_PMU_NAME "arm_spe_" 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cienum { 1362306a36Sopenharmony_ci ARM_SPE_PMU_TYPE, 1462306a36Sopenharmony_ci ARM_SPE_PER_CPU_MMAPS, 1562306a36Sopenharmony_ci ARM_SPE_AUXTRACE_PRIV_MAX, 1662306a36Sopenharmony_ci}; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#define ARM_SPE_AUXTRACE_PRIV_SIZE (ARM_SPE_AUXTRACE_PRIV_MAX * sizeof(u64)) 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciunion perf_event; 2162306a36Sopenharmony_cistruct perf_session; 2262306a36Sopenharmony_cistruct perf_pmu; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_cistruct auxtrace_record *arm_spe_recording_init(int *err, 2562306a36Sopenharmony_ci struct perf_pmu *arm_spe_pmu); 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciint arm_spe_process_auxtrace_info(union perf_event *event, 2862306a36Sopenharmony_ci struct perf_session *session); 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_cistruct perf_event_attr *arm_spe_pmu_default_config(struct perf_pmu *arm_spe_pmu); 3162306a36Sopenharmony_ci#endif 32