|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | #ifndef __PERF_STREAM_H | 
|  | #define __PERF_STREAM_H | 
|  |  | 
|  | struct callchain_node; | 
|  | struct evlist; | 
|  | struct evsel; | 
|  |  | 
|  | struct stream { | 
|  | struct callchain_node	*cnode; | 
|  | struct callchain_node	*pair_cnode; | 
|  | }; | 
|  |  | 
|  | struct evsel_streams { | 
|  | struct stream		*streams; | 
|  | const struct evsel	*evsel; | 
|  | int			nr_streams_max; | 
|  | int			nr_streams; | 
|  | u64			streams_hits; | 
|  | }; | 
|  |  | 
|  | struct evlist_streams { | 
|  | struct evsel_streams	*ev_streams; | 
|  | int			nr_evsel; | 
|  | }; | 
|  |  | 
|  | void evlist_streams__delete(struct evlist_streams *els); | 
|  |  | 
|  | struct evlist_streams *evlist__create_streams(struct evlist *evlist, | 
|  | int nr_streams_max); | 
|  |  | 
|  | struct evsel_streams *evsel_streams__entry(struct evlist_streams *els, | 
|  | const struct evsel *evsel); | 
|  |  | 
|  | void evsel_streams__match(struct evsel_streams *es_base, | 
|  | struct evsel_streams *es_pair); | 
|  |  | 
|  | void evsel_streams__report(struct evsel_streams *es_base, | 
|  | struct evsel_streams *es_pair); | 
|  |  | 
|  | #endif /* __PERF_STREAM_H */ |