counts.h (1221B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __PERF_COUNTS_H 3#define __PERF_COUNTS_H 4 5#include <linux/types.h> 6#include <internal/xyarray.h> 7#include <perf/evsel.h> 8#include <stdbool.h> 9 10struct evsel; 11 12struct perf_counts { 13 s8 scaled; 14 struct perf_counts_values aggr; 15 struct xyarray *values; 16 struct xyarray *loaded; 17}; 18 19 20static inline struct perf_counts_values* 21perf_counts(struct perf_counts *counts, int cpu_map_idx, int thread) 22{ 23 return xyarray__entry(counts->values, cpu_map_idx, thread); 24} 25 26static inline bool 27perf_counts__is_loaded(struct perf_counts *counts, int cpu_map_idx, int thread) 28{ 29 return *((bool *) xyarray__entry(counts->loaded, cpu_map_idx, thread)); 30} 31 32static inline void 33perf_counts__set_loaded(struct perf_counts *counts, int cpu_map_idx, int thread, bool loaded) 34{ 35 *((bool *) xyarray__entry(counts->loaded, cpu_map_idx, thread)) = loaded; 36} 37 38struct perf_counts *perf_counts__new(int ncpus, int nthreads); 39void perf_counts__delete(struct perf_counts *counts); 40void perf_counts__reset(struct perf_counts *counts); 41 42void evsel__reset_counts(struct evsel *evsel); 43int evsel__alloc_counts(struct evsel *evsel); 44void evsel__free_counts(struct evsel *evsel); 45 46#endif /* __PERF_COUNTS_H */