diff options
Diffstat (limited to 'tools/perf/ui/stdio/hist.c')
-rw-r--r-- | tools/perf/ui/stdio/hist.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c index f0ee204f99bb..ff1f60cf442e 100644 --- a/tools/perf/ui/stdio/hist.c +++ b/tools/perf/ui/stdio/hist.c | |||
@@ -3,6 +3,7 @@ | |||
3 | #include "../../util/util.h" | 3 | #include "../../util/util.h" |
4 | #include "../../util/hist.h" | 4 | #include "../../util/hist.h" |
5 | #include "../../util/sort.h" | 5 | #include "../../util/sort.h" |
6 | #include "../../util/evsel.h" | ||
6 | 7 | ||
7 | 8 | ||
8 | static size_t callchain__fprintf_left_margin(FILE *fp, int left_margin) | 9 | static size_t callchain__fprintf_left_margin(FILE *fp, int left_margin) |
@@ -335,17 +336,19 @@ static int hist_entry__fprintf(struct hist_entry *he, size_t size, | |||
335 | size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, | 336 | size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, |
336 | int max_cols, FILE *fp) | 337 | int max_cols, FILE *fp) |
337 | { | 338 | { |
339 | struct perf_hpp_fmt *fmt; | ||
338 | struct sort_entry *se; | 340 | struct sort_entry *se; |
339 | struct rb_node *nd; | 341 | struct rb_node *nd; |
340 | size_t ret = 0; | 342 | size_t ret = 0; |
341 | unsigned int width; | 343 | unsigned int width; |
342 | const char *sep = symbol_conf.field_sep; | 344 | const char *sep = symbol_conf.field_sep; |
343 | const char *col_width = symbol_conf.col_width_list_str; | 345 | const char *col_width = symbol_conf.col_width_list_str; |
344 | int idx, nr_rows = 0; | 346 | int nr_rows = 0; |
345 | char bf[96]; | 347 | char bf[96]; |
346 | struct perf_hpp dummy_hpp = { | 348 | struct perf_hpp dummy_hpp = { |
347 | .buf = bf, | 349 | .buf = bf, |
348 | .size = sizeof(bf), | 350 | .size = sizeof(bf), |
351 | .ptr = hists_to_evsel(hists), | ||
349 | }; | 352 | }; |
350 | bool first = true; | 353 | bool first = true; |
351 | 354 | ||
@@ -355,16 +358,14 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, | |||
355 | goto print_entries; | 358 | goto print_entries; |
356 | 359 | ||
357 | fprintf(fp, "# "); | 360 | fprintf(fp, "# "); |
358 | for (idx = 0; idx < PERF_HPP__MAX_INDEX; idx++) { | ||
359 | if (!perf_hpp__format[idx].cond) | ||
360 | continue; | ||
361 | 361 | ||
362 | perf_hpp__for_each_format(fmt) { | ||
362 | if (!first) | 363 | if (!first) |
363 | fprintf(fp, "%s", sep ?: " "); | 364 | fprintf(fp, "%s", sep ?: " "); |
364 | else | 365 | else |
365 | first = false; | 366 | first = false; |
366 | 367 | ||
367 | perf_hpp__format[idx].header(&dummy_hpp); | 368 | fmt->header(&dummy_hpp); |
368 | fprintf(fp, "%s", bf); | 369 | fprintf(fp, "%s", bf); |
369 | } | 370 | } |
370 | 371 | ||
@@ -400,18 +401,16 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, | |||
400 | first = true; | 401 | first = true; |
401 | 402 | ||
402 | fprintf(fp, "# "); | 403 | fprintf(fp, "# "); |
403 | for (idx = 0; idx < PERF_HPP__MAX_INDEX; idx++) { | ||
404 | unsigned int i; | ||
405 | 404 | ||
406 | if (!perf_hpp__format[idx].cond) | 405 | perf_hpp__for_each_format(fmt) { |
407 | continue; | 406 | unsigned int i; |
408 | 407 | ||
409 | if (!first) | 408 | if (!first) |
410 | fprintf(fp, "%s", sep ?: " "); | 409 | fprintf(fp, "%s", sep ?: " "); |
411 | else | 410 | else |
412 | first = false; | 411 | first = false; |
413 | 412 | ||
414 | width = perf_hpp__format[idx].width(&dummy_hpp); | 413 | width = fmt->width(&dummy_hpp); |
415 | for (i = 0; i < width; i++) | 414 | for (i = 0; i < width; i++) |
416 | fprintf(fp, "."); | 415 | fprintf(fp, "."); |
417 | } | 416 | } |
@@ -462,7 +461,7 @@ out: | |||
462 | return ret; | 461 | return ret; |
463 | } | 462 | } |
464 | 463 | ||
465 | size_t hists__fprintf_nr_events(struct hists *hists, FILE *fp) | 464 | size_t events_stats__fprintf(struct events_stats *stats, FILE *fp) |
466 | { | 465 | { |
467 | int i; | 466 | int i; |
468 | size_t ret = 0; | 467 | size_t ret = 0; |
@@ -470,7 +469,7 @@ size_t hists__fprintf_nr_events(struct hists *hists, FILE *fp) | |||
470 | for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) { | 469 | for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) { |
471 | const char *name; | 470 | const char *name; |
472 | 471 | ||
473 | if (hists->stats.nr_events[i] == 0) | 472 | if (stats->nr_events[i] == 0) |
474 | continue; | 473 | continue; |
475 | 474 | ||
476 | name = perf_event__name(i); | 475 | name = perf_event__name(i); |
@@ -478,7 +477,7 @@ size_t hists__fprintf_nr_events(struct hists *hists, FILE *fp) | |||
478 | continue; | 477 | continue; |
479 | 478 | ||
480 | ret += fprintf(fp, "%16s events: %10d\n", name, | 479 | ret += fprintf(fp, "%16s events: %10d\n", name, |
481 | hists->stats.nr_events[i]); | 480 | stats->nr_events[i]); |
482 | } | 481 | } |
483 | 482 | ||
484 | return ret; | 483 | return ret; |