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