aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/ui/stdio/hist.c
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@kernel.org>2016-08-07 11:28:30 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-08-23 14:37:33 -0400
commit29659ab4e7d02c08d8f2d08db0b0f708bd8b6771 (patch)
tree797ba34474ca75fdbc80c7512f94b54411469f0f /tools/perf/ui/stdio/hist.c
parentf3705b062eafc2867eb0e9ee3502bd59564f103c (diff)
perf hists: Add support for header span
Add span argument for header callback function. The handling of this argument is completely in the hands of the callback. The only thing the caller ensures is it's zeroed on the beginning. Omitting span skipping in hierarchy headers and gtk code. The c2c code use this to span header lines based on the entries span configuration. 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/1470583710-1649-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.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c
index 9b807cbb56b1..9b65f4a6b35a 100644
--- a/tools/perf/ui/stdio/hist.c
+++ b/tools/perf/ui/stdio/hist.c
@@ -549,7 +549,7 @@ static int print_hierarchy_header(struct hists *hists, struct perf_hpp *hpp,
549 struct perf_hpp_list_node, list); 549 struct perf_hpp_list_node, list);
550 550
551 perf_hpp_list__for_each_format(&fmt_node->hpp, fmt) { 551 perf_hpp_list__for_each_format(&fmt_node->hpp, fmt) {
552 fmt->header(fmt, hpp, hists, 0); 552 fmt->header(fmt, hpp, hists, 0, NULL);
553 fprintf(fp, "%s%s", hpp->buf, sep ?: " "); 553 fprintf(fp, "%s%s", hpp->buf, sep ?: " ");
554 } 554 }
555 555
@@ -569,7 +569,7 @@ static int print_hierarchy_header(struct hists *hists, struct perf_hpp *hpp,
569 header_width += fprintf(fp, "+"); 569 header_width += fprintf(fp, "+");
570 first_col = false; 570 first_col = false;
571 571
572 fmt->header(fmt, hpp, hists, 0); 572 fmt->header(fmt, hpp, hists, 0, NULL);
573 573
574 header_width += fprintf(fp, "%s", trim(hpp->buf)); 574 header_width += fprintf(fp, "%s", trim(hpp->buf));
575 } 575 }
@@ -645,18 +645,21 @@ static void fprintf_line(struct hists *hists, struct perf_hpp *hpp,
645 struct perf_hpp_fmt *fmt; 645 struct perf_hpp_fmt *fmt;
646 const char *sep = symbol_conf.field_sep; 646 const char *sep = symbol_conf.field_sep;
647 bool first = true; 647 bool first = true;
648 int span = 0;
648 649
649 hists__for_each_format(hists, fmt) { 650 hists__for_each_format(hists, fmt) {
650 if (perf_hpp__should_skip(fmt, hists)) 651 if (perf_hpp__should_skip(fmt, hists))
651 continue; 652 continue;
652 653
653 if (!first) 654 if (!first && !span)
654 fprintf(fp, "%s", sep ?: " "); 655 fprintf(fp, "%s", sep ?: " ");
655 else 656 else
656 first = false; 657 first = false;
657 658
658 fmt->header(fmt, hpp, hists, line); 659 fmt->header(fmt, hpp, hists, line, &span);
659 fprintf(fp, "%s", hpp->buf); 660
661 if (!span)
662 fprintf(fp, "%s", hpp->buf);
660 } 663 }
661} 664}
662 665