aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/evsel.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/evsel.h')
-rw-r--r--tools/perf/util/evsel.h34
1 files changed, 26 insertions, 8 deletions
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index 4a7bdc713bab..1ea7c92e6e33 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -74,10 +74,7 @@ struct perf_evsel {
74 off_t id_offset; 74 off_t id_offset;
75 }; 75 };
76 struct cgroup_sel *cgrp; 76 struct cgroup_sel *cgrp;
77 struct { 77 void *handler;
78 void *func;
79 void *data;
80 } handler;
81 struct cpu_map *cpus; 78 struct cpu_map *cpus;
82 unsigned int sample_size; 79 unsigned int sample_size;
83 int id_pos; 80 int id_pos;
@@ -99,8 +96,19 @@ struct thread_map;
99struct perf_evlist; 96struct perf_evlist;
100struct perf_record_opts; 97struct perf_record_opts;
101 98
102struct perf_evsel *perf_evsel__new(struct perf_event_attr *attr, int idx); 99struct perf_evsel *perf_evsel__new_idx(struct perf_event_attr *attr, int idx);
103struct perf_evsel *perf_evsel__newtp(const char *sys, const char *name, int idx); 100
101static inline struct perf_evsel *perf_evsel__new(struct perf_event_attr *attr)
102{
103 return perf_evsel__new_idx(attr, 0);
104}
105
106struct perf_evsel *perf_evsel__newtp_idx(const char *sys, const char *name, int idx);
107
108static inline struct perf_evsel *perf_evsel__newtp(const char *sys, const char *name)
109{
110 return perf_evsel__newtp_idx(sys, name, 0);
111}
104 112
105struct event_format *event_format__new(const char *sys, const char *name); 113struct event_format *event_format__new(const char *sys, const char *name);
106 114
@@ -197,6 +205,12 @@ static inline bool perf_evsel__match2(struct perf_evsel *e1,
197 (e1->attr.config == e2->attr.config); 205 (e1->attr.config == e2->attr.config);
198} 206}
199 207
208#define perf_evsel__cmp(a, b) \
209 ((a) && \
210 (b) && \
211 (a)->attr.type == (b)->attr.type && \
212 (a)->attr.config == (b)->attr.config)
213
200int __perf_evsel__read_on_cpu(struct perf_evsel *evsel, 214int __perf_evsel__read_on_cpu(struct perf_evsel *evsel,
201 int cpu, int thread, bool scale); 215 int cpu, int thread, bool scale);
202 216
@@ -265,6 +279,11 @@ static inline struct perf_evsel *perf_evsel__next(struct perf_evsel *evsel)
265 return list_entry(evsel->node.next, struct perf_evsel, node); 279 return list_entry(evsel->node.next, struct perf_evsel, node);
266} 280}
267 281
282static inline struct perf_evsel *perf_evsel__prev(struct perf_evsel *evsel)
283{
284 return list_entry(evsel->node.prev, struct perf_evsel, node);
285}
286
268/** 287/**
269 * perf_evsel__is_group_leader - Return whether given evsel is a leader event 288 * perf_evsel__is_group_leader - Return whether given evsel is a leader event
270 * 289 *
@@ -304,8 +323,7 @@ int perf_evsel__fprintf(struct perf_evsel *evsel,
304 323
305bool perf_evsel__fallback(struct perf_evsel *evsel, int err, 324bool perf_evsel__fallback(struct perf_evsel *evsel, int err,
306 char *msg, size_t msgsize); 325 char *msg, size_t msgsize);
307int perf_evsel__open_strerror(struct perf_evsel *evsel, 326int perf_evsel__open_strerror(struct perf_evsel *evsel, struct target *target,
308 struct perf_target *target,
309 int err, char *msg, size_t size); 327 int err, char *msg, size_t size);
310 328
311static inline int perf_evsel__group_idx(struct perf_evsel *evsel) 329static inline int perf_evsel__group_idx(struct perf_evsel *evsel)