perf stdio: Separate standard headers output

Introducing hists__fprintf_standard_headers function to separate
standard 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-7-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Jiri Olsa 2016-06-14 20:19:16 +02:00 committed by Arnaldo Carvalho de Melo
parent 5c854f3793
commit 7a72a2e5e6
1 changed files with 24 additions and 14 deletions

View File

@ -638,23 +638,16 @@ hists__fprintf_hierarchy_headers(struct hists *hists,
return print_hierarchy_header(hists, hpp, symbol_conf.field_sep, fp); return print_hierarchy_header(hists, hpp, symbol_conf.field_sep, fp);
} }
static int hists__fprintf_headers(struct hists *hists, FILE *fp) static int
hists__fprintf_standard_headers(struct hists *hists,
struct perf_hpp *hpp,
FILE *fp)
{ {
struct perf_hpp_fmt *fmt; struct perf_hpp_fmt *fmt;
unsigned int width; unsigned int width;
const char *sep = symbol_conf.field_sep; const char *sep = symbol_conf.field_sep;
char bf[96];
struct perf_hpp dummy_hpp = {
.buf = bf,
.size = sizeof(bf),
};
bool first = true; bool first = true;
fprintf(fp, "# ");
if (symbol_conf.report_hierarchy)
return hists__fprintf_hierarchy_headers(hists, &dummy_hpp, fp);
hists__for_each_format(hists, fmt) { hists__for_each_format(hists, fmt) {
if (perf_hpp__should_skip(fmt, hists)) if (perf_hpp__should_skip(fmt, hists))
continue; continue;
@ -664,8 +657,8 @@ static int hists__fprintf_headers(struct hists *hists, FILE *fp)
else else
first = false; first = false;
fmt->header(fmt, &dummy_hpp, hists_to_evsel(hists)); fmt->header(fmt, hpp, hists_to_evsel(hists));
fprintf(fp, "%s", bf); fprintf(fp, "%s", hpp->buf);
} }
fprintf(fp, "\n"); fprintf(fp, "\n");
@ -688,7 +681,7 @@ static int hists__fprintf_headers(struct hists *hists, FILE *fp)
else else
first = false; first = false;
width = fmt->width(fmt, &dummy_hpp, hists_to_evsel(hists)); width = fmt->width(fmt, hpp, hists_to_evsel(hists));
for (i = 0; i < width; i++) for (i = 0; i < width; i++)
fprintf(fp, "."); fprintf(fp, ".");
} }
@ -698,6 +691,23 @@ static int hists__fprintf_headers(struct hists *hists, FILE *fp)
return 3; return 3;
} }
static int hists__fprintf_headers(struct hists *hists, FILE *fp)
{
char bf[96];
struct perf_hpp dummy_hpp = {
.buf = bf,
.size = sizeof(bf),
};
fprintf(fp, "# ");
if (symbol_conf.report_hierarchy)
return hists__fprintf_hierarchy_headers(hists, &dummy_hpp, fp);
else
return hists__fprintf_standard_headers(hists, &dummy_hpp, fp);
}
size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows,
int max_cols, float min_pcnt, FILE *fp) int max_cols, float min_pcnt, FILE *fp)
{ {