1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __PERF_COUNTS_H 2 #ifndef __PERF_COUNTS_H 3 #define __PERF_COUNTS_H 3 #define __PERF_COUNTS_H 4 4 5 #include <linux/types.h> 5 #include <linux/types.h> 6 #include <internal/xyarray.h> 6 #include <internal/xyarray.h> 7 #include <perf/evsel.h> 7 #include <perf/evsel.h> 8 #include <stdbool.h> 8 #include <stdbool.h> 9 9 10 struct evsel; 10 struct evsel; 11 11 12 struct perf_counts { 12 struct perf_counts { 13 s8 scaled; 13 s8 scaled; >> 14 struct perf_counts_values aggr; 14 struct xyarray *values; 15 struct xyarray *values; 15 struct xyarray *loaded; 16 struct xyarray *loaded; 16 }; 17 }; 17 18 18 19 19 static inline struct perf_counts_values* 20 static inline struct perf_counts_values* 20 perf_counts(struct perf_counts *counts, int cp !! 21 perf_counts(struct perf_counts *counts, int cpu, int thread) 21 { 22 { 22 return xyarray__entry(counts->values, !! 23 return xyarray__entry(counts->values, cpu, thread); 23 } 24 } 24 25 25 static inline bool 26 static inline bool 26 perf_counts__is_loaded(struct perf_counts *cou !! 27 perf_counts__is_loaded(struct perf_counts *counts, int cpu, int thread) 27 { 28 { 28 return *((bool *) xyarray__entry(count !! 29 return *((bool *) xyarray__entry(counts->loaded, cpu, thread)); 29 } 30 } 30 31 31 static inline void 32 static inline void 32 perf_counts__set_loaded(struct perf_counts *co !! 33 perf_counts__set_loaded(struct perf_counts *counts, int cpu, int thread, bool loaded) 33 { 34 { 34 *((bool *) xyarray__entry(counts->load !! 35 *((bool *) xyarray__entry(counts->loaded, cpu, thread)) = loaded; 35 } 36 } 36 37 37 struct perf_counts *perf_counts__new(int ncpus 38 struct perf_counts *perf_counts__new(int ncpus, int nthreads); 38 void perf_counts__delete(struct perf_counts *c 39 void perf_counts__delete(struct perf_counts *counts); 39 void perf_counts__reset(struct perf_counts *co 40 void perf_counts__reset(struct perf_counts *counts); 40 41 41 void evsel__reset_counts(struct evsel *evsel); 42 void evsel__reset_counts(struct evsel *evsel); 42 int evsel__alloc_counts(struct evsel *evsel); !! 43 int evsel__alloc_counts(struct evsel *evsel, int ncpus, int nthreads); 43 void evsel__free_counts(struct evsel *evsel); 44 void evsel__free_counts(struct evsel *evsel); 44 45 45 #endif /* __PERF_COUNTS_H */ 46 #endif /* __PERF_COUNTS_H */ 46 47
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.