Lines Matching refs:dso

284 static int unwind_spec_ehframe(struct dso *dso, struct machine *machine,  in unwind_spec_ehframe()  argument
292 r = dso__data_read_offset(dso, machine, offset, in unwind_spec_ehframe()
306 struct dso *dso; member
315 if (map__dso(map) == args->dso && map__start(map) - map__pgoff(map) < args->base_addr) in read_unwind_spec_eh_frame_maps_cb()
322 static int read_unwind_spec_eh_frame(struct dso *dso, struct unwind_info *ui, in read_unwind_spec_eh_frame() argument
327 .dso = dso, in read_unwind_spec_eh_frame()
332 if (dso__data(dso)->eh_frame_hdr_offset == 0) { in read_unwind_spec_eh_frame()
333 fd = dso__data_get_fd(dso, ui->machine); in read_unwind_spec_eh_frame()
339 &dso__data(dso)->eh_frame_hdr_addr, in read_unwind_spec_eh_frame()
340 &dso__data(dso)->eh_frame_hdr_offset); in read_unwind_spec_eh_frame()
341 dso__data(dso)->elf_base_addr = elf_base_address(fd); in read_unwind_spec_eh_frame()
342 dso__data_put_fd(dso); in read_unwind_spec_eh_frame()
343 if (ret || dso__data(dso)->eh_frame_hdr_offset == 0) in read_unwind_spec_eh_frame()
349 args.base_addr -= dso__data(dso)->elf_base_addr; in read_unwind_spec_eh_frame()
351 *segbase = args.base_addr + dso__data(dso)->eh_frame_hdr_addr; in read_unwind_spec_eh_frame()
352 ret = unwind_spec_ehframe(dso, ui->machine, dso__data(dso)->eh_frame_hdr_offset, in read_unwind_spec_eh_frame()
362 static int read_unwind_spec_debug_frame(struct dso *dso, in read_unwind_spec_debug_frame() argument
366 u64 ofs = dso__data(dso)->debug_frame_offset; in read_unwind_spec_debug_frame()
375 fd = dso__data_get_fd(dso, machine); in read_unwind_spec_debug_frame()
378 dso__data_put_fd(dso); in read_unwind_spec_debug_frame()
382 fd = open(dso__symsrc_filename(dso), O_RDONLY); in read_unwind_spec_debug_frame()
399 dso, DSO_BINARY_TYPE__DEBUGLINK, in read_unwind_spec_debug_frame()
410 if (dso__symsrc_filename(dso) != NULL) { in read_unwind_spec_debug_frame()
414 dso__symsrc_filename(dso), in read_unwind_spec_debug_frame()
416 dso__free_symsrc_filename(dso); in read_unwind_spec_debug_frame()
418 dso__set_symsrc_filename(dso, debuglink); in read_unwind_spec_debug_frame()
424 dso__data(dso)->debug_frame_offset = ofs; in read_unwind_spec_debug_frame()
453 struct dso *dso; in find_proc_info() local
462 dso = map__dso(map); in find_proc_info()
463 if (!dso) { in find_proc_info()
468 pr_debug("unwind: find_proc_info dso %s\n", dso__name(dso)); in find_proc_info()
471 if (!read_unwind_spec_eh_frame(dso, ui, &table_data, &segbase, &fde_count)) { in find_proc_info()
487 !read_unwind_spec_debug_frame(dso, ui->machine, &segbase)) { in find_proc_info()
488 int fd = dso__data_get_fd(dso, ui->machine); in find_proc_info()
489 int is_exec = elf_is_exec(fd, dso__name(dso)); in find_proc_info()
495 dso__data_put_fd(dso); in find_proc_info()
497 symfile = dso__symsrc_filename(dso) ?: dso__name(dso); in find_proc_info()
548 struct dso *dso; in access_dso_mem() local
557 dso = map__dso(map); in access_dso_mem()
559 if (!dso) { in access_dso_mem()
564 size = dso__data_read_addr(dso, map, ui->machine, in access_dso_mem()