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 "xyarray.h" 6 #include <internal/xyarray.h> << 7 #include <perf/evsel.h> << 8 #include <stdbool.h> << 9 6 10 struct evsel; !! 7 struct perf_counts_values { >> 8 union { >> 9 struct { >> 10 u64 val; >> 11 u64 ena; >> 12 u64 run; >> 13 }; >> 14 u64 values[3]; >> 15 }; >> 16 bool loaded; >> 17 }; 11 18 12 struct perf_counts { 19 struct perf_counts { 13 s8 scaled; 20 s8 scaled; >> 21 struct perf_counts_values aggr; 14 struct xyarray *values; 22 struct xyarray *values; 15 struct xyarray *loaded; << 16 }; 23 }; 17 24 18 25 19 static inline struct perf_counts_values* 26 static inline struct perf_counts_values* 20 perf_counts(struct perf_counts *counts, int cp !! 27 perf_counts(struct perf_counts *counts, int cpu, int thread) 21 { << 22 return xyarray__entry(counts->values, << 23 } << 24 << 25 static inline bool << 26 perf_counts__is_loaded(struct perf_counts *cou << 27 { << 28 return *((bool *) xyarray__entry(count << 29 } << 30 << 31 static inline void << 32 perf_counts__set_loaded(struct perf_counts *co << 33 { 28 { 34 *((bool *) xyarray__entry(counts->load !! 29 return xyarray__entry(counts->values, cpu, thread); 35 } 30 } 36 31 37 struct perf_counts *perf_counts__new(int ncpus 32 struct perf_counts *perf_counts__new(int ncpus, int nthreads); 38 void perf_counts__delete(struct perf_counts *c 33 void perf_counts__delete(struct perf_counts *counts); 39 void perf_counts__reset(struct perf_counts *co << 40 34 41 void evsel__reset_counts(struct evsel *evsel); !! 35 void perf_evsel__reset_counts(struct perf_evsel *evsel); 42 int evsel__alloc_counts(struct evsel *evsel); !! 36 int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads); 43 void evsel__free_counts(struct evsel *evsel); !! 37 void perf_evsel__free_counts(struct perf_evsel *evsel); 44 38 45 #endif /* __PERF_COUNTS_H */ 39 #endif /* __PERF_COUNTS_H */ 46 40
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.