| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef __PERF_COUNTS_H | |
| #define __PERF_COUNTS_H | |
| #include "xyarray.h" | |
| struct perf_counts_values { | |
| union { | |
| struct { | |
| u64 val; | |
| u64 ena; | |
| u64 run; | |
| }; | |
| u64 values[3]; | |
| }; | |
| bool loaded; | |
| }; | |
| struct perf_counts { | |
| s8 scaled; | |
| struct perf_counts_values aggr; | |
| struct xyarray *values; | |
| }; | |
| static inline struct perf_counts_values* | |
| perf_counts(struct perf_counts *counts, int cpu, int thread) | |
| { | |
| return xyarray__entry(counts->values, cpu, thread); | |
| } | |
| struct perf_counts *perf_counts__new(int ncpus, int nthreads); | |
| void perf_counts__delete(struct perf_counts *counts); | |
| void perf_evsel__reset_counts(struct perf_evsel *evsel); | |
| int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads); | |
| void perf_evsel__free_counts(struct perf_evsel *evsel); | |
| #endif /* __PERF_COUNTS_H */ |