dso 152 tools/perf/arch/powerpc/util/skip-callchain-idx.c static int check_return_addr(struct dso *dso, u64 map_start, Dwarf_Addr pc) dso 162 tools/perf/arch/powerpc/util/skip-callchain-idx.c const char *exec_file = dso->long_name; dso 164 tools/perf/arch/powerpc/util/skip-callchain-idx.c dwfl = dso->dwfl; dso 186 tools/perf/arch/powerpc/util/skip-callchain-idx.c dso->dwfl = dwfl; dso 245 tools/perf/arch/powerpc/util/skip-callchain-idx.c struct dso *dso = NULL; dso 258 tools/perf/arch/powerpc/util/skip-callchain-idx.c dso = al.map->dso; dso 260 tools/perf/arch/powerpc/util/skip-callchain-idx.c if (!dso) { dso 265 tools/perf/arch/powerpc/util/skip-callchain-idx.c rc = check_return_addr(dso, al.map->start, ip); dso 268 tools/perf/arch/powerpc/util/skip-callchain-idx.c dso->long_name, al.sym->name, ip, rc); dso 117 tools/perf/arch/powerpc/util/sym-handling.c if (map->dso->symtab_type == DSO_BINARY_TYPE__KALLSYMS) dso 71 tools/perf/arch/x86/util/machine.c struct dso *kernel) dso 202 tools/perf/builtin-annotate.c a.map->dso->hit = 1; dso 236 tools/perf/builtin-annotate.c &al->map->dso->symbols); dso 238 tools/perf/builtin-annotate.c dso__reset_find_symbol_cache(al->map->dso); dso 320 tools/perf/builtin-annotate.c if (he->ms.sym == NULL || he->ms.map->dso->annotate_warned) dso 274 tools/perf/builtin-buildid-cache.c static bool dso__missing_buildid_cache(struct dso *dso, int parm __maybe_unused) dso 279 tools/perf/builtin-buildid-cache.c if (dso__build_id_filename(dso, filename, sizeof(filename), false) && dso 287 tools/perf/builtin-buildid-cache.c } else if (memcmp(dso->build_id, build_id, sizeof(dso->build_id))) { dso 47 tools/perf/builtin-buildid-list.c static bool dso__skip_buildid(struct dso *dso, int with_hits) dso 49 tools/perf/builtin-buildid-list.c return with_hits && !dso->hit; dso 1807 tools/perf/builtin-c2c.c hpp_list->dso = 1; dso 388 tools/perf/builtin-inject.c static int dso__read_build_id(struct dso *dso) dso 390 tools/perf/builtin-inject.c if (dso->has_build_id) dso 393 tools/perf/builtin-inject.c if (filename__read_build_id(dso->long_name, dso->build_id, dso 394 tools/perf/builtin-inject.c sizeof(dso->build_id)) > 0) { dso 395 tools/perf/builtin-inject.c dso->has_build_id = true; dso 402 tools/perf/builtin-inject.c static int dso__inject_build_id(struct dso *dso, struct perf_tool *tool, dso 408 tools/perf/builtin-inject.c if (dso__read_build_id(dso) < 0) { dso 409 tools/perf/builtin-inject.c pr_debug("no build_id found for %s\n", dso->long_name); dso 413 tools/perf/builtin-inject.c if (dso->kernel) dso 416 tools/perf/builtin-inject.c err = perf_event__synthesize_build_id(tool, dso, misc, perf_event__repipe, dso 419 tools/perf/builtin-inject.c pr_err("Can't synthesize build_id event for %s\n", dso->long_name); dso 443 tools/perf/builtin-inject.c if (!al.map->dso->hit) { dso 444 tools/perf/builtin-inject.c al.map->dso->hit = 1; dso 446 tools/perf/builtin-inject.c dso__inject_build_id(al.map->dso, tool, machine); dso 455 tools/perf/builtin-inject.c al.map->dso->long_name); dso 39 tools/perf/builtin-kallsyms.c symbol->name, map->dso->short_name, map->dso->long_name, dso 172 tools/perf/builtin-mem.c al.map->dso->hit = 1; dso 200 tools/perf/builtin-mem.c al.map ? (al.map->dso ? al.map->dso->long_name : "???") : "???", dso 225 tools/perf/builtin-mem.c al.map ? (al.map->dso ? al.map->dso->long_name : "???") : "???", dso 290 tools/perf/builtin-report.c al.map->dso->hit = 1; dso 533 tools/perf/builtin-report.c (kernel_map->dso->hit && dso 741 tools/perf/builtin-report.c map->ino, map->dso->name); dso 845 tools/perf/builtin-script.c !alf.map->dso->adjust_symbols) dso 849 tools/perf/builtin-script.c !alt.map->dso->adjust_symbols) dso 912 tools/perf/builtin-script.c if (!thread__find_map(thread, *cpumode, start, &al) || !al.map->dso) { dso 916 tools/perf/builtin-script.c if (al.map->dso->data.status == DSO_DATA_STATUS_ERROR) { dso 925 tools/perf/builtin-script.c len = dso__data_read_offset(al.map->dso, machine, offset, (u8 *)buffer, dso 928 tools/perf/builtin-script.c *is64bit = al.map->dso->is_64_bit; dso 126 tools/perf/builtin-top.c if (map->dso->symtab_type == DSO_BINARY_TYPE__KALLSYMS && dso 127 tools/perf/builtin-top.c !dso__is_kcore(map->dso)) { dso 179 tools/perf/builtin-top.c ip, map->dso->long_name, dso__symtab_origin(map->dso), dso 800 tools/perf/builtin-top.c dso__strerror_load(al.map->dso, serr, sizeof(serr)); dso 2439 tools/perf/builtin-trace.c fprintf(f, "%s@", al->map->dso->long_name); dso 250 tools/perf/tests/code-reading.c if (!thread__find_map(thread, cpumode, addr, &al) || !al.map->dso) { dso 260 tools/perf/tests/code-reading.c pr_debug("File is: %s\n", al.map->dso->long_name); dso 262 tools/perf/tests/code-reading.c if (al.map->dso->symtab_type == DSO_BINARY_TYPE__KALLSYMS && dso 263 tools/perf/tests/code-reading.c !dso__is_kcore(al.map->dso)) { dso 278 tools/perf/tests/code-reading.c ret_len = dso__data_read_offset(al.map->dso, thread->mg->machine, dso 293 tools/perf/tests/code-reading.c if (dso__is_kcore(al.map->dso)) { dso 310 tools/perf/tests/code-reading.c objdump_name = al.map->dso->long_name; dso 311 tools/perf/tests/code-reading.c if (dso__needs_decompress(al.map->dso)) { dso 312 tools/perf/tests/code-reading.c if (dso__decompress_kmodule_path(al.map->dso, objdump_name, dso 340 tools/perf/tests/code-reading.c } else if (dso__is_kcore(al.map->dso)) { dso 598 tools/perf/tests/code-reading.c have_vmlinux = dso__is_vmlinux(map->dso); dso 599 tools/perf/tests/code-reading.c have_kcore = dso__is_kcore(map->dso); dso 106 tools/perf/tests/dso-data.c static int dso__data_fd(struct dso *dso, struct machine *machine) dso 108 tools/perf/tests/dso-data.c int fd = dso__data_get_fd(dso, machine); dso 111 tools/perf/tests/dso-data.c dso__data_put_fd(dso); dso 119 tools/perf/tests/dso-data.c struct dso *dso; dso 127 tools/perf/tests/dso-data.c dso = dso__new((const char *)file); dso 130 tools/perf/tests/dso-data.c dso__data_fd(dso, &machine) >= 0); dso 139 tools/perf/tests/dso-data.c size = dso__data_read_offset(dso, &machine, data->offset, dso 158 tools/perf/tests/dso-data.c size = dso__data_read_offset(dso, &machine, 10, dso 172 tools/perf/tests/dso-data.c dso__put(dso); dso 202 tools/perf/tests/dso-data.c static struct dso **dsos; dso 229 tools/perf/tests/dso-data.c struct dso *dso = dsos[i]; dso 231 tools/perf/tests/dso-data.c unlink(dso->name); dso 232 tools/perf/tests/dso-data.c dso__put(dso); dso 272 tools/perf/tests/dso-data.c struct dso *dso = dsos[i]; dso 278 tools/perf/tests/dso-data.c fd = dso__data_fd(dso, &machine); dso 286 tools/perf/tests/dso-data.c n = dso__data_read_offset(dso, &machine, 0, buf, BUFSIZE); dso 129 tools/perf/tests/hists_common.c struct dso *dso; dso 131 tools/perf/tests/hists_common.c dso = machine__findnew_dso(machine, fake_symbols[i].dso_name); dso 132 tools/perf/tests/hists_common.c if (dso == NULL) dso 136 tools/perf/tests/hists_common.c dso__set_loaded(dso); dso 145 tools/perf/tests/hists_common.c dso__put(dso); dso 149 tools/perf/tests/hists_common.c symbols__insert(&dso->symbols, sym); dso 152 tools/perf/tests/hists_common.c dso__put(dso); dso 184 tools/perf/tests/hists_common.c he->ms.map->dso->short_name, dso 211 tools/perf/tests/hists_common.c he->ms.map->dso->short_name, dso 153 tools/perf/tests/hists_cumulate.c #define DSO(he) (he->ms.map->dso->short_name) dso 158 tools/perf/tests/hists_cumulate.c #define CDSO(cl) (cl->ms.map->dso->short_name) dso 165 tools/perf/tests/hists_cumulate.c const char *dso; dso 172 tools/perf/tests/hists_cumulate.c const char *dso; dso 212 tools/perf/tests/hists_cumulate.c !strcmp(DSO(he), expected[i].dso) && dso 234 tools/perf/tests/hists_cumulate.c !strcmp(CDSO(clist), expected_callchain[i].node[c].dso) && dso 197 tools/perf/tests/hists_filter.c hists->dso_filter = fake_samples[0].map->dso; dso 291 tools/perf/tests/hists_filter.c hists->dso_filter = fake_samples[1].map->dso; dso 119 tools/perf/tests/hists_output.c #define DSO(he) (he->ms.map->dso->short_name) dso 25 tools/perf/tests/map_groups.c TEST_ASSERT_VAL("wrong map name", !strcmp(map->dso->name, merged[i].name)); dso 194 tools/perf/tests/vmlinux-kallsyms.c (map->dso->kernel ? dso 195 tools/perf/tests/vmlinux-kallsyms.c map->dso->short_name : dso 196 tools/perf/tests/vmlinux-kallsyms.c map->dso->name)); dso 227 tools/perf/tests/vmlinux-kallsyms.c map->start, map->end, map->pgoff, map->dso->name); dso 231 tools/perf/tests/vmlinux-kallsyms.c pr_info(" %s\n", pair->dso->name); dso 396 tools/perf/ui/browsers/annotate.c return snprintf(title, sz, "%s %s [Percent: %s]", sym->name, map->dso->long_name, dso 918 tools/perf/ui/browsers/annotate.c if (map->dso->annotate_warned) dso 2405 tools/perf/ui/browsers/hists.c if (sym == NULL || map->dso->annotate_warned) dso 2484 tools/perf/ui/browsers/hists.c if (!hists__has(browser->hists, dso) || map == NULL) dso 2494 tools/perf/ui/browsers/hists.c __map__is_kernel(map) ? "the Kernel" : map->dso->short_name); dso 2495 tools/perf/ui/browsers/hists.c browser->hists->dso_filter = map->dso; dso 2509 tools/perf/ui/browsers/hists.c if (!hists__has(browser->hists, dso) || map == NULL) dso 2514 tools/perf/ui/browsers/hists.c __map__is_kernel(map) ? "the Kernel" : map->dso->short_name) < 0) dso 2534 tools/perf/ui/browsers/hists.c if (!hists__has(browser->hists, dso) || map == NULL) dso 2942 tools/perf/ui/browsers/hists.c browser->selection->map->dso->annotate_warned) dso 79 tools/perf/ui/browsers/map.c if (ui_browser__show(&browser->b, browser->map->dso->long_name, dso 109 tools/perf/ui/browsers/map.c .entries = &map->dso->symbols, dso 173 tools/perf/ui/gtk/annotate.c if (map->dso->annotate_warned) dso 1603 tools/perf/util/annotate.c struct dso *dso = map->dso; dso 1617 tools/perf/util/annotate.c if (dso->has_build_id) { dso 1618 tools/perf/util/annotate.c build_id__sprintf(dso->build_id, dso 1619 tools/perf/util/annotate.c sizeof(dso->build_id), bf + 15); dso 1641 tools/perf/util/annotate.c scnprintf(buf, buflen, "Invalid BPF file: %s.", dso->long_name); dso 1645 tools/perf/util/annotate.c dso->long_name); dso 1655 tools/perf/util/annotate.c static int dso__disassemble_filename(struct dso *dso, char *filename, size_t filename_size) dso 1662 tools/perf/util/annotate.c if (dso->symtab_type == DSO_BINARY_TYPE__KALLSYMS && dso 1663 tools/perf/util/annotate.c !dso__is_kcore(dso)) dso 1666 tools/perf/util/annotate.c build_id_filename = dso__build_id_filename(dso, NULL, 0, false); dso 1671 tools/perf/util/annotate.c if (dso->has_build_id) dso 1689 tools/perf/util/annotate.c if (dso__is_kcore(dso) || dso 1699 tools/perf/util/annotate.c __symbol__join_symfs(filename, filename_size, dso->long_name); dso 1723 tools/perf/util/annotate.c struct dso *dso = map->dso; dso 1734 tools/perf/util/annotate.c if (dso->binary_type != DSO_BINARY_TYPE__BPF_PROG_INFO) dso 1758 tools/perf/util/annotate.c info_node = perf_env__find_bpf_prog_info(dso->bpf_prog.env, dso 1759 tools/perf/util/annotate.c dso->bpf_prog.id); dso 1765 tools/perf/util/annotate.c sub_id = dso->bpf_prog.sub_id; dso 1776 tools/perf/util/annotate.c node = perf_env__find_btf(dso->bpf_prog.env, dso 1864 tools/perf/util/annotate.c struct dso *dso = map->dso; dso 1875 tools/perf/util/annotate.c int err = dso__disassemble_filename(dso, symfs_filename, sizeof(symfs_filename)); dso 1885 tools/perf/util/annotate.c dso, dso->long_name, sym, sym->name); dso 1887 tools/perf/util/annotate.c if (dso->binary_type == DSO_BINARY_TYPE__BPF_PROG_INFO) { dso 1889 tools/perf/util/annotate.c } else if (dso__is_kcore(dso)) { dso 1899 tools/perf/util/annotate.c } else if (dso__needs_decompress(dso)) { dso 1902 tools/perf/util/annotate.c if (dso__decompress_kmodule_path(dso, symfs_filename, dso 1983 tools/perf/util/annotate.c if (dso__is_kcore(dso)) dso 2270 tools/perf/util/annotate.c struct dso *dso = map->dso; dso 2286 tools/perf/util/annotate.c filename = strdup(dso->long_name); dso 2453 tools/perf/util/annotate.c ms->sym->name, ms->map->dso->long_name, ev_name); dso 2665 tools/perf/util/annotate.c al->path = get_srcline(map->dso, notes->start + al->offset, NULL, dso 2686 tools/perf/util/annotate.c struct dso *dso = map->dso; dso 2697 tools/perf/util/annotate.c print_summary(&source_line, dso->long_name); dso 2702 tools/perf/util/annotate.c buf, percent_type_str(opts->percent_type), sym->name, dso->long_name); dso 2714 tools/perf/util/annotate.c struct dso *dso = map->dso; dso 2725 tools/perf/util/annotate.c print_summary(&source_line, dso->long_name); dso 1920 tools/perf/util/auxtrace.c static struct dso *load_dso(const char *name) dso 1923 tools/perf/util/auxtrace.c struct dso *dso; dso 1932 tools/perf/util/auxtrace.c dso = dso__get(map->dso); dso 1936 tools/perf/util/auxtrace.c return dso; dso 1949 tools/perf/util/auxtrace.c static void print_duplicate_syms(struct dso *dso, const char *sym_name) dso 1957 tools/perf/util/auxtrace.c sym = dso__first_symbol(dso); dso 1978 tools/perf/util/auxtrace.c static int find_dso_sym(struct dso *dso, const char *sym_name, u64 *start, dso 1987 tools/perf/util/auxtrace.c sym = dso__first_symbol(dso); dso 1996 tools/perf/util/auxtrace.c print_duplicate_syms(dso, sym_name); dso 2012 tools/perf/util/auxtrace.c static int addr_filter__entire_dso(struct addr_filter *filt, struct dso *dso) dso 2014 tools/perf/util/auxtrace.c if (dso__data_file_size(dso, NULL)) { dso 2021 tools/perf/util/auxtrace.c filt->size = dso->data.file_size; dso 2029 tools/perf/util/auxtrace.c struct dso *dso; dso 2038 tools/perf/util/auxtrace.c dso = load_dso(filt->filename); dso 2039 tools/perf/util/auxtrace.c if (!dso) { dso 2045 tools/perf/util/auxtrace.c err = addr_filter__entire_dso(filt, dso); dso 2050 tools/perf/util/auxtrace.c err = find_dso_sym(dso, filt->sym_from, &start, &size, dso 2060 tools/perf/util/auxtrace.c err = find_dso_sym(dso, filt->sym_to, &start, &size, dso 2073 tools/perf/util/auxtrace.c dso__put(dso); dso 60 tools/perf/util/bpf-event.c map->dso->binary_type = DSO_BINARY_TYPE__BPF_PROG_INFO; dso 61 tools/perf/util/bpf-event.c map->dso->bpf_prog.id = id; dso 62 tools/perf/util/bpf-event.c map->dso->bpf_prog.sub_id = i; dso 63 tools/perf/util/bpf-event.c map->dso->bpf_prog.env = env; dso 56 tools/perf/util/build-id.c al.map->dso->hit = 1; dso 258 tools/perf/util/build-id.c char *dso__build_id_filename(const struct dso *dso, char *bf, size_t size, dso 261 tools/perf/util/build-id.c bool is_kallsyms = dso__is_kallsyms((struct dso *)dso); dso 262 tools/perf/util/build-id.c bool is_vdso = dso__is_vdso((struct dso *)dso); dso 268 tools/perf/util/build-id.c if (!dso->has_build_id) dso 271 tools/perf/util/build-id.c build_id__sprintf(dso->build_id, sizeof(dso->build_id), sbuild_id); dso 323 tools/perf/util/build-id.c struct dso *pos; dso 384 tools/perf/util/build-id.c struct dso *pos; dso 815 tools/perf/util/build-id.c static int dso__cache_build_id(struct dso *dso, struct machine *machine) dso 817 tools/perf/util/build-id.c bool is_kallsyms = dso__is_kallsyms(dso); dso 818 tools/perf/util/build-id.c bool is_vdso = dso__is_vdso(dso); dso 819 tools/perf/util/build-id.c const char *name = dso->long_name; dso 821 tools/perf/util/build-id.c if (dso__is_kcore(dso)) { dso 825 tools/perf/util/build-id.c return build_id_cache__add_b(dso->build_id, sizeof(dso->build_id), name, dso 826 tools/perf/util/build-id.c dso->nsinfo, is_kallsyms, is_vdso); dso 832 tools/perf/util/build-id.c struct dso *pos; dso 14 tools/perf/util/build-id.h struct dso; dso 23 tools/perf/util/build-id.h char *dso__build_id_filename(const struct dso *dso, char *bf, size_t size, dso 698 tools/perf/util/callchain.c struct dso *left_dso = left_map ? left_map->dso : NULL; dso 699 tools/perf/util/callchain.c struct dso *right_dso = right_map ? right_map->dso : NULL; dso 1170 tools/perf/util/callchain.c cl->ms.map->dso->short_name : dso 665 tools/perf/util/cs-etm.c if (!thread__find_map(thread, cpumode, address, &al) || !al.map->dso) dso 668 tools/perf/util/cs-etm.c if (al.map->dso->data.status == DSO_DATA_STATUS_ERROR && dso 669 tools/perf/util/cs-etm.c dso__data_status_seen(al.map->dso, DSO_DATA_STATUS_SEEN_ITRACE)) dso 676 tools/perf/util/cs-etm.c len = dso__data_read_offset(al.map->dso, machine, offset, buffer, size); dso 146 tools/perf/util/db-export.c int db_export__dso(struct db_export *dbe, struct dso *dso, dso 149 tools/perf/util/db-export.c if (dso->db_id) dso 152 tools/perf/util/db-export.c dso->db_id = ++dbe->dso_last_db_id; dso 155 tools/perf/util/db-export.c return dbe->export_dso(dbe, dso, machine); dso 161 tools/perf/util/db-export.c struct dso *dso) dso 171 tools/perf/util/db-export.c return dbe->export_symbol(dbe, sym, dso); dso 182 tools/perf/util/db-export.c struct dso *dso = al->map->dso; dso 184 tools/perf/util/db-export.c err = db_export__dso(dbe, dso, al->machine); dso 187 tools/perf/util/db-export.c *dso_db_id = dso->db_id; dso 192 tools/perf/util/db-export.c dso__insert_symbol(dso, al->sym); dso 198 tools/perf/util/db-export.c err = db_export__symbol(dbe, al->sym, dso); dso 258 tools/perf/util/db-export.c al.sym = dso__find_symbol(al.map->dso, al.addr); dso 17 tools/perf/util/db-export.h struct dso; dso 50 tools/perf/util/db-export.h int (*export_dso)(struct db_export *dbe, struct dso *dso, dso 53 tools/perf/util/db-export.h struct dso *dso); dso 92 tools/perf/util/db-export.h int db_export__dso(struct db_export *dbe, struct dso *dso, dso 95 tools/perf/util/db-export.h struct dso *dso); dso 39 tools/perf/util/dso.c char dso__symtab_origin(const struct dso *dso) dso 61 tools/perf/util/dso.c if (dso == NULL || dso->symtab_type == DSO_BINARY_TYPE__NOT_FOUND) dso 63 tools/perf/util/dso.c return origin[dso->symtab_type]; dso 66 tools/perf/util/dso.c int dso__read_binary_type_filename(const struct dso *dso, dso 82 tools/perf/util/dso.c len = __symbol__join_symfs(filename, size, dso->long_name); dso 113 tools/perf/util/dso.c if (dso__build_id_filename(dso, filename, size, false) == NULL) dso 118 tools/perf/util/dso.c if (dso__build_id_filename(dso, filename, size, true) == NULL) dso 124 tools/perf/util/dso.c snprintf(filename + len, size - len, "%s.debug", dso->long_name); dso 129 tools/perf/util/dso.c snprintf(filename + len, size - len, "%s", dso->long_name); dso 137 tools/perf/util/dso.c last_slash = dso->long_name + dso->long_name_len; dso 138 tools/perf/util/dso.c while (last_slash != dso->long_name && *last_slash != '/') dso 142 tools/perf/util/dso.c dir_size = last_slash - dso->long_name + 2; dso 147 tools/perf/util/dso.c len += scnprintf(filename + len, dir_size, "%s", dso->long_name); dso 154 tools/perf/util/dso.c if (!dso->has_build_id) { dso 159 tools/perf/util/dso.c build_id__sprintf(dso->build_id, dso 160 tools/perf/util/dso.c sizeof(dso->build_id), dso 170 tools/perf/util/dso.c __symbol__join_symfs(filename, size, dso->long_name); dso 176 tools/perf/util/dso.c root_dir, dso->long_name); dso 181 tools/perf/util/dso.c __symbol__join_symfs(filename, size, dso->long_name); dso 186 tools/perf/util/dso.c snprintf(filename, size, "%s", dso->long_name); dso 258 tools/perf/util/dso.c bool dso__needs_decompress(struct dso *dso) dso 260 tools/perf/util/dso.c return dso->symtab_type == DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE_COMP || dso 261 tools/perf/util/dso.c dso->symtab_type == DSO_BINARY_TYPE__GUEST_KMODULE_COMP; dso 264 tools/perf/util/dso.c static int decompress_kmodule(struct dso *dso, const char *name, dso 270 tools/perf/util/dso.c if (!dso__needs_decompress(dso)) dso 273 tools/perf/util/dso.c if (dso->comp == COMP_ID__NONE) dso 289 tools/perf/util/dso.c if (!compressions[dso->comp].is_compressed(name)) dso 294 tools/perf/util/dso.c dso->load_errno = errno; dso 298 tools/perf/util/dso.c if (compressions[dso->comp].decompress(name, fd)) { dso 299 tools/perf/util/dso.c dso->load_errno = DSO_LOAD_ERRNO__DECOMPRESSION_FAILURE; dso 313 tools/perf/util/dso.c int dso__decompress_kmodule_fd(struct dso *dso, const char *name) dso 315 tools/perf/util/dso.c return decompress_kmodule(dso, name, NULL, 0); dso 318 tools/perf/util/dso.c int dso__decompress_kmodule_path(struct dso *dso, const char *name, dso 321 tools/perf/util/dso.c int fd = decompress_kmodule(dso, name, pathname, len); dso 407 tools/perf/util/dso.c void dso__set_module_info(struct dso *dso, struct kmod_path *m, dso 411 tools/perf/util/dso.c dso->symtab_type = DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE; dso 413 tools/perf/util/dso.c dso->symtab_type = DSO_BINARY_TYPE__GUEST_KMODULE; dso 417 tools/perf/util/dso.c dso->symtab_type++; dso 418 tools/perf/util/dso.c dso->comp = m->comp; dso 421 tools/perf/util/dso.c dso__set_short_name(dso, strdup(m->name), true); dso 431 tools/perf/util/dso.c static void dso__list_add(struct dso *dso) dso 433 tools/perf/util/dso.c list_add_tail(&dso->data.open_entry, &dso__data_open); dso 437 tools/perf/util/dso.c static void dso__list_del(struct dso *dso) dso 439 tools/perf/util/dso.c list_del_init(&dso->data.open_entry); dso 468 tools/perf/util/dso.c static int __open_dso(struct dso *dso, struct machine *machine) dso 481 tools/perf/util/dso.c if (dso__read_binary_type_filename(dso, dso->binary_type, dso 488 tools/perf/util/dso.c if (dso__needs_decompress(dso)) { dso 492 tools/perf/util/dso.c if (dso__decompress_kmodule_path(dso, name, newpath, len) < 0) { dso 493 tools/perf/util/dso.c fd = -dso->load_errno; dso 520 tools/perf/util/dso.c static int open_dso(struct dso *dso, struct machine *machine) dso 525 tools/perf/util/dso.c if (dso->binary_type != DSO_BINARY_TYPE__BUILD_ID_CACHE) dso 526 tools/perf/util/dso.c nsinfo__mountns_enter(dso->nsinfo, &nsc); dso 527 tools/perf/util/dso.c fd = __open_dso(dso, machine); dso 528 tools/perf/util/dso.c if (dso->binary_type != DSO_BINARY_TYPE__BUILD_ID_CACHE) dso 532 tools/perf/util/dso.c dso__list_add(dso); dso 543 tools/perf/util/dso.c static void close_data_fd(struct dso *dso) dso 545 tools/perf/util/dso.c if (dso->data.fd >= 0) { dso 546 tools/perf/util/dso.c close(dso->data.fd); dso 547 tools/perf/util/dso.c dso->data.fd = -1; dso 548 tools/perf/util/dso.c dso->data.file_size = 0; dso 549 tools/perf/util/dso.c dso__list_del(dso); dso 560 tools/perf/util/dso.c static void close_dso(struct dso *dso) dso 562 tools/perf/util/dso.c close_data_fd(dso); dso 567 tools/perf/util/dso.c struct dso *dso; dso 569 tools/perf/util/dso.c dso = list_first_entry(&dso__data_open, struct dso, data.open_entry); dso 570 tools/perf/util/dso.c close_dso(dso); dso 634 tools/perf/util/dso.c void dso__data_close(struct dso *dso) dso 637 tools/perf/util/dso.c close_dso(dso); dso 641 tools/perf/util/dso.c static void try_to_open_dso(struct dso *dso, struct machine *machine) dso 650 tools/perf/util/dso.c if (dso->data.fd >= 0) dso 653 tools/perf/util/dso.c if (dso->binary_type != DSO_BINARY_TYPE__NOT_FOUND) { dso 654 tools/perf/util/dso.c dso->data.fd = open_dso(dso, machine); dso 659 tools/perf/util/dso.c dso->binary_type = binary_type_data[i++]; dso 661 tools/perf/util/dso.c dso->data.fd = open_dso(dso, machine); dso 662 tools/perf/util/dso.c if (dso->data.fd >= 0) dso 665 tools/perf/util/dso.c } while (dso->binary_type != DSO_BINARY_TYPE__NOT_FOUND); dso 667 tools/perf/util/dso.c if (dso->data.fd >= 0) dso 668 tools/perf/util/dso.c dso->data.status = DSO_DATA_STATUS_OK; dso 670 tools/perf/util/dso.c dso->data.status = DSO_DATA_STATUS_ERROR; dso 682 tools/perf/util/dso.c int dso__data_get_fd(struct dso *dso, struct machine *machine) dso 684 tools/perf/util/dso.c if (dso->data.status == DSO_DATA_STATUS_ERROR) dso 690 tools/perf/util/dso.c try_to_open_dso(dso, machine); dso 692 tools/perf/util/dso.c if (dso->data.fd < 0) dso 695 tools/perf/util/dso.c return dso->data.fd; dso 698 tools/perf/util/dso.c void dso__data_put_fd(struct dso *dso __maybe_unused) dso 703 tools/perf/util/dso.c bool dso__data_status_seen(struct dso *dso, enum dso_data_status_seen by) dso 707 tools/perf/util/dso.c if (dso->data.status_seen & flag) dso 710 tools/perf/util/dso.c dso->data.status_seen |= flag; dso 715 tools/perf/util/dso.c static ssize_t bpf_read(struct dso *dso, u64 offset, char *data) dso 722 tools/perf/util/dso.c node = perf_env__find_bpf_prog_info(dso->bpf_prog.env, dso->bpf_prog.id); dso 724 tools/perf/util/dso.c dso->data.status = DSO_DATA_STATUS_ERROR; dso 739 tools/perf/util/dso.c static int bpf_size(struct dso *dso) dso 743 tools/perf/util/dso.c node = perf_env__find_bpf_prog_info(dso->bpf_prog.env, dso->bpf_prog.id); dso 745 tools/perf/util/dso.c dso->data.status = DSO_DATA_STATUS_ERROR; dso 749 tools/perf/util/dso.c dso->data.file_size = node->info_linear->info.jited_prog_len; dso 754 tools/perf/util/dso.c dso_cache__free(struct dso *dso) dso 756 tools/perf/util/dso.c struct rb_root *root = &dso->data.cache; dso 759 tools/perf/util/dso.c pthread_mutex_lock(&dso->lock); dso 768 tools/perf/util/dso.c pthread_mutex_unlock(&dso->lock); dso 771 tools/perf/util/dso.c static struct dso_cache *dso_cache__find(struct dso *dso, u64 offset) dso 773 tools/perf/util/dso.c const struct rb_root *root = &dso->data.cache; dso 797 tools/perf/util/dso.c dso_cache__insert(struct dso *dso, struct dso_cache *new) dso 799 tools/perf/util/dso.c struct rb_root *root = &dso->data.cache; dso 805 tools/perf/util/dso.c pthread_mutex_lock(&dso->lock); dso 826 tools/perf/util/dso.c pthread_mutex_unlock(&dso->lock); dso 841 tools/perf/util/dso.c static ssize_t file_read(struct dso *dso, struct machine *machine, dso 852 tools/perf/util/dso.c try_to_open_dso(dso, machine); dso 854 tools/perf/util/dso.c if (dso->data.fd < 0) { dso 855 tools/perf/util/dso.c dso->data.status = DSO_DATA_STATUS_ERROR; dso 860 tools/perf/util/dso.c ret = pread(dso->data.fd, data, DSO__DATA_CACHE_SIZE, offset); dso 867 tools/perf/util/dso.c dso_cache__read(struct dso *dso, struct machine *machine, dso 879 tools/perf/util/dso.c if (dso->binary_type == DSO_BINARY_TYPE__BPF_PROG_INFO) dso 880 tools/perf/util/dso.c ret = bpf_read(dso, cache_offset, cache->data); dso 882 tools/perf/util/dso.c ret = file_read(dso, machine, cache_offset, cache->data); dso 888 tools/perf/util/dso.c old = dso_cache__insert(dso, cache); dso 904 tools/perf/util/dso.c static ssize_t dso_cache_read(struct dso *dso, struct machine *machine, dso 909 tools/perf/util/dso.c cache = dso_cache__find(dso, offset); dso 913 tools/perf/util/dso.c return dso_cache__read(dso, machine, offset, data, size); dso 921 tools/perf/util/dso.c static ssize_t cached_read(struct dso *dso, struct machine *machine, dso 930 tools/perf/util/dso.c ret = dso_cache_read(dso, machine, offset, p, size); dso 950 tools/perf/util/dso.c static int file_size(struct dso *dso, struct machine *machine) dso 962 tools/perf/util/dso.c try_to_open_dso(dso, machine); dso 964 tools/perf/util/dso.c if (dso->data.fd < 0) { dso 966 tools/perf/util/dso.c dso->data.status = DSO_DATA_STATUS_ERROR; dso 970 tools/perf/util/dso.c if (fstat(dso->data.fd, &st) < 0) { dso 974 tools/perf/util/dso.c dso->data.status = DSO_DATA_STATUS_ERROR; dso 977 tools/perf/util/dso.c dso->data.file_size = st.st_size; dso 984 tools/perf/util/dso.c int dso__data_file_size(struct dso *dso, struct machine *machine) dso 986 tools/perf/util/dso.c if (dso->data.file_size) dso 989 tools/perf/util/dso.c if (dso->data.status == DSO_DATA_STATUS_ERROR) dso 992 tools/perf/util/dso.c if (dso->binary_type == DSO_BINARY_TYPE__BPF_PROG_INFO) dso 993 tools/perf/util/dso.c return bpf_size(dso); dso 995 tools/perf/util/dso.c return file_size(dso, machine); dso 1005 tools/perf/util/dso.c off_t dso__data_size(struct dso *dso, struct machine *machine) dso 1007 tools/perf/util/dso.c if (dso__data_file_size(dso, machine)) dso 1011 tools/perf/util/dso.c return dso->data.file_size; dso 1014 tools/perf/util/dso.c static ssize_t data_read_offset(struct dso *dso, struct machine *machine, dso 1017 tools/perf/util/dso.c if (dso__data_file_size(dso, machine)) dso 1021 tools/perf/util/dso.c if (offset > dso->data.file_size) dso 1027 tools/perf/util/dso.c return cached_read(dso, machine, offset, data, size); dso 1041 tools/perf/util/dso.c ssize_t dso__data_read_offset(struct dso *dso, struct machine *machine, dso 1044 tools/perf/util/dso.c if (dso->data.status == DSO_DATA_STATUS_ERROR) dso 1047 tools/perf/util/dso.c return data_read_offset(dso, machine, offset, data, size); dso 1060 tools/perf/util/dso.c ssize_t dso__data_read_addr(struct dso *dso, struct map *map, dso 1065 tools/perf/util/dso.c return dso__data_read_offset(dso, machine, offset, data, size); dso 1071 tools/perf/util/dso.c struct dso *dso = dso__new(name); dso 1073 tools/perf/util/dso.c if (dso) dso 1074 tools/perf/util/dso.c map = map__new2(0, dso); dso 1079 tools/perf/util/dso.c struct dso *machine__findnew_kernel(struct machine *machine, const char *name, dso 1085 tools/perf/util/dso.c struct dso *dso = machine__findnew_dso(machine, name); dso 1091 tools/perf/util/dso.c if (dso != NULL) { dso 1092 tools/perf/util/dso.c dso__set_short_name(dso, short_name, false); dso 1093 tools/perf/util/dso.c dso->kernel = dso_type; dso 1096 tools/perf/util/dso.c return dso; dso 1099 tools/perf/util/dso.c void dso__set_long_name(struct dso *dso, const char *name, bool name_allocated) dso 1101 tools/perf/util/dso.c struct rb_root *root = dso->root; dso 1106 tools/perf/util/dso.c if (dso->long_name_allocated) dso 1107 tools/perf/util/dso.c free((char *)dso->long_name); dso 1110 tools/perf/util/dso.c rb_erase(&dso->rb_node, root); dso 1115 tools/perf/util/dso.c RB_CLEAR_NODE(&dso->rb_node); dso 1116 tools/perf/util/dso.c dso->root = NULL; dso 1119 tools/perf/util/dso.c dso->long_name = name; dso 1120 tools/perf/util/dso.c dso->long_name_len = strlen(name); dso 1121 tools/perf/util/dso.c dso->long_name_allocated = name_allocated; dso 1124 tools/perf/util/dso.c __dsos__findnew_link_by_longname(root, dso, NULL); dso 1127 tools/perf/util/dso.c void dso__set_short_name(struct dso *dso, const char *name, bool name_allocated) dso 1132 tools/perf/util/dso.c if (dso->short_name_allocated) dso 1133 tools/perf/util/dso.c free((char *)dso->short_name); dso 1135 tools/perf/util/dso.c dso->short_name = name; dso 1136 tools/perf/util/dso.c dso->short_name_len = strlen(name); dso 1137 tools/perf/util/dso.c dso->short_name_allocated = name_allocated; dso 1140 tools/perf/util/dso.c int dso__name_len(const struct dso *dso) dso 1142 tools/perf/util/dso.c if (!dso) dso 1145 tools/perf/util/dso.c return dso->long_name_len; dso 1147 tools/perf/util/dso.c return dso->short_name_len; dso 1150 tools/perf/util/dso.c bool dso__loaded(const struct dso *dso) dso 1152 tools/perf/util/dso.c return dso->loaded; dso 1155 tools/perf/util/dso.c bool dso__sorted_by_name(const struct dso *dso) dso 1157 tools/perf/util/dso.c return dso->sorted_by_name; dso 1160 tools/perf/util/dso.c void dso__set_sorted_by_name(struct dso *dso) dso 1162 tools/perf/util/dso.c dso->sorted_by_name = true; dso 1165 tools/perf/util/dso.c struct dso *dso__new(const char *name) dso 1167 tools/perf/util/dso.c struct dso *dso = calloc(1, sizeof(*dso) + strlen(name) + 1); dso 1169 tools/perf/util/dso.c if (dso != NULL) { dso 1170 tools/perf/util/dso.c strcpy(dso->name, name); dso 1171 tools/perf/util/dso.c dso__set_long_name(dso, dso->name, false); dso 1172 tools/perf/util/dso.c dso__set_short_name(dso, dso->name, false); dso 1173 tools/perf/util/dso.c dso->symbols = dso->symbol_names = RB_ROOT_CACHED; dso 1174 tools/perf/util/dso.c dso->data.cache = RB_ROOT; dso 1175 tools/perf/util/dso.c dso->inlined_nodes = RB_ROOT_CACHED; dso 1176 tools/perf/util/dso.c dso->srclines = RB_ROOT_CACHED; dso 1177 tools/perf/util/dso.c dso->data.fd = -1; dso 1178 tools/perf/util/dso.c dso->data.status = DSO_DATA_STATUS_UNKNOWN; dso 1179 tools/perf/util/dso.c dso->symtab_type = DSO_BINARY_TYPE__NOT_FOUND; dso 1180 tools/perf/util/dso.c dso->binary_type = DSO_BINARY_TYPE__NOT_FOUND; dso 1181 tools/perf/util/dso.c dso->is_64_bit = (sizeof(void *) == 8); dso 1182 tools/perf/util/dso.c dso->loaded = 0; dso 1183 tools/perf/util/dso.c dso->rel = 0; dso 1184 tools/perf/util/dso.c dso->sorted_by_name = 0; dso 1185 tools/perf/util/dso.c dso->has_build_id = 0; dso 1186 tools/perf/util/dso.c dso->has_srcline = 1; dso 1187 tools/perf/util/dso.c dso->a2l_fails = 1; dso 1188 tools/perf/util/dso.c dso->kernel = DSO_TYPE_USER; dso 1189 tools/perf/util/dso.c dso->needs_swap = DSO_SWAP__UNSET; dso 1190 tools/perf/util/dso.c dso->comp = COMP_ID__NONE; dso 1191 tools/perf/util/dso.c RB_CLEAR_NODE(&dso->rb_node); dso 1192 tools/perf/util/dso.c dso->root = NULL; dso 1193 tools/perf/util/dso.c INIT_LIST_HEAD(&dso->node); dso 1194 tools/perf/util/dso.c INIT_LIST_HEAD(&dso->data.open_entry); dso 1195 tools/perf/util/dso.c pthread_mutex_init(&dso->lock, NULL); dso 1196 tools/perf/util/dso.c refcount_set(&dso->refcnt, 1); dso 1199 tools/perf/util/dso.c return dso; dso 1202 tools/perf/util/dso.c void dso__delete(struct dso *dso) dso 1204 tools/perf/util/dso.c if (!RB_EMPTY_NODE(&dso->rb_node)) dso 1206 tools/perf/util/dso.c dso->long_name); dso 1209 tools/perf/util/dso.c inlines__tree_delete(&dso->inlined_nodes); dso 1210 tools/perf/util/dso.c srcline__tree_delete(&dso->srclines); dso 1211 tools/perf/util/dso.c symbols__delete(&dso->symbols); dso 1213 tools/perf/util/dso.c if (dso->short_name_allocated) { dso 1214 tools/perf/util/dso.c zfree((char **)&dso->short_name); dso 1215 tools/perf/util/dso.c dso->short_name_allocated = false; dso 1218 tools/perf/util/dso.c if (dso->long_name_allocated) { dso 1219 tools/perf/util/dso.c zfree((char **)&dso->long_name); dso 1220 tools/perf/util/dso.c dso->long_name_allocated = false; dso 1223 tools/perf/util/dso.c dso__data_close(dso); dso 1224 tools/perf/util/dso.c auxtrace_cache__free(dso->auxtrace_cache); dso 1225 tools/perf/util/dso.c dso_cache__free(dso); dso 1226 tools/perf/util/dso.c dso__free_a2l(dso); dso 1227 tools/perf/util/dso.c zfree(&dso->symsrc_filename); dso 1228 tools/perf/util/dso.c nsinfo__zput(dso->nsinfo); dso 1229 tools/perf/util/dso.c pthread_mutex_destroy(&dso->lock); dso 1230 tools/perf/util/dso.c free(dso); dso 1233 tools/perf/util/dso.c struct dso *dso__get(struct dso *dso) dso 1235 tools/perf/util/dso.c if (dso) dso 1236 tools/perf/util/dso.c refcount_inc(&dso->refcnt); dso 1237 tools/perf/util/dso.c return dso; dso 1240 tools/perf/util/dso.c void dso__put(struct dso *dso) dso 1242 tools/perf/util/dso.c if (dso && refcount_dec_and_test(&dso->refcnt)) dso 1243 tools/perf/util/dso.c dso__delete(dso); dso 1246 tools/perf/util/dso.c void dso__set_build_id(struct dso *dso, void *build_id) dso 1248 tools/perf/util/dso.c memcpy(dso->build_id, build_id, sizeof(dso->build_id)); dso 1249 tools/perf/util/dso.c dso->has_build_id = 1; dso 1252 tools/perf/util/dso.c bool dso__build_id_equal(const struct dso *dso, u8 *build_id) dso 1254 tools/perf/util/dso.c return memcmp(dso->build_id, build_id, sizeof(dso->build_id)) == 0; dso 1257 tools/perf/util/dso.c void dso__read_running_kernel_build_id(struct dso *dso, struct machine *machine) dso 1264 tools/perf/util/dso.c if (sysfs__read_build_id(path, dso->build_id, dso 1265 tools/perf/util/dso.c sizeof(dso->build_id)) == 0) dso 1266 tools/perf/util/dso.c dso->has_build_id = true; dso 1269 tools/perf/util/dso.c int dso__kernel_module_get_build_id(struct dso *dso, dso 1277 tools/perf/util/dso.c const char *name = dso->short_name + 1; dso 1283 tools/perf/util/dso.c if (sysfs__read_build_id(filename, dso->build_id, dso 1284 tools/perf/util/dso.c sizeof(dso->build_id)) == 0) dso 1285 tools/perf/util/dso.c dso->has_build_id = true; dso 1290 tools/perf/util/dso.c size_t dso__fprintf_buildid(struct dso *dso, FILE *fp) dso 1294 tools/perf/util/dso.c build_id__sprintf(dso->build_id, sizeof(dso->build_id), sbuild_id); dso 1298 tools/perf/util/dso.c size_t dso__fprintf(struct dso *dso, FILE *fp) dso 1301 tools/perf/util/dso.c size_t ret = fprintf(fp, "dso: %s (", dso->short_name); dso 1303 tools/perf/util/dso.c if (dso->short_name != dso->long_name) dso 1304 tools/perf/util/dso.c ret += fprintf(fp, "%s, ", dso->long_name); dso 1305 tools/perf/util/dso.c ret += fprintf(fp, "%sloaded, ", dso__loaded(dso) ? "" : "NOT "); dso 1306 tools/perf/util/dso.c ret += dso__fprintf_buildid(dso, fp); dso 1308 tools/perf/util/dso.c for (nd = rb_first_cached(&dso->symbols); nd; nd = rb_next(nd)) { dso 1316 tools/perf/util/dso.c enum dso_type dso__type(struct dso *dso, struct machine *machine) dso 1321 tools/perf/util/dso.c fd = dso__data_get_fd(dso, machine); dso 1324 tools/perf/util/dso.c dso__data_put_fd(dso); dso 1330 tools/perf/util/dso.c int dso__strerror_load(struct dso *dso, char *buf, size_t buflen) dso 1332 tools/perf/util/dso.c int idx, errnum = dso->load_errno; dso 100 tools/perf/util/dso.h #define DSO__SWAP(dso, type, val) \ dso 103 tools/perf/util/dso.h BUG_ON(dso->needs_swap == DSO_SWAP__UNSET); \ dso 104 tools/perf/util/dso.h if (dso->needs_swap == DSO_SWAP__YES) { \ dso 209 tools/perf/util/dso.h #define dso__for_each_symbol(dso, pos, n) \ dso 210 tools/perf/util/dso.h symbols__for_each_entry(&(dso)->symbols, pos, n) dso 212 tools/perf/util/dso.h static inline void dso__set_loaded(struct dso *dso) dso 214 tools/perf/util/dso.h dso->loaded = true; dso 217 tools/perf/util/dso.h struct dso *dso__new(const char *name); dso 218 tools/perf/util/dso.h void dso__delete(struct dso *dso); dso 220 tools/perf/util/dso.h void dso__set_short_name(struct dso *dso, const char *name, bool name_allocated); dso 221 tools/perf/util/dso.h void dso__set_long_name(struct dso *dso, const char *name, bool name_allocated); dso 223 tools/perf/util/dso.h int dso__name_len(const struct dso *dso); dso 225 tools/perf/util/dso.h struct dso *dso__get(struct dso *dso); dso 226 tools/perf/util/dso.h void dso__put(struct dso *dso); dso 228 tools/perf/util/dso.h static inline void __dso__zput(struct dso **dso) dso 230 tools/perf/util/dso.h dso__put(*dso); dso 231 tools/perf/util/dso.h *dso = NULL; dso 234 tools/perf/util/dso.h #define dso__zput(dso) __dso__zput(&dso) dso 236 tools/perf/util/dso.h bool dso__loaded(const struct dso *dso); dso 238 tools/perf/util/dso.h static inline bool dso__has_symbols(const struct dso *dso) dso 240 tools/perf/util/dso.h return !RB_EMPTY_ROOT(&dso->symbols.rb_root); dso 243 tools/perf/util/dso.h bool dso__sorted_by_name(const struct dso *dso); dso 244 tools/perf/util/dso.h void dso__set_sorted_by_name(struct dso *dso); dso 245 tools/perf/util/dso.h void dso__sort_by_name(struct dso *dso); dso 247 tools/perf/util/dso.h void dso__set_build_id(struct dso *dso, void *build_id); dso 248 tools/perf/util/dso.h bool dso__build_id_equal(const struct dso *dso, u8 *build_id); dso 249 tools/perf/util/dso.h void dso__read_running_kernel_build_id(struct dso *dso, dso 251 tools/perf/util/dso.h int dso__kernel_module_get_build_id(struct dso *dso, const char *root_dir); dso 253 tools/perf/util/dso.h char dso__symtab_origin(const struct dso *dso); dso 254 tools/perf/util/dso.h int dso__read_binary_type_filename(const struct dso *dso, enum dso_binary_type type, dso 257 tools/perf/util/dso.h bool dso__needs_decompress(struct dso *dso); dso 258 tools/perf/util/dso.h int dso__decompress_kmodule_fd(struct dso *dso, const char *name); dso 259 tools/perf/util/dso.h int dso__decompress_kmodule_path(struct dso *dso, const char *name, dso 277 tools/perf/util/dso.h void dso__set_module_info(struct dso *dso, struct kmod_path *m, dso 323 tools/perf/util/dso.h int dso__data_get_fd(struct dso *dso, struct machine *machine); dso 324 tools/perf/util/dso.h void dso__data_put_fd(struct dso *dso); dso 325 tools/perf/util/dso.h void dso__data_close(struct dso *dso); dso 327 tools/perf/util/dso.h int dso__data_file_size(struct dso *dso, struct machine *machine); dso 328 tools/perf/util/dso.h off_t dso__data_size(struct dso *dso, struct machine *machine); dso 329 tools/perf/util/dso.h ssize_t dso__data_read_offset(struct dso *dso, struct machine *machine, dso 331 tools/perf/util/dso.h ssize_t dso__data_read_addr(struct dso *dso, struct map *map, dso 334 tools/perf/util/dso.h bool dso__data_status_seen(struct dso *dso, enum dso_data_status_seen by); dso 337 tools/perf/util/dso.h struct dso *machine__findnew_kernel(struct machine *machine, const char *name, dso 340 tools/perf/util/dso.h void dso__reset_find_symbol_cache(struct dso *dso); dso 342 tools/perf/util/dso.h size_t dso__fprintf_buildid(struct dso *dso, FILE *fp); dso 343 tools/perf/util/dso.h size_t dso__fprintf_symbols_by_name(struct dso *dso, FILE *fp); dso 344 tools/perf/util/dso.h size_t dso__fprintf(struct dso *dso, FILE *fp); dso 346 tools/perf/util/dso.h static inline bool dso__is_vmlinux(struct dso *dso) dso 348 tools/perf/util/dso.h return dso->binary_type == DSO_BINARY_TYPE__VMLINUX || dso 349 tools/perf/util/dso.h dso->binary_type == DSO_BINARY_TYPE__GUEST_VMLINUX; dso 352 tools/perf/util/dso.h static inline bool dso__is_kcore(struct dso *dso) dso 354 tools/perf/util/dso.h return dso->binary_type == DSO_BINARY_TYPE__KCORE || dso 355 tools/perf/util/dso.h dso->binary_type == DSO_BINARY_TYPE__GUEST_KCORE; dso 358 tools/perf/util/dso.h static inline bool dso__is_kallsyms(struct dso *dso) dso 360 tools/perf/util/dso.h return dso->kernel && dso->long_name[0] != '/'; dso 363 tools/perf/util/dso.h void dso__free_a2l(struct dso *dso); dso 365 tools/perf/util/dso.h enum dso_type dso__type(struct dso *dso, struct machine *machine); dso 367 tools/perf/util/dso.h int dso__strerror_load(struct dso *dso, char *buf, size_t buflen); dso 15 tools/perf/util/dsos.c struct dso *pos; dso 42 tools/perf/util/dsos.c struct dso *__dsos__findnew_link_by_longname(struct rb_root *root, struct dso *dso, const char *name) dso 48 tools/perf/util/dsos.c name = dso->long_name; dso 53 tools/perf/util/dsos.c struct dso *this = rb_entry(*p, struct dso, rb_node); dso 63 tools/perf/util/dsos.c if (!dso || (dso == this)) dso 70 tools/perf/util/dsos.c rc = strcmp(dso->short_name, this->short_name); dso 81 tools/perf/util/dsos.c if (dso) { dso 83 tools/perf/util/dsos.c rb_link_node(&dso->rb_node, parent, p); dso 84 tools/perf/util/dsos.c rb_insert_color(&dso->rb_node, root); dso 85 tools/perf/util/dsos.c dso->root = root; dso 90 tools/perf/util/dsos.c void __dsos__add(struct dsos *dsos, struct dso *dso) dso 92 tools/perf/util/dsos.c list_add_tail(&dso->node, &dsos->head); dso 93 tools/perf/util/dsos.c __dsos__findnew_link_by_longname(&dsos->root, dso, NULL); dso 114 tools/perf/util/dsos.c dso__get(dso); dso 117 tools/perf/util/dsos.c void dsos__add(struct dsos *dsos, struct dso *dso) dso 120 tools/perf/util/dsos.c __dsos__add(dsos, dso); dso 124 tools/perf/util/dsos.c struct dso *__dsos__find(struct dsos *dsos, const char *name, bool cmp_short) dso 126 tools/perf/util/dsos.c struct dso *pos; dso 137 tools/perf/util/dsos.c struct dso *dsos__find(struct dsos *dsos, const char *name, bool cmp_short) dso 139 tools/perf/util/dsos.c struct dso *dso; dso 141 tools/perf/util/dsos.c dso = __dsos__find(dsos, name, cmp_short); dso 143 tools/perf/util/dsos.c return dso; dso 146 tools/perf/util/dsos.c static void dso__set_basename(struct dso *dso) dso 151 tools/perf/util/dsos.c if (sscanf(dso->long_name, "/tmp/perf-%d.map", &tid) == 1) { dso 159 tools/perf/util/dsos.c lname = strdup(dso->long_name); dso 175 tools/perf/util/dsos.c dso__set_short_name(dso, base, true); dso 178 tools/perf/util/dsos.c struct dso *__dsos__addnew(struct dsos *dsos, const char *name) dso 180 tools/perf/util/dsos.c struct dso *dso = dso__new(name); dso 182 tools/perf/util/dsos.c if (dso != NULL) { dso 183 tools/perf/util/dsos.c __dsos__add(dsos, dso); dso 184 tools/perf/util/dsos.c dso__set_basename(dso); dso 186 tools/perf/util/dsos.c dso__put(dso); dso 188 tools/perf/util/dsos.c return dso; dso 191 tools/perf/util/dsos.c struct dso *__dsos__findnew(struct dsos *dsos, const char *name) dso 193 tools/perf/util/dsos.c struct dso *dso = __dsos__find(dsos, name, false); dso 195 tools/perf/util/dsos.c return dso ? dso : __dsos__addnew(dsos, name); dso 198 tools/perf/util/dsos.c struct dso *dsos__findnew(struct dsos *dsos, const char *name) dso 200 tools/perf/util/dsos.c struct dso *dso; dso 202 tools/perf/util/dsos.c dso = dso__get(__dsos__findnew(dsos, name)); dso 204 tools/perf/util/dsos.c return dso; dso 208 tools/perf/util/dsos.c bool (skip)(struct dso *dso, int parm), int parm) dso 210 tools/perf/util/dsos.c struct dso *pos; dso 224 tools/perf/util/dsos.c struct dso *pos; dso 11 tools/perf/util/dsos.h struct dso; dso 23 tools/perf/util/dsos.h void __dsos__add(struct dsos *dsos, struct dso *dso); dso 24 tools/perf/util/dsos.h void dsos__add(struct dsos *dsos, struct dso *dso); dso 25 tools/perf/util/dsos.h struct dso *__dsos__addnew(struct dsos *dsos, const char *name); dso 26 tools/perf/util/dsos.h struct dso *__dsos__find(struct dsos *dsos, const char *name, bool cmp_short); dso 27 tools/perf/util/dsos.h struct dso *dsos__find(struct dsos *dsos, const char *name, bool cmp_short); dso 28 tools/perf/util/dsos.h struct dso *__dsos__findnew(struct dsos *dsos, const char *name); dso 29 tools/perf/util/dsos.h struct dso *dsos__findnew(struct dsos *dsos, const char *name); dso 31 tools/perf/util/dsos.h struct dso *__dsos__findnew_link_by_longname(struct rb_root *root, struct dso *dso, const char *name); dso 33 tools/perf/util/dsos.h static inline struct dso *__dsos__findnew_by_longname(struct rb_root *root, const char *name) dso 41 tools/perf/util/dsos.h bool (skip)(struct dso *dso, int parm), int parm); dso 569 tools/perf/util/event.c al->map ? al->map->dso->long_name : dso 588 tools/perf/util/event.c struct dso *dso = al->map->dso; dso 591 tools/perf/util/event.c (!dso || !(strlist__has_entry(symbol_conf.dso_list, dso 592 tools/perf/util/event.c dso->short_name) || dso 593 tools/perf/util/event.c (dso->short_name != dso->long_name && dso 595 tools/perf/util/event.c dso->long_name))))) { dso 17 tools/perf/util/event.h struct dso; dso 1893 tools/perf/util/header.c struct dso *dso; dso 1917 tools/perf/util/header.c dso = machine__findnew_dso(machine, filename); dso 1918 tools/perf/util/header.c if (dso != NULL) { dso 1921 tools/perf/util/header.c dso__set_build_id(dso, &bev->build_id); dso 1927 tools/perf/util/header.c dso__set_module_info(dso, &m, machine); dso 1929 tools/perf/util/header.c dso->kernel = dso_type; dso 1934 tools/perf/util/header.c build_id__sprintf(dso->build_id, sizeof(dso->build_id), dso 1937 tools/perf/util/header.c dso->long_name, sbuild_id); dso 1938 tools/perf/util/header.c dso__put(dso); dso 67 tools/perf/util/hist.c static void hists__set_unres_dso_col_len(struct hists *hists, int dso) dso 71 tools/perf/util/hist.c if (hists__col_len(hists, dso) < unresolved_col_width && dso 74 tools/perf/util/hist.c hists__set_col_len(hists, dso, unresolved_col_width); dso 104 tools/perf/util/hist.c len = dso__name_len(h->ms.map->dso); dso 118 tools/perf/util/hist.c symlen = dso__name_len(h->branch_info->from.map->dso); dso 132 tools/perf/util/hist.c symlen = dso__name_len(h->branch_info->to.map->dso); dso 176 tools/perf/util/hist.c symlen = dso__name_len(h->mem_info->daddr.map->dso); dso 2044 tools/perf/util/hist.c (he->ms.map == NULL || he->ms.map->dso != hists->dso_filter)) { dso 2629 tools/perf/util/hist.c const struct dso *dso = hists->dso_filter; dso 2694 tools/perf/util/hist.c if (dso) dso 2696 tools/perf/util/hist.c ", DSO: %s", dso->short_name); dso 76 tools/perf/util/hist.h struct dso; dso 88 tools/perf/util/hist.h const struct dso *dso_filter; dso 292 tools/perf/util/hist.h int dso; dso 433 tools/perf/util/intel-pt.c static unsigned int intel_pt_cache_size(struct dso *dso, dso 438 tools/perf/util/intel-pt.c size = dso__data_size(dso, machine); dso 447 tools/perf/util/intel-pt.c static struct auxtrace_cache *intel_pt_cache(struct dso *dso, dso 453 tools/perf/util/intel-pt.c if (dso->auxtrace_cache) dso 454 tools/perf/util/intel-pt.c return dso->auxtrace_cache; dso 456 tools/perf/util/intel-pt.c bits = intel_pt_cache_size(dso, machine); dso 461 tools/perf/util/intel-pt.c dso->auxtrace_cache = c; dso 466 tools/perf/util/intel-pt.c static int intel_pt_cache_add(struct dso *dso, struct machine *machine, dso 470 tools/perf/util/intel-pt.c struct auxtrace_cache *c = intel_pt_cache(dso, machine); dso 497 tools/perf/util/intel-pt.c intel_pt_cache_lookup(struct dso *dso, struct machine *machine, u64 offset) dso 499 tools/perf/util/intel-pt.c struct auxtrace_cache *c = intel_pt_cache(dso, machine); dso 504 tools/perf/util/intel-pt.c return auxtrace_cache__lookup(dso->auxtrace_cache, offset); dso 546 tools/perf/util/intel-pt.c if (!thread__find_map(thread, cpumode, *ip, &al) || !al.map->dso) dso 549 tools/perf/util/intel-pt.c if (al.map->dso->data.status == DSO_DATA_STATUS_ERROR && dso 550 tools/perf/util/intel-pt.c dso__data_status_seen(al.map->dso, dso 559 tools/perf/util/intel-pt.c e = intel_pt_cache_lookup(al.map->dso, machine, offset); dso 581 tools/perf/util/intel-pt.c x86_64 = al.map->dso->is_64_bit; dso 584 tools/perf/util/intel-pt.c len = dso__data_read_offset(al.map->dso, machine, dso 628 tools/perf/util/intel-pt.c e = intel_pt_cache_lookup(al.map->dso, machine, start_offset); dso 634 tools/perf/util/intel-pt.c intel_pt_cache_add(al.map->dso, machine, start_offset, insn_cnt, dso 699 tools/perf/util/intel-pt.c if (!thread__find_map(thread, cpumode, ip, &al) || !al.map->dso) dso 705 tools/perf/util/intel-pt.c al.map->dso->long_name); dso 2035 tools/perf/util/intel-pt.c start = dso__first_symbol(map->dso); dso 168 tools/perf/util/machine.c struct dso *pos, *n; dso 669 tools/perf/util/machine.c static struct dso *machine__findnew_module_dso(struct machine *machine, dso 673 tools/perf/util/machine.c struct dso *dso; dso 677 tools/perf/util/machine.c dso = __dsos__find(&machine->dsos, m->name, true); dso 678 tools/perf/util/machine.c if (!dso) { dso 679 tools/perf/util/machine.c dso = __dsos__addnew(&machine->dsos, m->name); dso 680 tools/perf/util/machine.c if (dso == NULL) dso 683 tools/perf/util/machine.c dso__set_module_info(dso, m, machine); dso 684 tools/perf/util/machine.c dso__set_long_name(dso, strdup(filename), true); dso 687 tools/perf/util/machine.c dso__get(dso); dso 690 tools/perf/util/machine.c return dso; dso 740 tools/perf/util/machine.c dso__insert_symbol(map->dso, sym); dso 774 tools/perf/util/machine.c struct dso *dso = NULL; dso 784 tools/perf/util/machine.c dso = machine__findnew_module_dso(machine, &m, filename); dso 785 tools/perf/util/machine.c if (dso == NULL) dso 788 tools/perf/util/machine.c map = map__new2(start, dso); dso 798 tools/perf/util/machine.c dso__put(dso); dso 817 tools/perf/util/machine.c bool (skip)(struct dso *dso, int parm), int parm) dso 823 tools/perf/util/machine.c bool (skip)(struct dso *dso, int parm), int parm) dso 839 tools/perf/util/machine.c struct dso *kdso = machine__kernel_map(machine)->dso; dso 880 tools/perf/util/machine.c static struct dso *machine__get_kernel(struct machine *machine) dso 883 tools/perf/util/machine.c struct dso *kernel; dso 961 tools/perf/util/machine.c struct dso *kernel, dso 989 tools/perf/util/machine.c static u64 find_entry_trampoline(struct dso *dso) dso 997 tools/perf/util/machine.c struct symbol *sym = dso__first_symbol(dso); dso 1022 tools/perf/util/machine.c struct dso *kernel) dso 1079 tools/perf/util/machine.c struct dso *kernel __maybe_unused) dso 1085 tools/perf/util/machine.c __machine__create_kernel_maps(struct machine *machine, struct dso *kernel) dso 1204 tools/perf/util/machine.c int ret = __dso__load_kallsyms(map->dso, filename, map, true); dso 1207 tools/perf/util/machine.c dso__set_loaded(map->dso); dso 1222 tools/perf/util/machine.c int ret = dso__load_vmlinux_path(map->dso, map); dso 1225 tools/perf/util/machine.c dso__set_loaded(map->dso); dso 1258 tools/perf/util/machine.c static bool is_kmod_dso(struct dso *dso) dso 1260 tools/perf/util/machine.c return dso->symtab_type == DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE || dso 1261 tools/perf/util/machine.c dso->symtab_type == DSO_BINARY_TYPE__GUEST_KMODULE; dso 1277 tools/perf/util/machine.c dso__set_long_name(map->dso, long_name, true); dso 1278 tools/perf/util/machine.c dso__kernel_module_get_build_id(map->dso, ""); dso 1284 tools/perf/util/machine.c if (m->comp && is_kmod_dso(map->dso)) { dso 1285 tools/perf/util/machine.c map->dso->symtab_type++; dso 1286 tools/perf/util/machine.c map->dso->comp = m->comp; dso 1387 tools/perf/util/machine.c dso__kernel_module_get_build_id(map->dso, machine->root_dir); dso 1447 tools/perf/util/machine.c struct dso *kernel = machine__get_kernel(machine); dso 1501 tools/perf/util/machine.c struct dso *dso; dso 1503 tools/perf/util/machine.c list_for_each_entry(dso, &machine->dsos.head, node) { dso 1504 tools/perf/util/machine.c if (dso__is_kcore(dso)) dso 1522 tools/perf/util/machine.c struct dso *kernel = kernel_map ? kernel_map->dso : NULL; dso 1571 tools/perf/util/machine.c struct dso *kernel = NULL; dso 1572 tools/perf/util/machine.c struct dso *dso; dso 1576 tools/perf/util/machine.c list_for_each_entry(dso, &machine->dsos.head, node) { dso 1594 tools/perf/util/machine.c if (!dso->kernel || dso 1595 tools/perf/util/machine.c is_kernel_module(dso->long_name, dso 1600 tools/perf/util/machine.c kernel = dso; dso 1987 tools/perf/util/machine.c srcline = srcline__tree_find(&map->dso->srclines, ip); dso 1992 tools/perf/util/machine.c srcline = get_srcline(map->dso, map__rip_2objdump(map, ip), dso 1994 tools/perf/util/machine.c srcline__tree_insert(&map->dso->srclines, ip, srcline); dso 2436 tools/perf/util/machine.c inline_node = inlines__tree_find(&map->dso->inlined_nodes, addr); dso 2438 tools/perf/util/machine.c inline_node = dso__parse_addr_inlines(map->dso, addr, sym); dso 2441 tools/perf/util/machine.c inlines__tree_insert(&map->dso->inlined_nodes, inline_node); dso 2703 tools/perf/util/machine.c struct dso *machine__findnew_dso(struct machine *machine, const char *filename) dso 2717 tools/perf/util/machine.c *modp = __map__is_kmodule(map) ? (char *)map->dso->short_name : NULL; dso 13 tools/perf/util/machine.h struct dso; dso 205 tools/perf/util/machine.h struct dso *machine__findnew_dso(struct machine *machine, const char *filename); dso 233 tools/perf/util/machine.h bool (skip)(struct dso *dso, int parm), int parm); dso 236 tools/perf/util/machine.h bool (skip)(struct dso *dso, int parm), int parm); dso 266 tools/perf/util/machine.h struct dso *kernel); dso 277 tools/perf/util/machine.h struct dso *kernel, dso 281 tools/perf/util/machine.h struct dso *kernel); dso 133 tools/perf/util/map.c void map__init(struct map *map, u64 start, u64 end, u64 pgoff, struct dso *dso) dso 139 tools/perf/util/map.c map->dso = dso__get(dso); dso 159 tools/perf/util/map.c struct dso *dso; dso 198 tools/perf/util/map.c dso = machine__findnew_vdso(machine, thread); dso 200 tools/perf/util/map.c dso = machine__findnew_dso(machine, filename); dso 202 tools/perf/util/map.c if (dso == NULL) dso 205 tools/perf/util/map.c map__init(map, start, start + len, pgoff, dso); dso 216 tools/perf/util/map.c dso__set_loaded(dso); dso 218 tools/perf/util/map.c dso->nsinfo = nsi; dso 219 tools/perf/util/map.c dso__put(dso); dso 233 tools/perf/util/map.c struct map *map__new2(u64 start, struct dso *dso) dso 236 tools/perf/util/map.c (dso->kernel ? sizeof(struct kmap) : 0))); dso 241 tools/perf/util/map.c map__init(map, start, 0, 0, dso); dso 272 tools/perf/util/map.c if (map->dso->binary_type == DSO_BINARY_TYPE__BPF_PROG_INFO) dso 280 tools/perf/util/map.c name = map->dso->short_name; dso 286 tools/perf/util/map.c return dso__has_symbols(map->dso); dso 292 tools/perf/util/map.c dso__zput(map->dso); dso 309 tools/perf/util/map.c struct rb_root_cached *symbols = &map->dso->symbols; dso 319 tools/perf/util/map.c struct rb_root_cached *symbols = &map->dso->symbols; dso 331 tools/perf/util/map.c const char *name = map->dso->long_name; dso 334 tools/perf/util/map.c if (dso__loaded(map->dso)) dso 337 tools/perf/util/map.c nr = dso__load(map->dso, map); dso 339 tools/perf/util/map.c if (map->dso->has_build_id) { dso 342 tools/perf/util/map.c build_id__sprintf(map->dso->build_id, dso 343 tools/perf/util/map.c sizeof(map->dso->build_id), dso 376 tools/perf/util/map.c return dso__find_symbol(map->dso, addr); dso 384 tools/perf/util/map.c if (!dso__sorted_by_name(map->dso)) dso 385 tools/perf/util/map.c dso__sort_by_name(map->dso); dso 387 tools/perf/util/map.c return dso__find_symbol_by_name(map->dso, name); dso 397 tools/perf/util/map.c dso__get(map->dso); dso 407 tools/perf/util/map.c map->start, map->end, map->pgoff, map->dso->name); dso 415 tools/perf/util/map.c if (map && map->dso) { dso 416 tools/perf/util/map.c if (symbol_conf.show_kernel_path && map->dso->long_name) dso 417 tools/perf/util/map.c dsoname = map->dso->long_name; dso 419 tools/perf/util/map.c dsoname = map->dso->name; dso 434 tools/perf/util/map.c return get_srcline(map->dso, map__rip_2objdump(map, addr), sym, true, true, addr); dso 442 tools/perf/util/map.c if (map && map->dso) { dso 461 tools/perf/util/map.c if (!map || !map->dso) dso 463 tools/perf/util/map.c srcfile = get_srcline_split(map->dso, dso 529 tools/perf/util/map.c if (!map->dso->adjust_symbols) dso 532 tools/perf/util/map.c if (map->dso->rel) dso 539 tools/perf/util/map.c if (map->dso->kernel == DSO_TYPE_USER) dso 540 tools/perf/util/map.c return rip + map->dso->text_offset; dso 559 tools/perf/util/map.c if (!map->dso->adjust_symbols) dso 562 tools/perf/util/map.c if (map->dso->rel) dso 569 tools/perf/util/map.c if (map->dso->kernel == DSO_TYPE_USER) dso 570 tools/perf/util/map.c return map->unmap_ip(map, ip - map->dso->text_offset); dso 751 tools/perf/util/map.c printed += dso__fprintf(pos->dso, fp); dso 817 tools/perf/util/map.c map->dso->name); dso 942 tools/perf/util/map.c rc = strcmp(m->dso->short_name, map->dso->short_name); dso 1021 tools/perf/util/map.c if (!map->dso || !map->dso->kernel) dso 14 tools/perf/util/map.h struct dso; dso 44 tools/perf/util/map.h struct dso *dso; dso 92 tools/perf/util/map.h dso__for_each_symbol(map->dso, pos, n) dso 112 tools/perf/util/map.h u64 start, u64 end, u64 pgoff, struct dso *dso); dso 117 tools/perf/util/map.h struct map *map__new2(u64 start, struct dso *dso); dso 158 tools/perf/util/probe-event.c if (strncmp(pos->dso->short_name + 1, module, dso 159 tools/perf/util/probe-event.c pos->dso->short_name_len - 2) == 0 && dso 160 tools/perf/util/probe-event.c module[pos->dso->short_name_len - 2] == '\0') { dso 174 tools/perf/util/probe-event.c if (map && map->dso) dso 175 tools/perf/util/probe-event.c map->dso->nsinfo = nsinfo__get(nsi); dso 313 tools/perf/util/probe-event.c static int kernel_get_module_dso(const char *module, struct dso **pdso) dso 315 tools/perf/util/probe-event.c struct dso *dso; dso 326 tools/perf/util/probe-event.c dso = map->dso; dso 334 tools/perf/util/probe-event.c dso = map->dso; dso 337 tools/perf/util/probe-event.c dso->load_errno = 0; dso 339 tools/perf/util/probe-event.c ret = dso__load_vmlinux(dso, map, vmlinux_name, false); dso 341 tools/perf/util/probe-event.c ret = dso__load_vmlinux_path(dso, map); dso 343 tools/perf/util/probe-event.c *pdso = dso; dso 453 tools/perf/util/probe-event.c struct dso *dso = NULL; dso 458 tools/perf/util/probe-event.c err = kernel_get_module_dso(module, &dso); dso 460 tools/perf/util/probe-event.c if (!dso || dso->load_errno == 0) { dso 464 tools/perf/util/probe-event.c dso__strerror_load(dso, reason, STRERR_BUFSIZE); dso 473 tools/perf/util/probe-event.c path = dso->long_name; dso 3530 tools/perf/util/probe-event.c if (!dso__sorted_by_name(map->dso)) dso 3531 tools/perf/util/probe-event.c dso__sort_by_name(map->dso); dso 3536 tools/perf/util/probe-event.c for (nd = rb_first_cached(&map->dso->symbol_names); nd; dso 111 tools/perf/util/probe-finder.c struct dso *dso; dso 115 tools/perf/util/probe-finder.c dso = dso__new(path); dso 116 tools/perf/util/probe-finder.c if (!dso) dso 122 tools/perf/util/probe-finder.c if (dso__read_binary_type_filename(dso, *type, &nil, dso 127 tools/perf/util/probe-finder.c dso__put(dso); dso 318 tools/perf/util/scripting-engines/trace-event-perl.c if (map && map->dso) { dso 319 tools/perf/util/scripting-engines/trace-event-perl.c if (symbol_conf.show_kernel_path && map->dso->long_name) dso 320 tools/perf/util/scripting-engines/trace-event-perl.c dsoname = map->dso->long_name; dso 322 tools/perf/util/scripting-engines/trace-event-perl.c dsoname = map->dso->name; dso 384 tools/perf/util/scripting-engines/trace-event-python.c if (map && map->dso) { dso 385 tools/perf/util/scripting-engines/trace-event-python.c if (symbol_conf.show_kernel_path && map->dso->long_name) dso 386 tools/perf/util/scripting-engines/trace-event-python.c dsoname = map->dso->long_name; dso 388 tools/perf/util/scripting-engines/trace-event-python.c dsoname = map->dso->name; dso 772 tools/perf/util/scripting-engines/trace-event-python.c _PyUnicode_FromString(al->map->dso->name)); dso 1055 tools/perf/util/scripting-engines/trace-event-python.c static int python_export_dso(struct db_export *dbe, struct dso *dso, dso 1062 tools/perf/util/scripting-engines/trace-event-python.c build_id__sprintf(dso->build_id, sizeof(dso->build_id), sbuild_id); dso 1066 tools/perf/util/scripting-engines/trace-event-python.c tuple_set_u64(t, 0, dso->db_id); dso 1068 tools/perf/util/scripting-engines/trace-event-python.c tuple_set_string(t, 2, dso->short_name); dso 1069 tools/perf/util/scripting-engines/trace-event-python.c tuple_set_string(t, 3, dso->long_name); dso 1080 tools/perf/util/scripting-engines/trace-event-python.c struct dso *dso) dso 1089 tools/perf/util/scripting-engines/trace-event-python.c tuple_set_u64(t, 1, dso->db_id); dso 1551 tools/perf/util/scripting-engines/trace-event-python.c SET_TABLE_HANDLER(dso); dso 2271 tools/perf/util/session.c bool (skip)(struct dso *dso, int parm), int parm) dso 109 tools/perf/util/session.h bool (fn)(struct dso *dso, int parm), int parm); dso 170 tools/perf/util/sort.c struct dso *dso_l = map_l ? map_l->dso : NULL; dso 171 tools/perf/util/sort.c struct dso *dso_r = map_r ? map_r->dso : NULL; dso 197 tools/perf/util/sort.c if (map && map->dso) { dso 198 tools/perf/util/sort.c const char *dso_name = verbose > 0 ? map->dso->long_name : dso 199 tools/perf/util/sort.c map->dso->short_name; dso 214 tools/perf/util/sort.c const struct dso *dso = arg; dso 219 tools/perf/util/sort.c return dso && (!he->ms.map || he->ms.map->dso != dso); dso 272 tools/perf/util/sort.c if (!hists__has(left->hists, dso) || hists__has(right->hists, dso)) { dso 297 tools/perf/util/sort.c char o = map ? dso__symtab_origin(map->dso) : '!'; dso 507 tools/perf/util/sort.c sf = __get_srcline(map->dso, map__rip_2objdump(map, e->ip), dso 789 tools/perf/util/sort.c const struct dso *dso = arg; dso 794 tools/perf/util/sort.c return dso && (!he->branch_info || !he->branch_info->from.map || dso 795 tools/perf/util/sort.c he->branch_info->from.map->dso != dso); dso 821 tools/perf/util/sort.c const struct dso *dso = arg; dso 826 tools/perf/util/sort.c return dso && (!he->branch_info || !he->branch_info->to.map || dso 827 tools/perf/util/sort.c he->branch_info->to.map->dso != dso); dso 1632 tools/perf/util/sort.c if (map && map->dso) dso 1852 tools/perf/util/sort.c MK_SORT_ENTRY_CHK(dso) dso 2606 tools/perf/util/sort.c list->dso = 1; dso 3106 tools/perf/util/sort.c perf_hpp_list.dso = 0; dso 21 tools/perf/util/srcline.c static const char *dso__name(struct dso *dso) dso 25 tools/perf/util/srcline.c if (dso->symsrc_filename) dso 26 tools/perf/util/srcline.c dso_name = dso->symsrc_filename; dso 28 tools/perf/util/srcline.c dso_name = dso->long_name; dso 83 tools/perf/util/srcline.c static struct symbol *new_inline_sym(struct dso *dso, dso 93 tools/perf/util/srcline.c if (dso) { dso 94 tools/perf/util/srcline.c demangled = dso__demangle_sym(dso, 0, funcname); dso 278 tools/perf/util/srcline.c static int inline_list__append_dso_a2l(struct dso *dso, dso 282 tools/perf/util/srcline.c struct a2l_data *a2l = dso->a2l; dso 283 tools/perf/util/srcline.c struct symbol *inline_sym = new_inline_sym(dso, sym, a2l->funcname); dso 293 tools/perf/util/srcline.c char **file, unsigned int *line, struct dso *dso, dso 298 tools/perf/util/srcline.c struct a2l_data *a2l = dso->a2l; dso 301 tools/perf/util/srcline.c dso->a2l = addr2line_init(dso_name); dso 302 tools/perf/util/srcline.c a2l = dso->a2l; dso 322 tools/perf/util/srcline.c if (node && inline_list__append_dso_a2l(dso, node, sym)) dso 333 tools/perf/util/srcline.c if (inline_list__append_dso_a2l(dso, node, sym)) dso 352 tools/perf/util/srcline.c void dso__free_a2l(struct dso *dso) dso 354 tools/perf/util/srcline.c struct a2l_data *a2l = dso->a2l; dso 361 tools/perf/util/srcline.c dso->a2l = NULL; dso 365 tools/perf/util/srcline.c struct dso *dso, struct symbol *sym) dso 378 tools/perf/util/srcline.c addr2line(dso_name, addr, NULL, NULL, dso, true, node, sym); dso 407 tools/perf/util/srcline.c struct dso *dso __maybe_unused, dso 445 tools/perf/util/srcline.c void dso__free_a2l(struct dso *dso __maybe_unused) dso 450 tools/perf/util/srcline.c struct dso *dso __maybe_unused, dso 493 tools/perf/util/srcline.c inline_sym = new_inline_sym(dso, sym, funcname); dso 519 tools/perf/util/srcline.c char *__get_srcline(struct dso *dso, u64 addr, struct symbol *sym, dso 528 tools/perf/util/srcline.c if (!dso->has_srcline) dso 531 tools/perf/util/srcline.c dso_name = dso__name(dso); dso 535 tools/perf/util/srcline.c if (!addr2line(dso_name, addr, &file, &line, dso, dso 545 tools/perf/util/srcline.c dso->a2l_fails = 0; dso 550 tools/perf/util/srcline.c if (dso->a2l_fails && ++dso->a2l_fails > A2L_FAIL_LIMIT) { dso 551 tools/perf/util/srcline.c dso->has_srcline = 0; dso 552 tools/perf/util/srcline.c dso__free_a2l(dso); dso 563 tools/perf/util/srcline.c } else if (asprintf(&srcline, "%s[%" PRIx64 "]", dso->short_name, addr) < 0) dso 569 tools/perf/util/srcline.c char *get_srcline_split(struct dso *dso, u64 addr, unsigned *line) dso 574 tools/perf/util/srcline.c if (!dso->has_srcline) dso 577 tools/perf/util/srcline.c dso_name = dso__name(dso); dso 581 tools/perf/util/srcline.c if (!addr2line(dso_name, addr, &file, line, dso, true, NULL, NULL)) dso 584 tools/perf/util/srcline.c dso->a2l_fails = 0; dso 588 tools/perf/util/srcline.c if (dso->a2l_fails && ++dso->a2l_fails > A2L_FAIL_LIMIT) { dso 589 tools/perf/util/srcline.c dso->has_srcline = 0; dso 590 tools/perf/util/srcline.c dso__free_a2l(dso); dso 602 tools/perf/util/srcline.c char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym, dso 605 tools/perf/util/srcline.c return __get_srcline(dso, addr, sym, show_sym, show_addr, false, ip); dso 677 tools/perf/util/srcline.c struct inline_node *dso__parse_addr_inlines(struct dso *dso, u64 addr, dso 682 tools/perf/util/srcline.c dso_name = dso__name(dso); dso 686 tools/perf/util/srcline.c return addr2inlines(dso_name, addr, dso, sym); dso 9 tools/perf/util/srcline.h struct dso; dso 13 tools/perf/util/srcline.h char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym, dso 15 tools/perf/util/srcline.h char *__get_srcline(struct dso *dso, u64 addr, struct symbol *sym, dso 19 tools/perf/util/srcline.h char *get_srcline_split(struct dso *dso, u64 addr, unsigned *line); dso 43 tools/perf/util/srcline.h struct inline_node *dso__parse_addr_inlines(struct dso *dso, u64 addr, dso 238 tools/perf/util/symbol-elf.c static char *demangle_sym(struct dso *dso, int kmodule, const char *elf_name) dso 248 tools/perf/util/symbol-elf.c if (!want_demangle(dso->kernel || kmodule)) dso 281 tools/perf/util/symbol-elf.c int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss) dso 391 tools/perf/util/symbol-elf.c demangled = demangle_sym(dso, 0, elf_name); dso 404 tools/perf/util/symbol-elf.c symbols__insert(&dso->symbols, f); dso 417 tools/perf/util/symbol-elf.c demangled = demangle_sym(dso, 0, elf_name); dso 430 tools/perf/util/symbol-elf.c symbols__insert(&dso->symbols, f); dso 440 tools/perf/util/symbol-elf.c __func__, dso->long_name); dso 444 tools/perf/util/symbol-elf.c char *dso__demangle_sym(struct dso *dso, int kmodule, const char *elf_name) dso 446 tools/perf/util/symbol-elf.c return demangle_sym(dso, kmodule, elf_name); dso 663 tools/perf/util/symbol-elf.c static int dso__swap_init(struct dso *dso, unsigned char eidata) dso 667 tools/perf/util/symbol-elf.c dso->needs_swap = DSO_SWAP__NO; dso 673 tools/perf/util/symbol-elf.c dso->needs_swap = DSO_SWAP__YES; dso 679 tools/perf/util/symbol-elf.c dso->needs_swap = DSO_SWAP__YES; dso 712 tools/perf/util/symbol-elf.c int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, dso 719 tools/perf/util/symbol-elf.c if (dso__needs_decompress(dso)) { dso 720 tools/perf/util/symbol-elf.c fd = dso__decompress_kmodule_fd(dso, name); dso 724 tools/perf/util/symbol-elf.c type = dso->symtab_type; dso 728 tools/perf/util/symbol-elf.c dso->load_errno = errno; dso 736 tools/perf/util/symbol-elf.c dso->load_errno = DSO_LOAD_ERRNO__INVALID_ELF; dso 741 tools/perf/util/symbol-elf.c dso->load_errno = DSO_LOAD_ERRNO__INVALID_ELF; dso 746 tools/perf/util/symbol-elf.c if (dso__swap_init(dso, ehdr.e_ident[EI_DATA])) { dso 747 tools/perf/util/symbol-elf.c dso->load_errno = DSO_LOAD_ERRNO__INTERNAL_ERROR; dso 752 tools/perf/util/symbol-elf.c if (dso->has_build_id && !symbol_conf.ignore_vmlinux_buildid) { dso 756 tools/perf/util/symbol-elf.c dso->load_errno = DSO_LOAD_ERRNO__CANNOT_READ_BUILDID; dso 760 tools/perf/util/symbol-elf.c if (!dso__build_id_equal(dso, build_id)) { dso 762 tools/perf/util/symbol-elf.c dso->load_errno = DSO_LOAD_ERRNO__MISMATCHING_BUILDID; dso 786 tools/perf/util/symbol-elf.c if (dso->kernel == DSO_TYPE_USER) dso 793 tools/perf/util/symbol-elf.c dso->load_errno = errno; dso 845 tools/perf/util/symbol-elf.c static int dso__process_kernel_symbol(struct dso *dso, struct map *map, dso 848 tools/perf/util/symbol-elf.c struct dso **curr_dsop, struct map **curr_mapp, dso 852 tools/perf/util/symbol-elf.c struct dso *curr_dso = *curr_dsop; dso 860 tools/perf/util/symbol-elf.c if (strcmp(section_name, (curr_dso->short_name + dso->short_name_len)) == 0) dso 869 tools/perf/util/symbol-elf.c if (*remap_kernel && dso->kernel) { dso 896 tools/perf/util/symbol-elf.c *curr_dsop = dso; dso 903 tools/perf/util/symbol-elf.c snprintf(dso_name, sizeof(dso_name), "%s%s", dso->short_name, section_name); dso 915 tools/perf/util/symbol-elf.c curr_dso->kernel = dso->kernel; dso 916 tools/perf/util/symbol-elf.c curr_dso->long_name = dso->long_name; dso 917 tools/perf/util/symbol-elf.c curr_dso->long_name_len = dso->long_name_len; dso 930 tools/perf/util/symbol-elf.c curr_dso->symtab_type = dso->symtab_type; dso 944 tools/perf/util/symbol-elf.c *curr_dsop = curr_map->dso; dso 949 tools/perf/util/symbol-elf.c int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss, dso 952 tools/perf/util/symbol-elf.c struct kmap *kmap = dso->kernel ? map__kmap(map) : NULL; dso 955 tools/perf/util/symbol-elf.c struct dso *curr_dso = dso; dso 973 tools/perf/util/symbol-elf.c dso->symtab_type = syms_ss->type; dso 974 tools/perf/util/symbol-elf.c dso->is_64_bit = syms_ss->is_64_bit; dso 975 tools/perf/util/symbol-elf.c dso->rel = syms_ss->ehdr.e_type == ET_REL; dso 982 tools/perf/util/symbol-elf.c symbols__delete(&dso->symbols); dso 990 tools/perf/util/symbol-elf.c if (dso->kernel) dso 1004 tools/perf/util/symbol-elf.c dso->text_offset = tshdr.sh_addr - tshdr.sh_offset; dso 1054 tools/perf/util/symbol-elf.c if (dso__is_vdso(dso)) dso 1055 tools/perf/util/symbol-elf.c map->reloc = map->start - dso->text_offset; dso 1057 tools/perf/util/symbol-elf.c dso->adjust_symbols = runtime_ss->adjust_symbols || ref_reloc(kmap); dso 1062 tools/perf/util/symbol-elf.c if (dso->kernel || kmodule) { dso 1064 tools/perf/util/symbol-elf.c adjust_kernel_syms = dso->adjust_symbols; dso 1089 tools/perf/util/symbol-elf.c sym.st_value = DSO__SWAP(dso, u64, *opd); dso 1124 tools/perf/util/symbol-elf.c if (dso->kernel || kmodule) { dso 1125 tools/perf/util/symbol-elf.c if (dso__process_kernel_symbol(dso, map, &sym, &shdr, kmaps, kmap, &curr_dso, &curr_map, dso 1137 tools/perf/util/symbol-elf.c demangled = demangle_sym(dso, kmodule, elf_name); dso 1150 tools/perf/util/symbol-elf.c __symbols__insert(&curr_dso->symbols, f, dso->kernel); dso 1158 tools/perf/util/symbol-elf.c symbols__fixup_end(&dso->symbols); dso 1159 tools/perf/util/symbol-elf.c symbols__fixup_duplicate(&dso->symbols); dso 254 tools/perf/util/symbol-minimal.c int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, dso 272 tools/perf/util/symbol-minimal.c dso->load_errno = errno; dso 293 tools/perf/util/symbol-minimal.c int dso__synthesize_plt_symbols(struct dso *dso __maybe_unused, dso 337 tools/perf/util/symbol-minimal.c int dso__load_sym(struct dso *dso, struct map *map __maybe_unused, dso 347 tools/perf/util/symbol-minimal.c dso->is_64_bit = ret; dso 350 tools/perf/util/symbol-minimal.c dso__set_build_id(dso, build_id); dso 381 tools/perf/util/symbol-minimal.c char *dso__demangle_sym(struct dso *dso __maybe_unused, dso 44 tools/perf/util/symbol.c static int dso__load_kernel_sym(struct dso *dso, struct map *map); dso 45 tools/perf/util/symbol.c static int dso__load_guest_kernel_sym(struct dso *dso, struct map *map); dso 504 tools/perf/util/symbol.c void dso__reset_find_symbol_cache(struct dso *dso) dso 506 tools/perf/util/symbol.c dso->last_find_result.addr = 0; dso 507 tools/perf/util/symbol.c dso->last_find_result.symbol = NULL; dso 510 tools/perf/util/symbol.c void dso__insert_symbol(struct dso *dso, struct symbol *sym) dso 512 tools/perf/util/symbol.c __symbols__insert(&dso->symbols, sym, dso->kernel); dso 515 tools/perf/util/symbol.c if (dso->last_find_result.addr >= sym->start && dso 516 tools/perf/util/symbol.c (dso->last_find_result.addr < sym->end || dso 518 tools/perf/util/symbol.c dso->last_find_result.symbol = sym; dso 522 tools/perf/util/symbol.c struct symbol *dso__find_symbol(struct dso *dso, u64 addr) dso 524 tools/perf/util/symbol.c if (dso->last_find_result.addr != addr || dso->last_find_result.symbol == NULL) { dso 525 tools/perf/util/symbol.c dso->last_find_result.addr = addr; dso 526 tools/perf/util/symbol.c dso->last_find_result.symbol = symbols__find(&dso->symbols, addr); dso 529 tools/perf/util/symbol.c return dso->last_find_result.symbol; dso 532 tools/perf/util/symbol.c struct symbol *dso__first_symbol(struct dso *dso) dso 534 tools/perf/util/symbol.c return symbols__first(&dso->symbols); dso 537 tools/perf/util/symbol.c struct symbol *dso__last_symbol(struct dso *dso) dso 539 tools/perf/util/symbol.c return symbols__last(&dso->symbols); dso 558 tools/perf/util/symbol.c struct symbol *dso__find_symbol_by_name(struct dso *dso, const char *name) dso 560 tools/perf/util/symbol.c struct symbol *s = symbols__find_by_name(&dso->symbol_names, name, dso 563 tools/perf/util/symbol.c s = symbols__find_by_name(&dso->symbol_names, name, dso 568 tools/perf/util/symbol.c void dso__sort_by_name(struct dso *dso) dso 570 tools/perf/util/symbol.c dso__set_sorted_by_name(dso); dso 571 tools/perf/util/symbol.c return symbols__sort_by_name(&dso->symbol_names, &dso->symbols); dso 672 tools/perf/util/symbol.c struct dso *dso = arg; dso 673 tools/perf/util/symbol.c struct rb_root_cached *root = &dso->symbols; dso 700 tools/perf/util/symbol.c static int dso__load_all_kallsyms(struct dso *dso, const char *filename) dso 702 tools/perf/util/symbol.c return kallsyms__parse(filename, dso, map__process_kallsym_symbol); dso 705 tools/perf/util/symbol.c static int map_groups__split_kallsyms_for_kcore(struct map_groups *kmaps, struct dso *dso) dso 710 tools/perf/util/symbol.c struct rb_root_cached old_root = dso->symbols; dso 711 tools/perf/util/symbol.c struct rb_root_cached *root = &dso->symbols; dso 743 tools/perf/util/symbol.c symbols__insert(&curr_map->dso->symbols, pos); dso 748 tools/perf/util/symbol.c dso->adjust_symbols = 1; dso 758 tools/perf/util/symbol.c static int map_groups__split_kallsyms(struct map_groups *kmaps, struct dso *dso, u64 delta, dso 765 tools/perf/util/symbol.c struct rb_root_cached *root = &dso->symbols; dso 790 tools/perf/util/symbol.c if (strcmp(curr_map->dso->short_name, module)) { dso 792 tools/perf/util/symbol.c dso->kernel == DSO_TYPE_GUEST_KERNEL && dso 801 tools/perf/util/symbol.c dso__set_loaded(curr_map->dso); dso 814 tools/perf/util/symbol.c if (curr_map->dso->loaded && dso 836 tools/perf/util/symbol.c struct dso *ndso; dso 849 tools/perf/util/symbol.c if (dso->kernel == DSO_TYPE_GUEST_KERNEL) dso 862 tools/perf/util/symbol.c ndso->kernel = dso->kernel; dso 881 tools/perf/util/symbol.c symbols__insert(&curr_map->dso->symbols, pos); dso 893 tools/perf/util/symbol.c dso->kernel == DSO_TYPE_GUEST_KERNEL && dso 895 tools/perf/util/symbol.c dso__set_loaded(curr_map->dso); dso 1083 tools/perf/util/symbol.c mi = find_module(old_map->dso->short_name, &modules); dso 1162 tools/perf/util/symbol.c struct dso *dso; dso 1171 tools/perf/util/symbol.c map = map__new2(start, md->dso); dso 1262 tools/perf/util/symbol.c static int dso__load_kcore(struct dso *dso, struct map *map, dso 1291 tools/perf/util/symbol.c md.dso = dso; dso 1306 tools/perf/util/symbol.c dso->is_64_bit = is_64_bit; dso 1386 tools/perf/util/symbol.c if (dso->kernel == DSO_TYPE_GUEST_KERNEL) dso 1387 tools/perf/util/symbol.c dso->binary_type = DSO_BINARY_TYPE__GUEST_KCORE; dso 1389 tools/perf/util/symbol.c dso->binary_type = DSO_BINARY_TYPE__KCORE; dso 1390 tools/perf/util/symbol.c dso__set_long_name(dso, strdup(kcore_filename), true); dso 1429 tools/perf/util/symbol.c int __dso__load_kallsyms(struct dso *dso, const char *filename, dso 1441 tools/perf/util/symbol.c if (dso__load_all_kallsyms(dso, filename) < 0) dso 1447 tools/perf/util/symbol.c symbols__fixup_end(&dso->symbols); dso 1448 tools/perf/util/symbol.c symbols__fixup_duplicate(&dso->symbols); dso 1450 tools/perf/util/symbol.c if (dso->kernel == DSO_TYPE_GUEST_KERNEL) dso 1451 tools/perf/util/symbol.c dso->symtab_type = DSO_BINARY_TYPE__GUEST_KALLSYMS; dso 1453 tools/perf/util/symbol.c dso->symtab_type = DSO_BINARY_TYPE__KALLSYMS; dso 1455 tools/perf/util/symbol.c if (!no_kcore && !dso__load_kcore(dso, map, filename)) dso 1456 tools/perf/util/symbol.c return map_groups__split_kallsyms_for_kcore(kmap->kmaps, dso); dso 1458 tools/perf/util/symbol.c return map_groups__split_kallsyms(kmap->kmaps, dso, delta, map); dso 1461 tools/perf/util/symbol.c int dso__load_kallsyms(struct dso *dso, const char *filename, dso 1464 tools/perf/util/symbol.c return __dso__load_kallsyms(dso, filename, map, false); dso 1467 tools/perf/util/symbol.c static int dso__load_perf_map(const char *map_path, struct dso *dso) dso 1509 tools/perf/util/symbol.c symbols__insert(&dso->symbols, sym); dso 1524 tools/perf/util/symbol.c static bool dso__is_compatible_symtab_type(struct dso *dso, bool kmod, dso 1535 tools/perf/util/symbol.c return !kmod && dso->kernel == DSO_TYPE_USER; dso 1540 tools/perf/util/symbol.c return dso->kernel == DSO_TYPE_KERNEL; dso 1545 tools/perf/util/symbol.c return dso->kernel == DSO_TYPE_GUEST_KERNEL; dso 1555 tools/perf/util/symbol.c return kmod && dso->symtab_type == type; dso 1606 tools/perf/util/symbol.c int dso__load(struct dso *dso, struct map *map) dso 1621 tools/perf/util/symbol.c const char *map_path = dso->long_name; dso 1623 tools/perf/util/symbol.c perfmap = strncmp(dso->name, "/tmp/perf-", 10) == 0; dso 1625 tools/perf/util/symbol.c if (dso->nsinfo && (dso__find_perf_map(newmapname, dso 1626 tools/perf/util/symbol.c sizeof(newmapname), &dso->nsinfo) == 0)) { dso 1631 tools/perf/util/symbol.c nsinfo__mountns_enter(dso->nsinfo, &nsc); dso 1632 tools/perf/util/symbol.c pthread_mutex_lock(&dso->lock); dso 1635 tools/perf/util/symbol.c if (dso__loaded(dso)) { dso 1645 tools/perf/util/symbol.c if (dso->kernel) { dso 1646 tools/perf/util/symbol.c if (dso->kernel == DSO_TYPE_KERNEL) dso 1647 tools/perf/util/symbol.c ret = dso__load_kernel_sym(dso, map); dso 1648 tools/perf/util/symbol.c else if (dso->kernel == DSO_TYPE_GUEST_KERNEL) dso 1649 tools/perf/util/symbol.c ret = dso__load_guest_kernel_sym(dso, map); dso 1652 tools/perf/util/symbol.c machine__map_x86_64_entry_trampolines(machine, dso); dso 1656 tools/perf/util/symbol.c dso->adjust_symbols = 0; dso 1659 tools/perf/util/symbol.c ret = dso__load_perf_map(map_path, dso); dso 1660 tools/perf/util/symbol.c dso->symtab_type = ret > 0 ? DSO_BINARY_TYPE__JAVA_JIT : dso 1672 tools/perf/util/symbol.c kmod = dso->symtab_type == DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE || dso 1673 tools/perf/util/symbol.c dso->symtab_type == DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE_COMP || dso 1674 tools/perf/util/symbol.c dso->symtab_type == DSO_BINARY_TYPE__GUEST_KMODULE || dso 1675 tools/perf/util/symbol.c dso->symtab_type == DSO_BINARY_TYPE__GUEST_KMODULE_COMP; dso 1682 tools/perf/util/symbol.c if (!dso->has_build_id && dso 1683 tools/perf/util/symbol.c is_regular_file(dso->long_name)) { dso 1684 tools/perf/util/symbol.c __symbol__join_symfs(name, PATH_MAX, dso->long_name); dso 1686 tools/perf/util/symbol.c dso__set_build_id(dso, build_id); dso 1706 tools/perf/util/symbol.c if (!dso__is_compatible_symtab_type(dso, kmod, symtab_type)) dso 1709 tools/perf/util/symbol.c if (dso__read_binary_type_filename(dso, symtab_type, dso 1718 tools/perf/util/symbol.c sirc = symsrc__init(ss, dso, name, symtab_type); dso 1721 tools/perf/util/symbol.c nsinfo__mountns_enter(dso->nsinfo, &nsc); dso 1729 tools/perf/util/symbol.c if (!dso->symsrc_filename) dso 1730 tools/perf/util/symbol.c dso->symsrc_filename = strdup(name); dso 1761 tools/perf/util/symbol.c ret = dso__load_sym(dso, map, syms_ss, runtime_ss, kmod); dso 1768 tools/perf/util/symbol.c nr_plt = dso__synthesize_plt_symbols(dso, runtime_ss); dso 1777 tools/perf/util/symbol.c if (ret < 0 && strstr(dso->name, " (deleted)") != NULL) dso 1780 tools/perf/util/symbol.c dso__set_loaded(dso); dso 1781 tools/perf/util/symbol.c pthread_mutex_unlock(&dso->lock); dso 1800 tools/perf/util/symbol.c rc = strcmp(map->dso->short_name, name); dso 1817 tools/perf/util/symbol.c int dso__load_vmlinux(struct dso *dso, struct map *map, dso 1830 tools/perf/util/symbol.c if (dso->kernel == DSO_TYPE_GUEST_KERNEL) dso 1835 tools/perf/util/symbol.c if (symsrc__init(&ss, dso, symfs_vmlinux, symtab_type)) dso 1838 tools/perf/util/symbol.c err = dso__load_sym(dso, map, &ss, &ss, 0); dso 1842 tools/perf/util/symbol.c if (dso->kernel == DSO_TYPE_GUEST_KERNEL) dso 1843 tools/perf/util/symbol.c dso->binary_type = DSO_BINARY_TYPE__GUEST_VMLINUX; dso 1845 tools/perf/util/symbol.c dso->binary_type = DSO_BINARY_TYPE__VMLINUX; dso 1846 tools/perf/util/symbol.c dso__set_long_name(dso, vmlinux, vmlinux_allocated); dso 1847 tools/perf/util/symbol.c dso__set_loaded(dso); dso 1854 tools/perf/util/symbol.c int dso__load_vmlinux_path(struct dso *dso, struct map *map) dso 1863 tools/perf/util/symbol.c err = dso__load_vmlinux(dso, map, vmlinux_path[i], false); dso 1869 tools/perf/util/symbol.c filename = dso__build_id_filename(dso, NULL, 0, false); dso 1871 tools/perf/util/symbol.c err = dso__load_vmlinux(dso, map, filename, true); dso 1927 tools/perf/util/symbol.c static char *dso__find_kallsyms(struct dso *dso, struct map *map) dso 1934 tools/perf/util/symbol.c if (!dso->has_build_id) { dso 1944 tools/perf/util/symbol.c is_host = dso__build_id_equal(dso, host_build_id); dso 1960 tools/perf/util/symbol.c build_id__sprintf(dso->build_id, sizeof(dso->build_id), sbuild_id); dso 1985 tools/perf/util/symbol.c static int dso__load_kernel_sym(struct dso *dso, struct map *map) dso 2011 tools/perf/util/symbol.c return dso__load_vmlinux(dso, map, symbol_conf.vmlinux_name, false); dso 2015 tools/perf/util/symbol.c err = dso__load_vmlinux_path(dso, map); dso 2024 tools/perf/util/symbol.c kallsyms_allocated_filename = dso__find_kallsyms(dso, map); dso 2031 tools/perf/util/symbol.c err = dso__load_kallsyms(dso, kallsyms_filename, map); dso 2036 tools/perf/util/symbol.c if (err > 0 && !dso__is_kcore(dso)) { dso 2037 tools/perf/util/symbol.c dso->binary_type = DSO_BINARY_TYPE__KALLSYMS; dso 2038 tools/perf/util/symbol.c dso__set_long_name(dso, DSO__NAME_KALLSYMS, false); dso 2046 tools/perf/util/symbol.c static int dso__load_guest_kernel_sym(struct dso *dso, struct map *map) dso 2066 tools/perf/util/symbol.c err = dso__load_vmlinux(dso, map, dso 2080 tools/perf/util/symbol.c err = dso__load_kallsyms(dso, kallsyms_filename, map); dso 2083 tools/perf/util/symbol.c if (err > 0 && !dso__is_kcore(dso)) { dso 2084 tools/perf/util/symbol.c dso->binary_type = DSO_BINARY_TYPE__GUEST_KALLSYMS; dso 2085 tools/perf/util/symbol.c dso__set_long_name(dso, machine->mmap_name, false); dso 21 tools/perf/util/symbol.h struct dso; dso 133 tools/perf/util/symbol.h int dso__load(struct dso *dso, struct map *map); dso 134 tools/perf/util/symbol.h int dso__load_vmlinux(struct dso *dso, struct map *map, dso 136 tools/perf/util/symbol.h int dso__load_vmlinux_path(struct dso *dso, struct map *map); dso 137 tools/perf/util/symbol.h int __dso__load_kallsyms(struct dso *dso, const char *filename, struct map *map, dso 139 tools/perf/util/symbol.h int dso__load_kallsyms(struct dso *dso, const char *filename, struct map *map); dso 141 tools/perf/util/symbol.h void dso__insert_symbol(struct dso *dso, dso 144 tools/perf/util/symbol.h struct symbol *dso__find_symbol(struct dso *dso, u64 addr); dso 145 tools/perf/util/symbol.h struct symbol *dso__find_symbol_by_name(struct dso *dso, const char *name); dso 149 tools/perf/util/symbol.h struct symbol *dso__first_symbol(struct dso *dso); dso 150 tools/perf/util/symbol.h struct symbol *dso__last_symbol(struct dso *dso); dso 188 tools/perf/util/symbol.h int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss, dso 190 tools/perf/util/symbol.h int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss); dso 192 tools/perf/util/symbol.h char *dso__demangle_sym(struct dso *dso, int kmodule, const char *elf_name); dso 62 tools/perf/util/symbol_fprintf.c size_t dso__fprintf_symbols_by_name(struct dso *dso, dso 69 tools/perf/util/symbol_fprintf.c for (nd = rb_first_cached(&dso->symbol_names); nd; nd = rb_next(nd)) { dso 40 tools/perf/util/symsrc.h int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, enum dso_binary_type type); dso 447 tools/perf/util/synthetic-events.c size = PERF_ALIGN(pos->dso->long_name_len + 1, sizeof(u64)); dso 457 tools/perf/util/synthetic-events.c memcpy(event->mmap.filename, pos->dso->long_name, dso 458 tools/perf/util/synthetic-events.c pos->dso->long_name_len + 1); dso 1755 tools/perf/util/synthetic-events.c int perf_event__synthesize_build_id(struct perf_tool *tool, struct dso *pos, u16 misc, dso 11 tools/perf/util/synthetic-events.h struct dso; dso 34 tools/perf/util/synthetic-events.h int perf_event__synthesize_build_id(struct perf_tool *tool, struct dso *pos, u16 misc, perf_event__handler_t process, struct machine *machine); dso 18 tools/perf/util/thread-stack.h struct dso; dso 446 tools/perf/util/thread.c if (!thread__find_map(thread, cpumode, ip, &al) || !al.map->dso || dso 447 tools/perf/util/thread.c al.map->dso->data.status == DSO_DATA_STATUS_ERROR || dso 453 tools/perf/util/thread.c *is64bit = al.map->dso->is_64_bit; dso 455 tools/perf/util/thread.c return dso__data_read_offset(al.map->dso, machine, offset, buf, len); dso 33 tools/perf/util/unwind-libdw.c struct dso *dso = NULL; dso 41 tools/perf/util/unwind-libdw.c dso = al->map->dso; dso 43 tools/perf/util/unwind-libdw.c if (!dso) dso 56 tools/perf/util/unwind-libdw.c mod = dwfl_report_elf(ui->dwfl, dso->short_name, dso 57 tools/perf/util/unwind-libdw.c (dso->symsrc_filename ? dso->symsrc_filename : dso->long_name), -1, al->map->start - al->map->pgoff, dso 115 tools/perf/util/unwind-libdw.c if (!al.map->dso) dso 118 tools/perf/util/unwind-libdw.c size = dso__data_read_addr(al.map->dso, al.map, ui->machine, dso 249 tools/perf/util/unwind-libunwind-local.c static int unwind_spec_ehframe(struct dso *dso, struct machine *machine, dso 258 tools/perf/util/unwind-libunwind-local.c r = dso__data_read_offset(dso, machine, offset, dso 272 tools/perf/util/unwind-libunwind-local.c static int read_unwind_spec_eh_frame(struct dso *dso, struct machine *machine, dso 277 tools/perf/util/unwind-libunwind-local.c u64 offset = dso->data.eh_frame_hdr_offset; dso 280 tools/perf/util/unwind-libunwind-local.c fd = dso__data_get_fd(dso, machine); dso 286 tools/perf/util/unwind-libunwind-local.c dso->data.eh_frame_hdr_offset = offset; dso 287 tools/perf/util/unwind-libunwind-local.c dso__data_put_fd(dso); dso 291 tools/perf/util/unwind-libunwind-local.c ret = unwind_spec_ehframe(dso, machine, offset, dso 299 tools/perf/util/unwind-libunwind-local.c static int read_unwind_spec_debug_frame(struct dso *dso, dso 303 tools/perf/util/unwind-libunwind-local.c u64 ofs = dso->data.debug_frame_offset; dso 312 tools/perf/util/unwind-libunwind-local.c fd = dso__data_get_fd(dso, machine); dso 315 tools/perf/util/unwind-libunwind-local.c dso__data_put_fd(dso); dso 319 tools/perf/util/unwind-libunwind-local.c fd = open(dso->symsrc_filename, O_RDONLY); dso 331 tools/perf/util/unwind-libunwind-local.c dso, DSO_BINARY_TYPE__DEBUGLINK, dso 342 tools/perf/util/unwind-libunwind-local.c if (dso->symsrc_filename != NULL) { dso 346 tools/perf/util/unwind-libunwind-local.c dso->symsrc_filename, dso 348 tools/perf/util/unwind-libunwind-local.c zfree(&dso->symsrc_filename); dso 350 tools/perf/util/unwind-libunwind-local.c dso->symsrc_filename = debuglink; dso 356 tools/perf/util/unwind-libunwind-local.c dso->data.debug_frame_offset = ofs; dso 384 tools/perf/util/unwind-libunwind-local.c if (!map || !map->dso) dso 387 tools/perf/util/unwind-libunwind-local.c pr_debug("unwind: find_proc_info dso %s\n", map->dso->name); dso 390 tools/perf/util/unwind-libunwind-local.c if (!read_unwind_spec_eh_frame(map->dso, ui->machine, dso 407 tools/perf/util/unwind-libunwind-local.c !read_unwind_spec_debug_frame(map->dso, ui->machine, &segbase)) { dso 408 tools/perf/util/unwind-libunwind-local.c int fd = dso__data_get_fd(map->dso, ui->machine); dso 409 tools/perf/util/unwind-libunwind-local.c int is_exec = elf_is_exec(fd, map->dso->name); dso 414 tools/perf/util/unwind-libunwind-local.c dso__data_put_fd(map->dso); dso 416 tools/perf/util/unwind-libunwind-local.c symfile = map->dso->symsrc_filename ?: map->dso->name; dso 476 tools/perf/util/unwind-libunwind-local.c if (!map->dso) dso 479 tools/perf/util/unwind-libunwind-local.c size = dso__data_read_addr(map->dso, map, ui->machine, dso 34 tools/perf/util/unwind-libunwind.c map->dso->name); dso 44 tools/perf/util/unwind-libunwind.c dso_type = dso__type(map->dso, mg->machine); dso 127 tools/perf/util/vdso.c static struct dso *__machine__addnew_vdso(struct machine *machine, const char *short_name, dso 130 tools/perf/util/vdso.c struct dso *dso; dso 132 tools/perf/util/vdso.c dso = dso__new(short_name); dso 133 tools/perf/util/vdso.c if (dso != NULL) { dso 134 tools/perf/util/vdso.c __dsos__add(&machine->dsos, dso); dso 135 tools/perf/util/vdso.c dso__set_long_name(dso, long_name, false); dso 138 tools/perf/util/vdso.c return dso; dso 148 tools/perf/util/vdso.c struct dso *dso = map->dso; dso 149 tools/perf/util/vdso.c if (!dso || dso->long_name[0] != '/') dso 151 tools/perf/util/vdso.c dso_type = dso__type(dso, machine); dso 235 tools/perf/util/vdso.c static struct dso *__machine__findnew_compat(struct machine *machine, dso 239 tools/perf/util/vdso.c struct dso *dso; dso 241 tools/perf/util/vdso.c dso = __dsos__find(&machine->dsos, vdso_file->dso_name, true); dso 242 tools/perf/util/vdso.c if (dso) dso 249 tools/perf/util/vdso.c dso = __machine__addnew_vdso(machine, vdso_file->dso_name, file_name); dso 251 tools/perf/util/vdso.c return dso; dso 257 tools/perf/util/vdso.c struct dso **dso) dso 274 tools/perf/util/vdso.c *dso = __machine__findnew_compat(machine, &vdso_info->vdso32); dso 277 tools/perf/util/vdso.c *dso = __machine__findnew_compat(machine, &vdso_info->vdsox32); dso 288 tools/perf/util/vdso.c static struct dso *machine__find_vdso(struct machine *machine, dso 291 tools/perf/util/vdso.c struct dso *dso = NULL; dso 297 tools/perf/util/vdso.c dso = __dsos__find(&machine->dsos, DSO__NAME_VDSO32, true); dso 298 tools/perf/util/vdso.c if (!dso) { dso 299 tools/perf/util/vdso.c dso = __dsos__find(&machine->dsos, DSO__NAME_VDSO, dso 301 tools/perf/util/vdso.c if (dso && dso_type != dso__type(dso, machine)) dso 302 tools/perf/util/vdso.c dso = NULL; dso 306 tools/perf/util/vdso.c dso = __dsos__find(&machine->dsos, DSO__NAME_VDSOX32, true); dso 311 tools/perf/util/vdso.c dso = __dsos__find(&machine->dsos, DSO__NAME_VDSO, true); dso 315 tools/perf/util/vdso.c return dso; dso 318 tools/perf/util/vdso.c struct dso *machine__findnew_vdso(struct machine *machine, dso 322 tools/perf/util/vdso.c struct dso *dso = NULL; dso 332 tools/perf/util/vdso.c dso = machine__find_vdso(machine, thread); dso 333 tools/perf/util/vdso.c if (dso) dso 337 tools/perf/util/vdso.c if (__machine__findnew_vdso_compat(machine, thread, vdso_info, &dso)) dso 341 tools/perf/util/vdso.c dso = __dsos__find(&machine->dsos, DSO__NAME_VDSO, true); dso 342 tools/perf/util/vdso.c if (!dso) { dso 347 tools/perf/util/vdso.c dso = __machine__addnew_vdso(machine, DSO__NAME_VDSO, file); dso 351 tools/perf/util/vdso.c dso__get(dso); dso 353 tools/perf/util/vdso.c return dso; dso 356 tools/perf/util/vdso.c bool dso__is_vdso(struct dso *dso) dso 358 tools/perf/util/vdso.c return !strcmp(dso->short_name, DSO__NAME_VDSO) || dso 359 tools/perf/util/vdso.c !strcmp(dso->short_name, DSO__NAME_VDSO32) || dso 360 tools/perf/util/vdso.c !strcmp(dso->short_name, DSO__NAME_VDSOX32); dso 20 tools/perf/util/vdso.h struct dso; dso 22 tools/perf/util/vdso.h bool dso__is_vdso(struct dso *dso); dso 27 tools/perf/util/vdso.h struct dso *machine__findnew_vdso(struct machine *machine, struct thread *thread);