Lines Matching full:symbols
186 void symbols__fixup_duplicate(struct rb_root_cached *symbols) in symbols__fixup_duplicate() argument
194 nd = rb_first_cached(symbols); in symbols__fixup_duplicate()
209 rb_erase_cached(&next->rb_node, symbols); in symbols__fixup_duplicate()
214 rb_erase_cached(&curr->rb_node, symbols); in symbols__fixup_duplicate()
220 void symbols__fixup_end(struct rb_root_cached *symbols) in symbols__fixup_end() argument
222 struct rb_node *nd, *prevnd = rb_first_cached(symbols); in symbols__fixup_end()
257 * We still haven't the actual symbols, so guess the in maps__fixup_end()
300 void symbols__delete(struct rb_root_cached *symbols) in symbols__delete() argument
303 struct rb_node *next = rb_first_cached(symbols); in symbols__delete()
308 rb_erase_cached(&pos->rb_node, symbols); in symbols__delete()
313 void __symbols__insert(struct rb_root_cached *symbols, in __symbols__insert() argument
316 struct rb_node **p = &symbols->rb_root.rb_node; in __symbols__insert()
344 rb_insert_color_cached(&sym->rb_node, symbols, leftmost); in __symbols__insert()
347 void symbols__insert(struct rb_root_cached *symbols, struct symbol *sym) in symbols__insert() argument
349 __symbols__insert(symbols, sym, false); in symbols__insert()
352 static struct symbol *symbols__find(struct rb_root_cached *symbols, u64 ip) in symbols__find() argument
356 if (symbols == NULL) in symbols__find()
359 n = symbols->rb_root.rb_node; in symbols__find()
375 static struct symbol *symbols__first(struct rb_root_cached *symbols) in symbols__first() argument
377 struct rb_node *n = rb_first_cached(symbols); in symbols__first()
385 static struct symbol *symbols__last(struct rb_root_cached *symbols) in symbols__last() argument
387 struct rb_node *n = rb_last(&symbols->rb_root); in symbols__last()
405 static void symbols__insert_by_name(struct rb_root_cached *symbols, struct symbol *sym) in symbols__insert_by_name() argument
407 struct rb_node **p = &symbols->rb_root.rb_node; in symbols__insert_by_name()
425 rb_insert_color_cached(&symn->rb_node, symbols, leftmost); in symbols__insert_by_name()
428 static void symbols__sort_by_name(struct rb_root_cached *symbols, in symbols__sort_by_name() argument
435 symbols__insert_by_name(symbols, pos); in symbols__sort_by_name()
456 static struct symbol *symbols__find_by_name(struct rb_root_cached *symbols, in symbols__find_by_name() argument
463 if (symbols == NULL) in symbols__find_by_name()
466 n = symbols->rb_root.rb_node; in symbols__find_by_name()
508 __symbols__insert(&dso->symbols, sym, dso->kernel); in dso__insert_symbol()
520 rb_erase_cached(&sym->rb_node, &dso->symbols); in dso__delete_symbol()
529 dso->last_find_result.symbol = symbols__find(&dso->symbols, addr); in dso__find_symbol()
537 return symbols__first(&dso->symbols); in dso__first_symbol()
542 return symbols__last(&dso->symbols); in dso__last_symbol()
574 return symbols__sort_by_name(&dso->symbol_names, &dso->symbols); in dso__sort_by_name()
654 * These are symbols in the kernel image, so make sure that
700 struct rb_root_cached *root = &dso->symbols; in map__process_kallsym_symbol()
706 * module symbols are not sorted so we add all in map__process_kallsym_symbol()
707 * symbols, setting length to 0, and rely on in map__process_kallsym_symbol()
714 * We will pass the symbols to the filter later, in in map__process_kallsym_symbol()
737 struct rb_root_cached old_root = dso->symbols; in maps__split_kallsyms_for_kcore()
738 struct rb_root_cached *root = &dso->symbols; in maps__split_kallsyms_for_kcore()
770 symbols__insert(&curr_map->dso->symbols, pos); in maps__split_kallsyms_for_kcore()
774 /* Symbols have been adjusted */ in maps__split_kallsyms_for_kcore()
781 * Split the symbols into maps, making sure there are no overlaps, i.e. the
792 struct rb_root_cached *root = &dso->symbols; in maps__split_kallsyms()
822 * We assume all symbols of a module are in maps__split_kallsyms()
825 * symbols are in its kmap. Mark it as in maps__split_kallsyms()
853 * These symbols are not needed anymore since the in maps__split_kallsyms()
855 * symbols instead. Avoid having to deal with in maps__split_kallsyms()
858 * symbols at this point. in maps__split_kallsyms()
908 symbols__insert(&curr_map->dso->symbols, pos); in maps__split_kallsyms()
1385 * If one of the corresponding symbols is there, assume the in dso__load_kcore()
1459 symbols__fixup_end(&dso->symbols); in __dso__load_kallsyms()
1460 symbols__fixup_duplicate(&dso->symbols); in __dso__load_kallsyms()
1521 symbols__insert(&dso->symbols, sym); in dso__load_perf_map()
1566 asymbol **symbols, *sym; in dso__load_bfd_symbols() local
1613 symbols = malloc(symbols_size); in dso__load_bfd_symbols()
1614 if (!symbols) in dso__load_bfd_symbols()
1617 symbols_count = bfd_canonicalize_symtab(abfd, symbols); in dso__load_bfd_symbols()
1621 qsort(symbols, symbols_count, sizeof(asymbol *), bfd_symbols__cmpvalue); in dso__load_bfd_symbols()
1627 sym = symbols[i]; in dso__load_bfd_symbols()
1633 bfd_asymbol_section(symbols[i + 1]) == section && in dso__load_bfd_symbols()
1634 bfd2elf_binding(symbols[i + 1]) < 0) in dso__load_bfd_symbols()
1638 bfd_asymbol_section(symbols[i + 1]) == section) in dso__load_bfd_symbols()
1639 len = symbols[i + 1]->value - sym->value; in dso__load_bfd_symbols()
1649 symbols__insert(&dso->symbols, symbol); in dso__load_bfd_symbols()
1655 symbols__fixup_end(&dso->symbols); in dso__load_bfd_symbols()
1656 symbols__fixup_duplicate(&dso->symbols); in dso__load_bfd_symbols()
1661 free(symbols); in dso__load_bfd_symbols()
2051 pr_debug("Using %s for symbols\n", symfs_vmlinux); in dso__load_vmlinux()
2235 pr_debug("Using %s for symbols\n", kallsyms_filename); in dso__load_kernel_sym()
2278 pr_debug("Using %s for symbols\n", kallsyms_filename); in dso__load_guest_kernel_sym()
2481 * A path to symbols of "/" is identical to "" in symbol__init()