xref: /linux/tools/perf/util/stream.h (revision 7685b334d1e4927cc73b62c65293ba65748d9c52)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __PERF_STREAM_H
3 #define __PERF_STREAM_H
4 
5 struct callchain_node;
6 struct evlist;
7 struct evsel;
8 
9 struct stream {
10 	struct callchain_node	*cnode;
11 	struct callchain_node	*pair_cnode;
12 };
13 
14 struct evsel_streams {
15 	struct stream		*streams;
16 	const struct evsel	*evsel;
17 	int			nr_streams_max;
18 	int			nr_streams;
19 	u64			streams_hits;
20 };
21 
22 struct evlist_streams {
23 	struct evsel_streams	*ev_streams;
24 	int			nr_evsel;
25 };
26 
27 void evlist_streams__delete(struct evlist_streams *els);
28 
29 struct evlist_streams *evlist__create_streams(struct evlist *evlist,
30 					      int nr_streams_max);
31 
32 struct evsel_streams *evsel_streams__entry(struct evlist_streams *els,
33 					   const struct evsel *evsel);
34 
35 void evsel_streams__match(struct evsel_streams *es_base,
36 			  struct evsel_streams *es_pair);
37 
38 void evsel_streams__report(struct evsel_streams *es_base,
39 			   struct evsel_streams *es_pair);
40 
41 #endif /* __PERF_STREAM_H */
42