forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.2 KiB
49 lines
1.2 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef PMU_EVENTS_H |
|
#define PMU_EVENTS_H |
|
|
|
struct perf_pmu; |
|
|
|
enum aggr_mode_class { |
|
PerChip = 1, |
|
PerCore |
|
}; |
|
|
|
/* |
|
* Describe each PMU event. Each CPU has a table of PMU events. |
|
*/ |
|
struct pmu_event { |
|
const char *name; |
|
const char *compat; |
|
const char *event; |
|
const char *desc; |
|
const char *topic; |
|
const char *long_desc; |
|
const char *pmu; |
|
const char *unit; |
|
const char *perpkg; |
|
const char *aggr_mode; |
|
const char *metric_expr; |
|
const char *metric_name; |
|
const char *metric_group; |
|
const char *deprecated; |
|
const char *metric_constraint; |
|
}; |
|
|
|
struct pmu_events_table; |
|
|
|
typedef int (*pmu_event_iter_fn)(const struct pmu_event *pe, |
|
const struct pmu_events_table *table, |
|
void *data); |
|
|
|
int pmu_events_table_for_each_event(const struct pmu_events_table *table, pmu_event_iter_fn fn, |
|
void *data); |
|
|
|
const struct pmu_events_table *perf_pmu__find_table(struct perf_pmu *pmu); |
|
const struct pmu_events_table *find_core_events_table(const char *arch, const char *cpuid); |
|
int pmu_for_each_core_event(pmu_event_iter_fn fn, void *data); |
|
|
|
const struct pmu_events_table *find_sys_events_table(const char *name); |
|
int pmu_for_each_sys_event(pmu_event_iter_fn fn, void *data); |
|
|
|
#endif
|
|
|