perf hists browser: Display columns header text on 'H' press
tip-bot for Jiri Olsa
merge botCommit-ID: 81a888fea2cfd727052926e95510c11981d9b1c2 Gitweb: http://git.kernel.org/tip/81a888fea2cfd727052926e95510c11981d9b1c2 Author: Jiri Olsa <[email protected]> AuthorDate: Sat, 14 Jun 2014 15:44:52 +0200 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 7 Jul 2014 12:36:55 -0300
perf hists browser: Display columns header text on 'H' press
Displaying columns header text whenever 'H' is pressed, and hiding it on on another press.
Signed-off-by Jiri Olsa <[email protected]>
Cc Arnaldo Carvalho de Melo <[email protected]>
Cc Corey Ashford <[email protected]>
Cc David Ahern <[email protected]>
Cc Frederic Weisbecker <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Paul Mackerras <[email protected]>
Cc Peter Zijlstra <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/ui/browsers/hists.c | 47 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-)
tools/perf/ui/browsers/hists.c +45 -2
@@ -822,11 +822,54 @@ static int hist_browser__show_entry(struct hist_browser *browser,return printed; } +static int advance_hpp_check (struct perf_hpp *hpp,int inc) +{ +advance_hpp (hpp, inc); +return hpp->size <=0 ; +} + +static int hists__scnprintf_headers (char *buf,size_t size,struct hists *hists) +{ +struct perf_hpp dummy_hpp = { + .buf = buf, + .size = size, + }; +struct perf_hpp_fmt *fmt; +size_t ret =0 ; + +if (symbol_conf.use_callchain) { + ret =scnprintf (buf, size," " ); +if (advance_hpp_check (&dummy_hpp, ret)) +return ret; + } + +perf_hpp__for_each_format (fmt) { +if (perf_hpp__should_skip (fmt)) +continue ; + +/* We need to add the length of the columns header. */ +perf_hpp__reset_width (fmt, hists); + + ret = fmt->header (fmt, &dummy_hpp,hists_to_evsel (hists)); +if (advance_hpp_check (&dummy_hpp, ret)) +break ; + + ret =scnprintf (dummy_hpp.buf, dummy_hpp.size," " ); +if (advance_hpp_check (&dummy_hpp, ret)) +break ; + } + +return ret; +} +static void hist_browser__show_headers (struct hist_browser *browser) { +char headers[1024 ]; + +hists__scnprintf_headers (headers,sizeof (headers), browser->hists);ui_browser__gotorc (&browser->b,0 ,0 );ui_browser__set_color (&browser->b,HE_COLORSET_ROOT ); -slsmg_write_nstring (" " , browser->b.width +1 ); +slsmg_write_nstring (headers, browser->b.width +1 ); }static void ui_browser__hists_init_top (struct ui_browser *browser)
@@ -1241,7 +1284,7 @@ static struct hist_browser *hist_browser__new(struct hists *hists) browser->b.refresh_dimensions = hist_browser__refresh_dimensions; browser->b.seek = ui_browser__hists_seek; browser->b.use_navkeypressed = true; - browser->show_headers = false; + browser->show_headers = true; }return browser;