Messages in this thread | | | Date | Sat, 8 Aug 2015 19:40:32 +0200 | From | Jiri Olsa <> | Subject | Re: [PATCH 2/4] perf, tools, stat: Abstract stat metrics printing |
| |
On Tue, Aug 04, 2015 at 02:41:11AM +0200, Andi Kleen wrote: > > > > because we already need to make the print_metric callback global, > > would it be better to make this struct global, having all the > > needed callbacks defined within? something like: > > It's actually not global, but static. > > I skipped this change. After some other changes there is only > a single function call with these arguments left, so it's not > an issue to pass it around.
hum, I dont understand.. I can se the same code in the new version:
+typedef void (*print_metric_t)(void *ctx, const char *color, const char *unit, + const char *fmt, double val); + void perf_stat__reset_shadow_stats(void); void perf_stat__update_shadow_stats(struct perf_evsel *counter, u64 *count, int cpu); -void perf_stat__print_shadow_stats(FILE *out, struct perf_evsel *evsel, - double avg, int cpu, enum aggr_mode aggr); +void perf_stat__print_shadow_stats(struct perf_evsel *evsel, + double avg, int cpu, + print_metric_t print_metric, + void (*new_line)(void *ctx), + void *ctx);
both:
print_metric_t print_metric void (*new_line)(void *ctx)
are still there.. what single function call did you mean?
jirka
| |