diff options
Diffstat (limited to 'tools/perf/util/counts.h')
| -rw-r--r-- | tools/perf/util/counts.h | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/tools/perf/util/counts.h b/tools/perf/util/counts.h index 0d1050ccc586..42760242e0df 100644 --- a/tools/perf/util/counts.h +++ b/tools/perf/util/counts.h @@ -2,38 +2,44 @@ #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; -}; +#include <linux/types.h> +#include <internal/xyarray.h> +#include <perf/evsel.h> +#include <stdbool.h> + +struct evsel; struct perf_counts { s8 scaled; - struct perf_counts_values aggr; struct xyarray *values; + struct xyarray *loaded; }; static inline struct perf_counts_values* -perf_counts(struct perf_counts *counts, int cpu, int thread) +perf_counts(struct perf_counts *counts, int cpu_map_idx, int thread) +{ + return xyarray__entry(counts->values, cpu_map_idx, thread); +} + +static inline bool +perf_counts__is_loaded(struct perf_counts *counts, int cpu_map_idx, int thread) +{ + return *((bool *) xyarray__entry(counts->loaded, cpu_map_idx, thread)); +} + +static inline void +perf_counts__set_loaded(struct perf_counts *counts, int cpu_map_idx, int thread, bool loaded) { - return xyarray__entry(counts->values, cpu, thread); + *((bool *) xyarray__entry(counts->loaded, cpu_map_idx, thread)) = loaded; } struct perf_counts *perf_counts__new(int ncpus, int nthreads); void perf_counts__delete(struct perf_counts *counts); +void perf_counts__reset(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); +void evsel__reset_counts(struct evsel *evsel); +int evsel__alloc_counts(struct evsel *evsel); +void evsel__free_counts(struct evsel *evsel); #endif /* __PERF_COUNTS_H */ |
