aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/thread.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2010-03-25 18:58:58 -0400
committerIngo Molnar <mingo@elte.hu>2010-03-26 03:52:58 -0400
commit4b8cf84624e9a58a21aaac3d064222092ae234e0 (patch)
treeb3730987728f9280612fedbf24db50142e8ed253 /tools/perf/util/thread.c
parentb177f63f5226e75280855bbcd106e677250778bd (diff)
perf symbols: Move map related routines to map.c
Thru series of refactorings functions were being renamed but not moved to map.c to reduce patch noise, now lets have them in the same place so that use of the symbol system by tools can be constrained to building and linking fewer source files: symbol.c, map.c and rbtree.c. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> LKML-Reference: <1269557941-15617-3-git-send-email-acme@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util/thread.c')
-rw-r--r--tools/perf/util/thread.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c
index ea6506234d57..9bbe27d75306 100644
--- a/tools/perf/util/thread.c
+++ b/tools/perf/util/thread.c
@@ -272,46 +272,6 @@ static int map_groups__fixup_overlappings(struct map_groups *self,
272 return 0; 272 return 0;
273} 273}
274 274
275void maps__insert(struct rb_root *maps, struct map *map)
276{
277 struct rb_node **p = &maps->rb_node;
278 struct rb_node *parent = NULL;
279 const u64 ip = map->start;
280 struct map *m;
281
282 while (*p != NULL) {
283 parent = *p;
284 m = rb_entry(parent, struct map, rb_node);
285 if (ip < m->start)
286 p = &(*p)->rb_left;
287 else
288 p = &(*p)->rb_right;
289 }
290
291 rb_link_node(&map->rb_node, parent, p);
292 rb_insert_color(&map->rb_node, maps);
293}
294
295struct map *maps__find(struct rb_root *maps, u64 ip)
296{
297 struct rb_node **p = &maps->rb_node;
298 struct rb_node *parent = NULL;
299 struct map *m;
300
301 while (*p != NULL) {
302 parent = *p;
303 m = rb_entry(parent, struct map, rb_node);
304 if (ip < m->start)
305 p = &(*p)->rb_left;
306 else if (ip > m->end)
307 p = &(*p)->rb_right;
308 else
309 return m;
310 }
311
312 return NULL;
313}
314
315void thread__insert_map(struct thread *self, struct map *map) 275void thread__insert_map(struct thread *self, struct map *map)
316{ 276{
317 map_groups__fixup_overlappings(&self->mg, map); 277 map_groups__fixup_overlappings(&self->mg, map);
@@ -367,16 +327,3 @@ size_t perf_session__fprintf(struct perf_session *self, FILE *fp)
367 327
368 return ret; 328 return ret;
369} 329}
370
371struct symbol *map_groups__find_symbol(struct map_groups *self,
372 enum map_type type, u64 addr,
373 symbol_filter_t filter)
374{
375 struct map *map = map_groups__find(self, type, addr);
376
377 if (map != NULL)
378 return map__find_symbol(map, map->map_ip(map, addr), filter);
379
380 return NULL;
381}
382