metricgroup.h (eeac7730418563152b0e3172bce9bac4ff6d6bc4) metricgroup.h (1ba3752aec30c04bfb7c82b44332ff98294ec0b8)
1// SPDX-License-Identifier: GPL-2.0-only
2#ifndef METRICGROUP_H
3#define METRICGROUP_H 1
4
5#include <linux/list.h>
6#include <linux/rbtree.h>
7#include <stdbool.h>
8#include "pmu-events/pmu-events.h"
9
10struct evlist;
11struct evsel;
12struct option;
13struct rblist;
1// SPDX-License-Identifier: GPL-2.0-only
2#ifndef METRICGROUP_H
3#define METRICGROUP_H 1
4
5#include <linux/list.h>
6#include <linux/rbtree.h>
7#include <stdbool.h>
8#include "pmu-events/pmu-events.h"
9
10struct evlist;
11struct evsel;
12struct option;
13struct rblist;
14struct pmu_events_map;
15struct cgroup;
16
17/**
18 * A node in a rblist keyed by the evsel. The global rblist of metric events
19 * generally exists in perf_stat_config. The evsel is looked up in the rblist
20 * yielding a list of metric_expr.
21 */
22struct metric_event {

--- 43 unchanged lines hidden (view full) ---

66 struct evsel *evsel,
67 bool create);
68int metricgroup__parse_groups(const struct option *opt,
69 const char *str,
70 bool metric_no_group,
71 bool metric_no_merge,
72 struct rblist *metric_events);
73const struct pmu_event *metricgroup__find_metric(const char *metric,
14struct cgroup;
15
16/**
17 * A node in a rblist keyed by the evsel. The global rblist of metric events
18 * generally exists in perf_stat_config. The evsel is looked up in the rblist
19 * yielding a list of metric_expr.
20 */
21struct metric_event {

--- 43 unchanged lines hidden (view full) ---

65 struct evsel *evsel,
66 bool create);
67int metricgroup__parse_groups(const struct option *opt,
68 const char *str,
69 bool metric_no_group,
70 bool metric_no_merge,
71 struct rblist *metric_events);
72const struct pmu_event *metricgroup__find_metric(const char *metric,
74 const struct pmu_event *table);
73 const struct pmu_events_table *table);
75int metricgroup__parse_groups_test(struct evlist *evlist,
74int metricgroup__parse_groups_test(struct evlist *evlist,
76 const struct pmu_event *table,
75 const struct pmu_events_table *table,
77 const char *str,
78 bool metric_no_group,
79 bool metric_no_merge,
80 struct rblist *metric_events);
81
82void metricgroup__print(bool metrics, bool groups, char *filter,
83 bool raw, bool details, const char *pmu_name);
84bool metricgroup__has_metric(const char *metric);
85int arch_get_runtimeparam(const struct pmu_event *pe __maybe_unused);
86void metricgroup__rblist_exit(struct rblist *metric_events);
87
88int metricgroup__copy_metric_events(struct evlist *evlist, struct cgroup *cgrp,
89 struct rblist *new_metric_events,
90 struct rblist *old_metric_events);
91#endif
76 const char *str,
77 bool metric_no_group,
78 bool metric_no_merge,
79 struct rblist *metric_events);
80
81void metricgroup__print(bool metrics, bool groups, char *filter,
82 bool raw, bool details, const char *pmu_name);
83bool metricgroup__has_metric(const char *metric);
84int arch_get_runtimeparam(const struct pmu_event *pe __maybe_unused);
85void metricgroup__rblist_exit(struct rblist *metric_events);
86
87int metricgroup__copy_metric_events(struct evlist *evlist, struct cgroup *cgrp,
88 struct rblist *new_metric_events,
89 struct rblist *old_metric_events);
90#endif