Em Fri, Sep 11, 2020 at 04:03:48PM +0800, Jin Yao escreveu: > In previous patch, we have created evsel_streams array > > This patch returns the specified evsel_streams according to the > evsel_idx. > > Signed-off-by: Jin Yao <yao....@linux.intel.com> > --- > v6: > - Rebase to perf/core > > v5: > - Rebase to perf/core > > v4: > - Rename the patch from 'perf util: Return per-event callchain > streams' to 'perf util: Get the evsel_streams by evsel_idx' > > tools/perf/util/stream.c | 11 +++++++++++ > tools/perf/util/stream.h | 3 +++ > 2 files changed, 14 insertions(+) > > diff --git a/tools/perf/util/stream.c b/tools/perf/util/stream.c > index 015c1d07ce3a..7882a7f05d97 100644 > --- a/tools/perf/util/stream.c > +++ b/tools/perf/util/stream.c > @@ -146,3 +146,14 @@ struct evsel_streams *perf_evlist__create_streams(struct > evlist *evlist, > > return es; > } > + > +struct evsel_streams *evsel_streams_get(struct evsel_streams *es, > + int nr_evsel, int evsel_idx)
foo__get() is the idiom for refcount_t method to bump the refcount for 'struct foo', so please rename it to: struct evsel_streams__entry(struct evsel_streams *es, int nr_evsel, int evsel_idx) Also please consider having the array and the number of entries in 'struct evsel_streams', so that you don't have to always pass the number of entries around. > +{ > + for (int i = 0; i < nr_evsel; i++) { > + if (es[i].evsel_idx == evsel_idx) > + return &es[i]; > + } > + > + return NULL; > +} > diff --git a/tools/perf/util/stream.h b/tools/perf/util/stream.h > index c6844c5787cb..66f61d954eef 100644 > --- a/tools/perf/util/stream.h > +++ b/tools/perf/util/stream.h > @@ -20,4 +20,7 @@ struct evlist; > struct evsel_streams *perf_evlist__create_streams(struct evlist *evlist, > int nr_streams_max); > > +struct evsel_streams *evsel_streams_get(struct evsel_streams *es, > + int nr_evsel, int evsel_idx); > + > #endif /* __PERF_STREAM_H */ > -- > 2.17.1 > -- - Arnaldo