diff options
| -rw-r--r-- | tools/perf/builtin-annotate.c | 2 | ||||
| -rw-r--r-- | tools/perf/builtin-buildid-list.c | 2 | ||||
| -rw-r--r-- | tools/perf/builtin-report.c | 2 | ||||
| -rw-r--r-- | tools/perf/builtin-top.c | 2 | ||||
| -rw-r--r-- | tools/perf/util/session.h | 13 | ||||
| -rw-r--r-- | tools/perf/util/symbol.c | 22 | ||||
| -rw-r--r-- | tools/perf/util/symbol.h | 5 | 
7 files changed, 33 insertions, 15 deletions
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index 986b2efcef2..b57dbcf62af 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c @@ -571,7 +571,7 @@ static int __cmd_annotate(void)  		perf_session__fprintf(session, stdout);  	if (verbose > 2) -		dsos__fprintf(&session->machines, stdout); +		perf_session__fprintf_dsos(session, stdout);  	perf_session__collapse_resort(&session->hists);  	perf_session__output_resort(&session->hists, session->event_total[0]); diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c index b4a265ae3b9..7dc3b2e7a5e 100644 --- a/tools/perf/builtin-buildid-list.c +++ b/tools/perf/builtin-buildid-list.c @@ -46,7 +46,7 @@ static int __cmd_buildid_list(void)  	if (with_hits)  		perf_session__process_events(session, &build_id__mark_dso_hit_ops); -	dsos__fprintf_buildid(&session->machines, stdout, with_hits); +	perf_session__fprintf_dsos_buildid(session, stdout, with_hits);  	perf_session__delete(session);  	return err; diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 49cc367d8c3..f1b46eb7ef9 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -313,7 +313,7 @@ static int __cmd_report(void)  		perf_session__fprintf(session, stdout);  	if (verbose > 2) -		dsos__fprintf(&session->machines, stdout); +		perf_session__fprintf_dsos(session, stdout);  	next = rb_first(&session->stats_by_id);  	while (next) { diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index c390f340b03..d95281f588d 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -854,7 +854,7 @@ static void handle_keypress(struct perf_session *session, int c)  		case 'Q':  			printf("exiting.\n");  			if (dump_symtab) -				dsos__fprintf(&session->machines, stderr); +				perf_session__fprintf_dsos(session, stderr);  			exit(0);  		case 's':  			prompt_symbol(&sym_filter_entry, "Enter details symbol"); diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index 71252723a17..61ca92e58ad 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h @@ -127,4 +127,17 @@ void perf_session__process_machines(struct perf_session *self,  {  	return machines__process(&self->machines, process, self);  } + +static inline +size_t perf_session__fprintf_dsos(struct perf_session *self, FILE *fp) +{ +	return machines__fprintf_dsos(&self->machines, fp); +} + +static inline +size_t perf_session__fprintf_dsos_buildid(struct perf_session *self, FILE *fp, +					  bool with_hits) +{ +	return machines__fprintf_dsos_buildid(&self->machines, fp, with_hits); +}  #endif /* __PERF_SESSION_H */ diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 12359c37240..caa890f8e2c 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -1889,26 +1889,32 @@ struct dso *__dsos__findnew(struct list_head *head, const char *name)  	return dso;  } -static void __dsos__fprintf(struct list_head *head, FILE *fp) +static size_t __dsos__fprintf(struct list_head *head, FILE *fp)  {  	struct dso *pos; +	size_t ret = 0;  	list_for_each_entry(pos, head, node) {  		int i;  		for (i = 0; i < MAP__NR_TYPES; ++i) -			dso__fprintf(pos, i, fp); +			ret += dso__fprintf(pos, i, fp);  	} + +	return ret;  } -void dsos__fprintf(struct rb_root *machines, FILE *fp) +size_t machines__fprintf_dsos(struct rb_root *self, FILE *fp)  {  	struct rb_node *nd; +	size_t ret = 0; -	for (nd = rb_first(machines); nd; nd = rb_next(nd)) { +	for (nd = rb_first(self); nd; nd = rb_next(nd)) {  		struct machine *pos = rb_entry(nd, struct machine, rb_node); -		__dsos__fprintf(&pos->kernel_dsos, fp); -		__dsos__fprintf(&pos->user_dsos, fp); +		ret += __dsos__fprintf(&pos->kernel_dsos, fp); +		ret += __dsos__fprintf(&pos->user_dsos, fp);  	} + +	return ret;  }  static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp, @@ -1926,12 +1932,12 @@ static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp,  	return ret;  } -size_t dsos__fprintf_buildid(struct rb_root *machines, FILE *fp, bool with_hits) +size_t machines__fprintf_dsos_buildid(struct rb_root *self, FILE *fp, bool with_hits)  {  	struct rb_node *nd;  	size_t ret = 0; -	for (nd = rb_first(machines); nd; nd = rb_next(nd)) { +	for (nd = rb_first(self); nd; nd = rb_next(nd)) {  		struct machine *pos = rb_entry(nd, struct machine, rb_node);  		ret += __dsos__fprintf_buildid(&pos->kernel_dsos, fp, with_hits);  		ret += __dsos__fprintf_buildid(&pos->user_dsos, fp, with_hits); diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h index 37b717b861c..2cec6a10716 100644 --- a/tools/perf/util/symbol.h +++ b/tools/perf/util/symbol.h @@ -162,9 +162,8 @@ int dso__load_vmlinux_path(struct dso *self, struct map *map,  			   symbol_filter_t filter);  int dso__load_kallsyms(struct dso *self, const char *filename, struct map *map,  		       symbol_filter_t filter); -void dsos__fprintf(struct rb_root *kerninfo_root, FILE *fp); -size_t dsos__fprintf_buildid(struct rb_root *kerninfo_root, -		FILE *fp, bool with_hits); +size_t machines__fprintf_dsos(struct rb_root *self, FILE *fp); +size_t machines__fprintf_dsos_buildid(struct rb_root *self, FILE *fp, bool with_hits);  size_t dso__fprintf_buildid(struct dso *self, FILE *fp);  size_t dso__fprintf(struct dso *self, enum map_type type, FILE *fp);  |