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