These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / tools / perf / util / counts.h
1 #ifndef __PERF_COUNTS_H
2 #define __PERF_COUNTS_H
3
4 #include "xyarray.h"
5
6 struct perf_counts_values {
7         union {
8                 struct {
9                         u64 val;
10                         u64 ena;
11                         u64 run;
12                 };
13                 u64 values[3];
14         };
15 };
16
17 struct perf_counts {
18         s8                        scaled;
19         struct perf_counts_values aggr;
20         struct xyarray            *values;
21 };
22
23
24 static inline struct perf_counts_values*
25 perf_counts(struct perf_counts *counts, int cpu, int thread)
26 {
27         return xyarray__entry(counts->values, cpu, thread);
28 }
29
30 struct perf_counts *perf_counts__new(int ncpus, int nthreads);
31 void perf_counts__delete(struct perf_counts *counts);
32
33 void perf_evsel__reset_counts(struct perf_evsel *evsel);
34 int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus, int nthreads);
35 void perf_evsel__free_counts(struct perf_evsel *evsel);
36
37 #endif /* __PERF_COUNTS_H */