925320737a
Rather than passing a fake PMU around, just pass that the fake PMU should be used - true when doing testing. Move the fake PMU into pmus.[ch] and try to abstract the PMU's properties in pmu.c, ie so there is less "if fake_pmu" in non-PMU code. Give the fake PMU a made up type number. Signed-off-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com> Cc: Benjamin Gray <bgray@linux.ibm.com> Cc: Changbin Du <changbin.du@huawei.com> Cc: Clément Le Goffic <clement.legoffic@foss.st.com> Cc: Colin Ian King <colin.i.king@gmail.com> Cc: Dominique Martinet <asmadeus@codewreck.org> Cc: Dr. David Alan Gilbert <linux@treblig.org> Cc: Howard Chu <howardchu95@gmail.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@linaro.org> Cc: Jing Zhang <renyu.zj@linux.alibaba.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.g.garry@oracle.com> Cc: Junhao He <hejunhao3@huawei.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Leo Yan <leo.yan@linux.dev> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mike Leach <mike.leach@linaro.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Oliver Upton <oliver.upton@linux.dev> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ravi Bangoria <ravi.bangoria@amd.com> Cc: Sandipan Das <sandipan.das@amd.com> Cc: Sun Haiyong <sunhaiyong@loongson.cn> Cc: Tiezhu Yang <yangtiezhu@loongson.cn> Cc: Veronika Molnarova <vmolnaro@redhat.com> Cc: Weilin Wang <weilin.wang@intel.com> Cc: Will Deacon <will@kernel.org> Cc: Xu Yang <xu.yang_2@nxp.com> Cc: Yang Jihong <yangjihong@bytedance.com> Cc: Yicong Yang <yangyicong@hisilicon.com> Cc: Ze Gao <zegao2021@gmail.com> Cc: linux-arm-kernel@lists.infradead.org Link: https://lore.kernel.org/r/20240907050830.6752-3-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
36 lines
1.1 KiB
C
36 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __PMUS_H
|
|
#define __PMUS_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
|
|
struct perf_pmu;
|
|
struct print_callbacks;
|
|
|
|
size_t pmu_name_len_no_suffix(const char *str);
|
|
/* Exposed for testing only. */
|
|
int pmu_name_cmp(const char *lhs_pmu_name, const char *rhs_pmu_name);
|
|
|
|
void perf_pmus__destroy(void);
|
|
|
|
struct perf_pmu *perf_pmus__find(const char *name);
|
|
struct perf_pmu *perf_pmus__find_by_type(unsigned int type);
|
|
|
|
struct perf_pmu *perf_pmus__scan(struct perf_pmu *pmu);
|
|
struct perf_pmu *perf_pmus__scan_core(struct perf_pmu *pmu);
|
|
|
|
const struct perf_pmu *perf_pmus__pmu_for_pmu_filter(const char *str);
|
|
|
|
void perf_pmus__print_pmu_events(const struct print_callbacks *print_cb, void *print_state);
|
|
void perf_pmus__print_raw_pmu_events(const struct print_callbacks *print_cb, void *print_state);
|
|
bool perf_pmus__have_event(const char *pname, const char *name);
|
|
int perf_pmus__num_core_pmus(void);
|
|
bool perf_pmus__supports_extended_type(void);
|
|
char *perf_pmus__default_pmu_name(void);
|
|
|
|
struct perf_pmu *perf_pmus__add_test_pmu(int test_sysfs_dirfd, const char *name);
|
|
struct perf_pmu *perf_pmus__fake_pmu(void);
|
|
|
|
#endif /* __PMUS_H */
|