diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2014-10-09 15:16:00 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2014-10-14 16:32:52 -0400 |
commit | a635fc511e05774298153e3ddfef7c4cd51a1bb4 (patch) | |
tree | 1e6fc65518fb3dc6ebab1ab60663812b14caae5d /tools/perf/util/hist.h | |
parent | 8f651eae186f4dfb1740988623c83ba03dcf3a76 (diff) |
perf tools: Remove hists from evsel
Now tools that deals want to have an hists per evsel need to call
hists__init() before creating any evsels, which can be as early as when
parsing the command line, so do it before calling parse_options().
The current tools using hists/hist_entries are report, top and annotate,
change them to request per evsel hists.
This is in preparation for making evsels usable by 3rd party tools, that
not necessarily live in perf's source code repository.
Acked-by: Borislav Petkov <bp@suse.de>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jean Pihet <jean.pihet@linaro.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-usjx2la743f10ippj7p1b20x@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/hist.h')
-rw-r--r-- | tools/perf/util/hist.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h index ebfc25886cac..d0ef9a19a744 100644 --- a/tools/perf/util/hist.h +++ b/tools/perf/util/hist.h | |||
@@ -4,6 +4,7 @@ | |||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <pthread.h> | 5 | #include <pthread.h> |
6 | #include "callchain.h" | 6 | #include "callchain.h" |
7 | #include "evsel.h" | ||
7 | #include "header.h" | 8 | #include "header.h" |
8 | #include "color.h" | 9 | #include "color.h" |
9 | #include "ui/progress.h" | 10 | #include "ui/progress.h" |
@@ -158,6 +159,25 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *he); | |||
158 | void hists__match(struct hists *leader, struct hists *other); | 159 | void hists__match(struct hists *leader, struct hists *other); |
159 | int hists__link(struct hists *leader, struct hists *other); | 160 | int hists__link(struct hists *leader, struct hists *other); |
160 | 161 | ||
162 | struct hists_evsel { | ||
163 | struct perf_evsel evsel; | ||
164 | struct hists hists; | ||
165 | }; | ||
166 | |||
167 | static inline struct perf_evsel *hists_to_evsel(struct hists *hists) | ||
168 | { | ||
169 | struct hists_evsel *hevsel = container_of(hists, struct hists_evsel, hists); | ||
170 | return &hevsel->evsel; | ||
171 | } | ||
172 | |||
173 | static inline struct hists *evsel__hists(struct perf_evsel *evsel) | ||
174 | { | ||
175 | struct hists_evsel *hevsel = (struct hists_evsel *)evsel; | ||
176 | return &hevsel->hists; | ||
177 | } | ||
178 | |||
179 | int hists__init(void); | ||
180 | |||
161 | struct perf_hpp { | 181 | struct perf_hpp { |
162 | char *buf; | 182 | char *buf; |
163 | size_t size; | 183 | size_t size; |