162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __PMUS_H
362306a36Sopenharmony_ci#define __PMUS_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_cistruct perf_pmu;
662306a36Sopenharmony_cistruct print_callbacks;
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciint pmu_name_len_no_suffix(const char *str, unsigned long *num);
962306a36Sopenharmony_ci
1062306a36Sopenharmony_civoid perf_pmus__destroy(void);
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cistruct perf_pmu *perf_pmus__find(const char *name);
1362306a36Sopenharmony_cistruct perf_pmu *perf_pmus__find_by_type(unsigned int type);
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistruct perf_pmu *perf_pmus__scan(struct perf_pmu *pmu);
1662306a36Sopenharmony_cistruct perf_pmu *perf_pmus__scan_core(struct perf_pmu *pmu);
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciconst struct perf_pmu *perf_pmus__pmu_for_pmu_filter(const char *str);
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciint perf_pmus__num_mem_pmus(void);
2162306a36Sopenharmony_civoid perf_pmus__print_pmu_events(const struct print_callbacks *print_cb, void *print_state);
2262306a36Sopenharmony_cibool perf_pmus__have_event(const char *pname, const char *name);
2362306a36Sopenharmony_ciint perf_pmus__num_core_pmus(void);
2462306a36Sopenharmony_cibool perf_pmus__supports_extended_type(void);
2562306a36Sopenharmony_cichar *perf_pmus__default_pmu_name(void);
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci#endif /* __PMUS_H */
28