perf symbols: Introduce method to iterate symbols ordered by name
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 18bd726418f2a2e12f85104f0f4b5d5d077e1752 Gitweb: http://git.kernel.org/tip/18bd726418f2a2e12f85104f0f4b5d5d077e1752 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Fri, 16 Jan 2015 15:39:53 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Wed, 21 Jan 2015 10:05:54 -0300
perf symbols: Introduce method to iterate symbols ordered by name
Given a symbol, go to the next entry in a rbtree sorted by symbol name.
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Masami Hiramatsu <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/util/symbol.c | 11 +++++++++++ tools/perf/util/symbol.h | 1 + 2 files changed, 12 insertions(+)
tools/perf/util/symbol.c +11 -0
@@ -450,6 +450,17 @@ struct symbol *dso__next_symbol(struct symbol *sym)return symbols__next (sym); } +struct symbol *symbol__next_by_name (struct symbol *sym) +{ + struct symbol_name_rb_node *s = container_of(sym, struct symbol_name_rb_node, sym); +struct rb_node *n =rb_next (&s->rb_node); + + return n ? &rb_entry(n, struct symbol_name_rb_node, rb_node)->sym : NULL; +} + +/* +* Teturns first symbol that matched with @name. +*/ struct symbol *dso__find_symbol_by_name (struct dso *dso,enum map_type type,const char *name) {
tools/perf/util/symbol.h +1 -0
@@ -231,6 +231,7 @@ struct symbol *dso__find_symbol(struct dso *dso, enum map_type type, u64 addr);struct symbol *dso__find_symbol_by_name (struct dso *dso,enum map_type type,const char *name); +struct symbol *symbol__next_by_name (struct symbol *sym);struct symbol *dso__first_symbol (struct dso *dso,enum map_type type);struct symbol *dso__next_symbol (struct symbol *sym);