47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef __PERF_COUNTS_H
 | |
| #define __PERF_COUNTS_H
 | |
| 
 | |
| #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)
 | |
| {
 | |
| 	return xyarray__entry(counts->values, cpu, thread);
 | |
| }
 | |
| 
 | |
| static inline bool
 | |
| perf_counts__is_loaded(struct perf_counts *counts, int cpu, int thread)
 | |
| {
 | |
| 	return *((bool *) xyarray__entry(counts->loaded, cpu, thread));
 | |
| }
 | |
| 
 | |
| static inline void
 | |
| perf_counts__set_loaded(struct perf_counts *counts, int cpu, int thread, bool loaded)
 | |
| {
 | |
| 	*((bool *) xyarray__entry(counts->loaded, cpu, 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 evsel__reset_counts(struct evsel *evsel);
 | |
| int evsel__alloc_counts(struct evsel *evsel, int ncpus, int nthreads);
 | |
| void evsel__free_counts(struct evsel *evsel);
 | |
| 
 | |
| #endif /* __PERF_COUNTS_H */
 |