aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util')
-rw-r--r--tools/perf/util/session.h13
-rw-r--r--tools/perf/util/symbol.c22
-rw-r--r--tools/perf/util/symbol.h5
3 files changed, 29 insertions, 11 deletions
diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h
index 71252723a17d..61ca92e58ad4 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,
127{ 127{
128 return machines__process(&self->machines, process, self); 128 return machines__process(&self->machines, process, self);
129} 129}
130
131static inline
132size_t perf_session__fprintf_dsos(struct perf_session *self, FILE *fp)
133{
134 return machines__fprintf_dsos(&self->machines, fp);
135}
136
137static inline
138size_t perf_session__fprintf_dsos_buildid(struct perf_session *self, FILE *fp,
139 bool with_hits)
140{
141 return machines__fprintf_dsos_buildid(&self->machines, fp, with_hits);
142}
130#endif /* __PERF_SESSION_H */ 143#endif /* __PERF_SESSION_H */
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 12359c37240c..caa890f8e2c0 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)
1889 return dso; 1889 return dso;
1890} 1890}
1891 1891
1892static void __dsos__fprintf(struct list_head *head, FILE *fp) 1892static size_t __dsos__fprintf(struct list_head *head, FILE *fp)
1893{ 1893{
1894 struct dso *pos; 1894 struct dso *pos;
1895 size_t ret = 0;
1895 1896
1896 list_for_each_entry(pos, head, node) { 1897 list_for_each_entry(pos, head, node) {
1897 int i; 1898 int i;
1898 for (i = 0; i < MAP__NR_TYPES; ++i) 1899 for (i = 0; i < MAP__NR_TYPES; ++i)
1899 dso__fprintf(pos, i, fp); 1900 ret += dso__fprintf(pos, i, fp);
1900 } 1901 }
1902
1903 return ret;
1901} 1904}
1902 1905
1903void dsos__fprintf(struct rb_root *machines, FILE *fp) 1906size_t machines__fprintf_dsos(struct rb_root *self, FILE *fp)
1904{ 1907{
1905 struct rb_node *nd; 1908 struct rb_node *nd;
1909 size_t ret = 0;
1906 1910
1907 for (nd = rb_first(machines); nd; nd = rb_next(nd)) { 1911 for (nd = rb_first(self); nd; nd = rb_next(nd)) {
1908 struct machine *pos = rb_entry(nd, struct machine, rb_node); 1912 struct machine *pos = rb_entry(nd, struct machine, rb_node);
1909 __dsos__fprintf(&pos->kernel_dsos, fp); 1913 ret += __dsos__fprintf(&pos->kernel_dsos, fp);
1910 __dsos__fprintf(&pos->user_dsos, fp); 1914 ret += __dsos__fprintf(&pos->user_dsos, fp);
1911 } 1915 }
1916
1917 return ret;
1912} 1918}
1913 1919
1914static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp, 1920static 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,
1926 return ret; 1932 return ret;
1927} 1933}
1928 1934
1929size_t dsos__fprintf_buildid(struct rb_root *machines, FILE *fp, bool with_hits) 1935size_t machines__fprintf_dsos_buildid(struct rb_root *self, FILE *fp, bool with_hits)
1930{ 1936{
1931 struct rb_node *nd; 1937 struct rb_node *nd;
1932 size_t ret = 0; 1938 size_t ret = 0;
1933 1939
1934 for (nd = rb_first(machines); nd; nd = rb_next(nd)) { 1940 for (nd = rb_first(self); nd; nd = rb_next(nd)) {
1935 struct machine *pos = rb_entry(nd, struct machine, rb_node); 1941 struct machine *pos = rb_entry(nd, struct machine, rb_node);
1936 ret += __dsos__fprintf_buildid(&pos->kernel_dsos, fp, with_hits); 1942 ret += __dsos__fprintf_buildid(&pos->kernel_dsos, fp, with_hits);
1937 ret += __dsos__fprintf_buildid(&pos->user_dsos, fp, with_hits); 1943 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 37b717b861c4..2cec6a10716a 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,
162 symbol_filter_t filter); 162 symbol_filter_t filter);
163int dso__load_kallsyms(struct dso *self, const char *filename, struct map *map, 163int dso__load_kallsyms(struct dso *self, const char *filename, struct map *map,
164 symbol_filter_t filter); 164 symbol_filter_t filter);
165void dsos__fprintf(struct rb_root *kerninfo_root, FILE *fp); 165size_t machines__fprintf_dsos(struct rb_root *self, FILE *fp);
166size_t dsos__fprintf_buildid(struct rb_root *kerninfo_root, 166size_t machines__fprintf_dsos_buildid(struct rb_root *self, FILE *fp, bool with_hits);
167 FILE *fp, bool with_hits);
168 167
169size_t dso__fprintf_buildid(struct dso *self, FILE *fp); 168size_t dso__fprintf_buildid(struct dso *self, FILE *fp);
170size_t dso__fprintf(struct dso *self, enum map_type type, FILE *fp); 169size_t dso__fprintf(struct dso *self, enum map_type type, FILE *fp);