18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef __PERF_STREAM_H 38c2ecf20Sopenharmony_ci#define __PERF_STREAM_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#include "callchain.h" 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cistruct stream { 88c2ecf20Sopenharmony_ci struct callchain_node *cnode; 98c2ecf20Sopenharmony_ci struct callchain_node *pair_cnode; 108c2ecf20Sopenharmony_ci}; 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cistruct evsel_streams { 138c2ecf20Sopenharmony_ci struct stream *streams; 148c2ecf20Sopenharmony_ci int nr_streams_max; 158c2ecf20Sopenharmony_ci int nr_streams; 168c2ecf20Sopenharmony_ci int evsel_idx; 178c2ecf20Sopenharmony_ci u64 streams_hits; 188c2ecf20Sopenharmony_ci}; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_cistruct evlist_streams { 218c2ecf20Sopenharmony_ci struct evsel_streams *ev_streams; 228c2ecf20Sopenharmony_ci int nr_evsel; 238c2ecf20Sopenharmony_ci}; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_cistruct evlist; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_civoid evlist_streams__delete(struct evlist_streams *els); 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_cistruct evlist_streams *evlist__create_streams(struct evlist *evlist, 308c2ecf20Sopenharmony_ci int nr_streams_max); 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_cistruct evsel_streams *evsel_streams__entry(struct evlist_streams *els, 338c2ecf20Sopenharmony_ci int evsel_idx); 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_civoid evsel_streams__match(struct evsel_streams *es_base, 368c2ecf20Sopenharmony_ci struct evsel_streams *es_pair); 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_civoid evsel_streams__report(struct evsel_streams *es_base, 398c2ecf20Sopenharmony_ci struct evsel_streams *es_pair); 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci#endif /* __PERF_STREAM_H */ 42