Lines Matching refs:maps
23 static void __maps__insert(struct maps *maps, struct map *map);
498 static void maps__init(struct maps *maps) in maps__init() argument
500 maps->entries = RB_ROOT; in maps__init()
501 init_rwsem(&maps->lock); in maps__init()
506 maps__init(&mg->maps); in map_groups__init()
511 static void __maps__purge(struct maps *maps) in __maps__purge() argument
513 struct rb_root *root = &maps->entries; in __maps__purge()
525 static void maps__exit(struct maps *maps) in maps__exit() argument
527 down_write(&maps->lock); in maps__exit()
528 __maps__purge(maps); in maps__exit()
529 up_write(&maps->lock); in maps__exit()
534 maps__exit(&mg->maps); in map_groups__exit()
539 return !maps__first(&mg->maps); in map_groups__empty()
586 struct symbol *maps__find_symbol_by_name(struct maps *maps, const char *name, in maps__find_symbol_by_name() argument
592 down_read(&maps->lock); in maps__find_symbol_by_name()
594 for (nd = rb_first(&maps->entries); nd; nd = rb_next(nd)) { in maps__find_symbol_by_name()
612 up_read(&maps->lock); in maps__find_symbol_by_name()
620 return maps__find_symbol_by_name(&mg->maps, name, mapp); in map_groups__find_symbol_by_name()
639 static size_t maps__fprintf(struct maps *maps, FILE *fp) in maps__fprintf() argument
644 down_read(&maps->lock); in maps__fprintf()
646 for (nd = rb_first(&maps->entries); nd; nd = rb_next(nd)) { in maps__fprintf()
656 up_read(&maps->lock); in maps__fprintf()
663 return maps__fprintf(&mg->maps, fp); in map_groups__fprintf()
668 __maps__insert(&mg->maps, map); in __map_groups__insert()
672 static int maps__fixup_overlappings(struct maps *maps, struct map *map, FILE *fp) in maps__fixup_overlappings() argument
678 down_write(&maps->lock); in maps__fixup_overlappings()
680 root = &maps->entries; in maps__fixup_overlappings()
768 up_write(&maps->lock); in maps__fixup_overlappings()
775 return maps__fixup_overlappings(&mg->maps, map, fp); in map_groups__fixup_overlappings()
786 struct maps *maps = &parent->maps; in map_groups__clone() local
788 down_read(&maps->lock); in map_groups__clone()
790 for (map = maps__first(maps); map; map = map__next(map)) { in map_groups__clone()
805 up_read(&maps->lock); in map_groups__clone()
809 static void __maps__insert(struct maps *maps, struct map *map) in __maps__insert() argument
811 struct rb_node **p = &maps->entries.rb_node; in __maps__insert()
826 rb_insert_color(&map->rb_node, &maps->entries); in __maps__insert()
830 void maps__insert(struct maps *maps, struct map *map) in maps__insert() argument
832 down_write(&maps->lock); in maps__insert()
833 __maps__insert(maps, map); in maps__insert()
834 up_write(&maps->lock); in maps__insert()
837 static void __maps__remove(struct maps *maps, struct map *map) in __maps__remove() argument
839 rb_erase_init(&map->rb_node, &maps->entries); in __maps__remove()
843 void maps__remove(struct maps *maps, struct map *map) in maps__remove() argument
845 down_write(&maps->lock); in maps__remove()
846 __maps__remove(maps, map); in maps__remove()
847 up_write(&maps->lock); in maps__remove()
850 struct map *maps__find(struct maps *maps, u64 ip) in maps__find() argument
855 down_read(&maps->lock); in maps__find()
857 p = &maps->entries.rb_node; in maps__find()
871 up_read(&maps->lock); in maps__find()
875 struct map *maps__first(struct maps *maps) in maps__first() argument
877 struct rb_node *first = rb_first(&maps->entries); in maps__first()