pmu.c (eeac7730418563152b0e3172bce9bac4ff6d6bc4) pmu.c (1ba3752aec30c04bfb7c82b44332ff98294ec0b8)
1// SPDX-License-Identifier: GPL-2.0
2
3#include "../../../util/cpumap.h"
4#include "../../../util/pmu.h"
5
1// SPDX-License-Identifier: GPL-2.0
2
3#include "../../../util/cpumap.h"
4#include "../../../util/pmu.h"
5
6const struct pmu_event *pmu_events_table__find(void)
6const struct pmu_events_table *pmu_events_table__find(void)
7{
8 struct perf_pmu *pmu = NULL;
9
10 while ((pmu = perf_pmu__scan(pmu))) {
11 if (!is_pmu_core(pmu->name))
12 continue;
13
14 /*
15 * The cpumap should cover all CPUs. Otherwise, some CPUs may
16 * not support some events or have different event IDs.
17 */
18 if (pmu->cpus->nr != cpu__max_cpu().cpu)
19 return NULL;
20
21 return perf_pmu__find_table(pmu);
22 }
23
24 return NULL;
25}
7{
8 struct perf_pmu *pmu = NULL;
9
10 while ((pmu = perf_pmu__scan(pmu))) {
11 if (!is_pmu_core(pmu->name))
12 continue;
13
14 /*
15 * The cpumap should cover all CPUs. Otherwise, some CPUs may
16 * not support some events or have different event IDs.
17 */
18 if (pmu->cpus->nr != cpu__max_cpu().cpu)
19 return NULL;
20
21 return perf_pmu__find_table(pmu);
22 }
23
24 return NULL;
25}