License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[sfrench/cifs-2.6.git] / tools / perf / util / counts.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __PERF_COUNTS_H
3 #define __PERF_COUNTS_H
4
5 #include "xyarray.h"
6
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 };
18
19 struct perf_counts {
20         s8                        scaled;
21         struct perf_counts_values aggr;
22         struct xyarray            *values;
23 };
24
25
26 static inline struct perf_counts_values*
27 perf_counts(struct perf_counts *counts, int cpu, int thread)
28 {
29         return xyarray__entry(counts->values, cpu, thread);
30 }
31
32 struct perf_counts *perf_counts__new(int ncpus, int nthreads);
33 void perf_counts__delete(struct perf_counts *counts);
34
35 void perf_evsel__reset_counts(struct perf_evsel *evsel);
36 int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads);
37 void perf_evsel__free_counts(struct perf_evsel *evsel);
38
39 #endif /* __PERF_COUNTS_H */