xref: /openbmc/linux/tools/perf/util/pmus.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1336b92daSRavi Bangoria /* SPDX-License-Identifier: GPL-2.0 */
2336b92daSRavi Bangoria #ifndef __PMUS_H
3336b92daSRavi Bangoria #define __PMUS_H
4336b92daSRavi Bangoria 
5003be8c4SIan Rogers struct perf_pmu;
61eaf496eSIan Rogers struct print_callbacks;
71eaf496eSIan Rogers 
8*cd4e1efbSIan Rogers int pmu_name_len_no_suffix(const char *str, unsigned long *num);
9*cd4e1efbSIan Rogers 
101eaf496eSIan Rogers void perf_pmus__destroy(void);
111eaf496eSIan Rogers 
121eaf496eSIan Rogers struct perf_pmu *perf_pmus__find(const char *name);
131eaf496eSIan Rogers struct perf_pmu *perf_pmus__find_by_type(unsigned int type);
141eaf496eSIan Rogers 
151eaf496eSIan Rogers struct perf_pmu *perf_pmus__scan(struct perf_pmu *pmu);
169d6a1df9SIan Rogers struct perf_pmu *perf_pmus__scan_core(struct perf_pmu *pmu);
17336b92daSRavi Bangoria 
18003be8c4SIan Rogers const struct perf_pmu *perf_pmus__pmu_for_pmu_filter(const char *str);
19003be8c4SIan Rogers 
201eaf496eSIan Rogers int perf_pmus__num_mem_pmus(void);
211eaf496eSIan Rogers void perf_pmus__print_pmu_events(const struct print_callbacks *print_cb, void *print_state);
221eaf496eSIan Rogers bool perf_pmus__have_event(const char *pname, const char *name);
23002c4845SIan Rogers int perf_pmus__num_core_pmus(void);
24251aa040SIan Rogers bool perf_pmus__supports_extended_type(void);
25d685819bSIan Rogers char *perf_pmus__default_pmu_name(void);
261eaf496eSIan Rogers 
27336b92daSRavi Bangoria #endif /* __PMUS_H */
28