root/tools/perf/util/stream.h
/* 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 */