| /* 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 */ |