1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __PERF_STREAM_H
3 #define __PERF_STREAM_H
4 
5 #include "callchain.h"
6 
7 struct stream {
8 	struct callchain_node	*cnode;
9 	struct callchain_node	*pair_cnode;
10 };
11 
12 struct evsel_streams {
13 	struct stream		*streams;
14 	int			nr_streams_max;
15 	int			nr_streams;
16 	int			evsel_idx;
17 	u64			streams_hits;
18 };
19 
20 struct evlist_streams {
21 	struct evsel_streams	*ev_streams;
22 	int			nr_evsel;
23 };
24 
25 struct evlist;
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 					   int evsel_idx);
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