diff options
author | Jiri Olsa <jolsa@kernel.org> | 2016-06-14 14:19:15 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-06-15 09:46:02 -0400 |
commit | 5c854f3793c03539dcca48d8a89da9267127e436 (patch) | |
tree | ab3a63c738506410167c123a94d3577db2efb9e6 /tools/perf/ui/stdio/hist.c | |
parent | 36592ebb73782aa2304a71f9a3b586566c2892ee (diff) |
perf stdio: Separate hierarchy headers output
Introducing hists__fprintf_hierarchy_headers function to separate
hierarchy headers display code.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
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/1465928361-2442-6-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/ui/stdio/hist.c')
-rw-r--r-- | tools/perf/ui/stdio/hist.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c index 91353ca16d04..7498ce25bce3 100644 --- a/tools/perf/ui/stdio/hist.c +++ b/tools/perf/ui/stdio/hist.c | |||
@@ -622,10 +622,25 @@ static int print_hierarchy_header(struct hists *hists, struct perf_hpp *hpp, | |||
622 | return 2; | 622 | return 2; |
623 | } | 623 | } |
624 | 624 | ||
625 | static int | ||
626 | hists__fprintf_hierarchy_headers(struct hists *hists, | ||
627 | struct perf_hpp *hpp, | ||
628 | FILE *fp) | ||
629 | { | ||
630 | struct perf_hpp_list_node *fmt_node; | ||
631 | struct perf_hpp_fmt *fmt; | ||
632 | |||
633 | list_for_each_entry(fmt_node, &hists->hpp_formats, list) { | ||
634 | perf_hpp_list__for_each_format(&fmt_node->hpp, fmt) | ||
635 | perf_hpp__reset_width(fmt, hists); | ||
636 | } | ||
637 | |||
638 | return print_hierarchy_header(hists, hpp, symbol_conf.field_sep, fp); | ||
639 | } | ||
640 | |||
625 | static int hists__fprintf_headers(struct hists *hists, FILE *fp) | 641 | static int hists__fprintf_headers(struct hists *hists, FILE *fp) |
626 | { | 642 | { |
627 | struct perf_hpp_fmt *fmt; | 643 | struct perf_hpp_fmt *fmt; |
628 | struct perf_hpp_list_node *fmt_node; | ||
629 | unsigned int width; | 644 | unsigned int width; |
630 | const char *sep = symbol_conf.field_sep; | 645 | const char *sep = symbol_conf.field_sep; |
631 | char bf[96]; | 646 | char bf[96]; |
@@ -637,13 +652,8 @@ static int hists__fprintf_headers(struct hists *hists, FILE *fp) | |||
637 | 652 | ||
638 | fprintf(fp, "# "); | 653 | fprintf(fp, "# "); |
639 | 654 | ||
640 | if (symbol_conf.report_hierarchy) { | 655 | if (symbol_conf.report_hierarchy) |
641 | list_for_each_entry(fmt_node, &hists->hpp_formats, list) { | 656 | return hists__fprintf_hierarchy_headers(hists, &dummy_hpp, fp); |
642 | perf_hpp_list__for_each_format(&fmt_node->hpp, fmt) | ||
643 | perf_hpp__reset_width(fmt, hists); | ||
644 | } | ||
645 | return print_hierarchy_header(hists, &dummy_hpp, sep, fp); | ||
646 | } | ||
647 | 657 | ||
648 | hists__for_each_format(hists, fmt) { | 658 | hists__for_each_format(hists, fmt) { |
649 | if (perf_hpp__should_skip(fmt, hists)) | 659 | if (perf_hpp__should_skip(fmt, hists)) |