diff options
| author | Jiri Olsa <jolsa@kernel.org> | 2016-01-18 04:24:23 -0500 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-02-03 10:24:19 -0500 |
| commit | f0786af536bb0ba54cb516eee493af03cefdbaa3 (patch) | |
| tree | bf6fd743f830dcfbbf88c0995500cbce8e90fd08 | |
| parent | 5b65855e20348a9e2772a1cb7c1e6ab477859ba6 (diff) | |
perf hists: Introduce hists__for_each_format macro
With the hist object having the perf_hpp_list we can now iterate output
format entries based in the hists object. Adding hists__for_each_format
macro to do that.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1453109064-1026-26-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
| -rw-r--r-- | tools/perf/ui/browsers/hists.c | 8 | ||||
| -rw-r--r-- | tools/perf/ui/gtk/hists.c | 6 | ||||
| -rw-r--r-- | tools/perf/ui/hist.c | 2 | ||||
| -rw-r--r-- | tools/perf/ui/stdio/hist.c | 8 | ||||
| -rw-r--r-- | tools/perf/util/hist.h | 3 |
5 files changed, 15 insertions, 12 deletions
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index df0aedfaea75..3a1e0965a8fd 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c | |||
| @@ -1095,7 +1095,7 @@ static int hist_browser__show_entry(struct hist_browser *browser, | |||
| 1095 | 1095 | ||
| 1096 | hist_browser__gotorc(browser, row, 0); | 1096 | hist_browser__gotorc(browser, row, 0); |
| 1097 | 1097 | ||
| 1098 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 1098 | hists__for_each_format(browser->hists, fmt) { |
| 1099 | if (perf_hpp__should_skip(fmt, entry->hists) || | 1099 | if (perf_hpp__should_skip(fmt, entry->hists) || |
| 1100 | column++ < browser->b.horiz_scroll) | 1100 | column++ < browser->b.horiz_scroll) |
| 1101 | continue; | 1101 | continue; |
| @@ -1175,7 +1175,7 @@ static int hists_browser__scnprintf_headers(struct hist_browser *browser, char * | |||
| 1175 | return ret; | 1175 | return ret; |
| 1176 | } | 1176 | } |
| 1177 | 1177 | ||
| 1178 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 1178 | hists__for_each_format(browser->hists, fmt) { |
| 1179 | if (perf_hpp__should_skip(fmt, hists) || column++ < browser->b.horiz_scroll) | 1179 | if (perf_hpp__should_skip(fmt, hists) || column++ < browser->b.horiz_scroll) |
| 1180 | continue; | 1180 | continue; |
| 1181 | 1181 | ||
| @@ -1441,7 +1441,7 @@ static int hist_browser__fprintf_entry(struct hist_browser *browser, | |||
| 1441 | if (symbol_conf.use_callchain) | 1441 | if (symbol_conf.use_callchain) |
| 1442 | printed += fprintf(fp, "%c ", folded_sign); | 1442 | printed += fprintf(fp, "%c ", folded_sign); |
| 1443 | 1443 | ||
| 1444 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 1444 | hists__for_each_format(browser->hists, fmt) { |
| 1445 | if (perf_hpp__should_skip(fmt, he->hists)) | 1445 | if (perf_hpp__should_skip(fmt, he->hists)) |
| 1446 | continue; | 1446 | continue; |
| 1447 | 1447 | ||
| @@ -2104,7 +2104,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events, | |||
| 2104 | memset(options, 0, sizeof(options)); | 2104 | memset(options, 0, sizeof(options)); |
| 2105 | memset(actions, 0, sizeof(actions)); | 2105 | memset(actions, 0, sizeof(actions)); |
| 2106 | 2106 | ||
| 2107 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 2107 | hists__for_each_format(browser->hists, fmt) { |
| 2108 | perf_hpp__reset_width(fmt, hists); | 2108 | perf_hpp__reset_width(fmt, hists); |
| 2109 | /* | 2109 | /* |
| 2110 | * This is done just once, and activates the horizontal scrolling | 2110 | * This is done just once, and activates the horizontal scrolling |
diff --git a/tools/perf/ui/gtk/hists.c b/tools/perf/ui/gtk/hists.c index eca5151f91d7..32cc38a5b57f 100644 --- a/tools/perf/ui/gtk/hists.c +++ b/tools/perf/ui/gtk/hists.c | |||
| @@ -306,7 +306,7 @@ static void perf_gtk__show_hists(GtkWidget *window, struct hists *hists, | |||
| 306 | 306 | ||
| 307 | nr_cols = 0; | 307 | nr_cols = 0; |
| 308 | 308 | ||
| 309 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) | 309 | hists__for_each_format(hists, fmt) |
| 310 | col_types[nr_cols++] = G_TYPE_STRING; | 310 | col_types[nr_cols++] = G_TYPE_STRING; |
| 311 | 311 | ||
| 312 | store = gtk_tree_store_newv(nr_cols, col_types); | 312 | store = gtk_tree_store_newv(nr_cols, col_types); |
| @@ -317,7 +317,7 @@ static void perf_gtk__show_hists(GtkWidget *window, struct hists *hists, | |||
| 317 | 317 | ||
| 318 | col_idx = 0; | 318 | col_idx = 0; |
| 319 | 319 | ||
| 320 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 320 | hists__for_each_format(hists, fmt) { |
| 321 | if (perf_hpp__should_skip(fmt, hists)) | 321 | if (perf_hpp__should_skip(fmt, hists)) |
| 322 | continue; | 322 | continue; |
| 323 | 323 | ||
| @@ -367,7 +367,7 @@ static void perf_gtk__show_hists(GtkWidget *window, struct hists *hists, | |||
| 367 | 367 | ||
| 368 | col_idx = 0; | 368 | col_idx = 0; |
| 369 | 369 | ||
| 370 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 370 | hists__for_each_format(hists, fmt) { |
| 371 | if (perf_hpp__should_skip(fmt, h->hists)) | 371 | if (perf_hpp__should_skip(fmt, h->hists)) |
| 372 | continue; | 372 | continue; |
| 373 | 373 | ||
diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c index 8075d4cc54a8..1ba4117d9c2d 100644 --- a/tools/perf/ui/hist.c +++ b/tools/perf/ui/hist.c | |||
| @@ -622,7 +622,7 @@ unsigned int hists__sort_list_width(struct hists *hists) | |||
| 622 | bool first = true; | 622 | bool first = true; |
| 623 | struct perf_hpp dummy_hpp; | 623 | struct perf_hpp dummy_hpp; |
| 624 | 624 | ||
| 625 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 625 | hists__for_each_format(hists, fmt) { |
| 626 | if (perf_hpp__should_skip(fmt, hists)) | 626 | if (perf_hpp__should_skip(fmt, hists)) |
| 627 | continue; | 627 | continue; |
| 628 | 628 | ||
diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c index 83e0bf2ab986..1a6e8f7f38c4 100644 --- a/tools/perf/ui/stdio/hist.c +++ b/tools/perf/ui/stdio/hist.c | |||
| @@ -384,7 +384,7 @@ static int hist_entry__snprintf(struct hist_entry *he, struct perf_hpp *hpp) | |||
| 384 | if (symbol_conf.exclude_other && !he->parent) | 384 | if (symbol_conf.exclude_other && !he->parent) |
| 385 | return 0; | 385 | return 0; |
| 386 | 386 | ||
| 387 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 387 | hists__for_each_format(he->hists, fmt) { |
| 388 | if (perf_hpp__should_skip(fmt, he->hists)) | 388 | if (perf_hpp__should_skip(fmt, he->hists)) |
| 389 | continue; | 389 | continue; |
| 390 | 390 | ||
| @@ -453,7 +453,7 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, | |||
| 453 | 453 | ||
| 454 | init_rem_hits(); | 454 | init_rem_hits(); |
| 455 | 455 | ||
| 456 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) | 456 | hists__for_each_format(hists, fmt) |
| 457 | perf_hpp__reset_width(fmt, hists); | 457 | perf_hpp__reset_width(fmt, hists); |
| 458 | 458 | ||
| 459 | if (symbol_conf.col_width_list_str) | 459 | if (symbol_conf.col_width_list_str) |
| @@ -464,7 +464,7 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, | |||
| 464 | 464 | ||
| 465 | fprintf(fp, "# "); | 465 | fprintf(fp, "# "); |
| 466 | 466 | ||
| 467 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 467 | hists__for_each_format(hists, fmt) { |
| 468 | if (perf_hpp__should_skip(fmt, hists)) | 468 | if (perf_hpp__should_skip(fmt, hists)) |
| 469 | continue; | 469 | continue; |
| 470 | 470 | ||
| @@ -488,7 +488,7 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, | |||
| 488 | 488 | ||
| 489 | fprintf(fp, "# "); | 489 | fprintf(fp, "# "); |
| 490 | 490 | ||
| 491 | perf_hpp_list__for_each_format(&perf_hpp_list, fmt) { | 491 | hists__for_each_format(hists, fmt) { |
| 492 | unsigned int i; | 492 | unsigned int i; |
| 493 | 493 | ||
| 494 | if (perf_hpp__should_skip(fmt, hists)) | 494 | if (perf_hpp__should_skip(fmt, hists)) |
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h index b296ff5b9683..bc900448e36f 100644 --- a/tools/perf/util/hist.h +++ b/tools/perf/util/hist.h | |||
| @@ -261,6 +261,9 @@ static inline void perf_hpp__register_sort_field(struct perf_hpp_fmt *format) | |||
| 261 | #define perf_hpp_list__for_each_sort_list_safe(_list, format, tmp) \ | 261 | #define perf_hpp_list__for_each_sort_list_safe(_list, format, tmp) \ |
| 262 | list_for_each_entry_safe(format, tmp, &(_list)->sorts, sort_list) | 262 | list_for_each_entry_safe(format, tmp, &(_list)->sorts, sort_list) |
| 263 | 263 | ||
| 264 | #define hists__for_each_format(hists, format) \ | ||
| 265 | perf_hpp_list__for_each_format((hists)->hpp_list, fmt) | ||
| 266 | |||
| 264 | extern struct perf_hpp_fmt perf_hpp__format[]; | 267 | extern struct perf_hpp_fmt perf_hpp__format[]; |
| 265 | 268 | ||
| 266 | enum { | 269 | enum { |
