Lines Matching full:symbols

181 void symbols__fixup_duplicate(struct rb_root_cached *symbols)  in symbols__fixup_duplicate()  argument
189 nd = rb_first_cached(symbols); in symbols__fixup_duplicate()
205 rb_erase_cached(&next->rb_node, symbols); in symbols__fixup_duplicate()
212 rb_erase_cached(&curr->rb_node, symbols); in symbols__fixup_duplicate()
218 /* Update zero-sized symbols using the address of the next symbol */
219 void symbols__fixup_end(struct rb_root_cached *symbols, bool is_kallsyms) in symbols__fixup_end() argument
221 struct rb_node *nd, *prevnd = rb_first_cached(symbols); in symbols__fixup_end()
241 * In kallsyms, it determines module symbols using '[' character in symbols__fixup_end()
304 void symbols__delete(struct rb_root_cached *symbols) in symbols__delete() argument
307 struct rb_node *next = rb_first_cached(symbols); in symbols__delete()
312 rb_erase_cached(&pos->rb_node, symbols); in symbols__delete()
317 void __symbols__insert(struct rb_root_cached *symbols, in __symbols__insert() argument
320 struct rb_node **p = &symbols->rb_root.rb_node; in __symbols__insert()
348 rb_insert_color_cached(&sym->rb_node, symbols, leftmost); in __symbols__insert()
351 void symbols__insert(struct rb_root_cached *symbols, struct symbol *sym) in symbols__insert() argument
353 __symbols__insert(symbols, sym, false); in symbols__insert()
356 static struct symbol *symbols__find(struct rb_root_cached *symbols, u64 ip) in symbols__find() argument
360 if (symbols == NULL) in symbols__find()
363 n = symbols->rb_root.rb_node; in symbols__find()
379 static struct symbol *symbols__first(struct rb_root_cached *symbols) in symbols__first() argument
381 struct rb_node *n = rb_first_cached(symbols); in symbols__first()
389 static struct symbol *symbols__last(struct rb_root_cached *symbols) in symbols__last() argument
391 struct rb_node *n = rb_last(&symbols->rb_root); in symbols__last()
457 static struct symbol *symbols__find_by_name(struct symbol *symbols[], in symbols__find_by_name() argument
476 cmp = symbol__match_symbol_name(symbols[i]->name, name, includes); in symbols__find_by_name()
485 s = symbols[i]; in symbols__find_by_name()
492 struct symbol *tmp = symbols[i - 1]; in symbols__find_by_name()
502 assert(!found_idx || !s || s == symbols[*found_idx]); in symbols__find_by_name()
514 __symbols__insert(&dso->symbols, sym, dso->kernel); in dso__insert_symbol()
526 rb_erase_cached(&sym->rb_node, &dso->symbols); in dso__delete_symbol()
535 dso->last_find_result.symbol = symbols__find(&dso->symbols, addr); in dso__find_symbol()
543 return symbols__find(&dso->symbols, addr); in dso__find_symbol_nocache()
548 return symbols__first(&dso->symbols); in dso__first_symbol()
553 return symbols__last(&dso->symbols); in dso__last_symbol()
589 dso->symbol_names = symbols__sort_by_name(&dso->symbols, &len); in dso__sort_by_name()
675 * These are symbols in the kernel image, so make sure that
722 struct rb_root_cached *root = &dso->symbols; in map__process_kallsym_symbol()
727 /* Ignore local symbols for ARM modules */ in map__process_kallsym_symbol()
732 * module symbols are not sorted so we add all in map__process_kallsym_symbol()
733 * symbols, setting length to 0, and rely on in map__process_kallsym_symbol()
740 * We will pass the symbols to the filter later, in in map__process_kallsym_symbol()
763 struct rb_root_cached old_root = dso->symbols; in maps__split_kallsyms_for_kcore()
764 struct rb_root_cached *root = &dso->symbols; in maps__split_kallsyms_for_kcore()
797 symbols__insert(&curr_map_dso->symbols, pos); in maps__split_kallsyms_for_kcore()
801 /* Symbols have been adjusted */ in maps__split_kallsyms_for_kcore()
808 * Split the symbols into maps, making sure there are no overlaps, i.e. the
819 struct rb_root_cached *root = &dso->symbols; in maps__split_kallsyms()
851 * We assume all symbols of a module are in maps__split_kallsyms()
854 * symbols are in its kmap. Mark it as in maps__split_kallsyms()
882 * These symbols are not needed anymore since the in maps__split_kallsyms()
884 * symbols instead. Avoid having to deal with in maps__split_kallsyms()
887 * symbols at this point. in maps__split_kallsyms()
942 symbols__insert(&curr_map_dso->symbols, pos); in maps__split_kallsyms()
1376 * If one of the corresponding symbols is there, assume the in dso__load_kcore()
1453 symbols__fixup_end(&dso->symbols, true); in __dso__load_kallsyms()
1454 symbols__fixup_duplicate(&dso->symbols); in __dso__load_kallsyms()
1515 symbols__insert(&dso->symbols, sym); in dso__load_perf_map()
1560 asymbol **symbols, *sym; in dso__load_bfd_symbols() local
1587 symbols = malloc(symbols_size); in dso__load_bfd_symbols()
1588 if (!symbols) in dso__load_bfd_symbols()
1591 symbols_count = bfd_canonicalize_symtab(abfd, symbols); in dso__load_bfd_symbols()
1598 if (!strcmp(bfd_asymbol_name(symbols[i]), "__ImageBase") || in dso__load_bfd_symbols()
1599 !strcmp(bfd_asymbol_name(symbols[i]), "__image_base__")) in dso__load_bfd_symbols()
1603 /* PE symbols can only have 4 bytes, so use .text high bits */ in dso__load_bfd_symbols()
1605 dso->text_offset += (u32)bfd_asymbol_value(symbols[i]); in dso__load_bfd_symbols()
1613 qsort(symbols, symbols_count, sizeof(asymbol *), bfd_symbols__cmpvalue); in dso__load_bfd_symbols()
1619 sym = symbols[i]; in dso__load_bfd_symbols()
1625 bfd_asymbol_section(symbols[i + 1]) == section && in dso__load_bfd_symbols()
1626 bfd2elf_binding(symbols[i + 1]) < 0) in dso__load_bfd_symbols()
1630 bfd_asymbol_section(symbols[i + 1]) == section) in dso__load_bfd_symbols()
1631 len = symbols[i + 1]->value - sym->value; in dso__load_bfd_symbols()
1641 symbols__insert(&dso->symbols, symbol); in dso__load_bfd_symbols()
1647 symbols__fixup_end(&dso->symbols, false); in dso__load_bfd_symbols()
1648 symbols__fixup_duplicate(&dso->symbols); in dso__load_bfd_symbols()
1653 free(symbols); in dso__load_bfd_symbols()
1976 pr_debug("Using %s for symbols\n", symfs_vmlinux); in dso__load_vmlinux()
2176 pr_debug("Using %s for symbols\n", kallsyms_filename); in dso__load_kernel_sym()
2221 pr_debug("Using %s for symbols\n", kallsyms_filename); in dso__load_guest_kernel_sym()
2467 * A path to symbols of "/" is identical to "" in symbol__init()