Lines Matching refs:shdr
156 static inline const char *elf_sec__name(const GElf_Shdr *shdr, in elf_sec__name() argument
159 return secstrs->d_buf + shdr->sh_name; in elf_sec__name()
162 static inline int elf_sec__is_text(const GElf_Shdr *shdr, in elf_sec__is_text() argument
165 return strstr(elf_sec__name(shdr, secstrs), "text") != NULL; in elf_sec__is_text()
168 static inline bool elf_sec__is_data(const GElf_Shdr *shdr, in elf_sec__is_data() argument
171 return strstr(elf_sec__name(shdr, secstrs), "data") != NULL; in elf_sec__is_data()
174 static bool elf_sec__filter(GElf_Shdr *shdr, Elf_Data *secstrs) in elf_sec__filter() argument
176 return elf_sec__is_text(shdr, secstrs) || in elf_sec__filter()
177 elf_sec__is_data(shdr, secstrs); in elf_sec__filter()
183 GElf_Shdr shdr; in elf_addr_to_index() local
187 gelf_getshdr(sec, &shdr); in elf_addr_to_index()
189 if ((addr >= shdr.sh_addr) && in elf_addr_to_index()
190 (addr < (shdr.sh_addr + shdr.sh_size))) in elf_addr_to_index()
230 GElf_Shdr shdr; in filename__has_section() local
244 found = !!elf_section_by_name(elf, &ehdr, &shdr, sec, NULL); in filename__has_section()
541 GElf_Shdr shdr; in get_rela_dyn_info() local
553 if (!scn || !gelf_getshdr(scn, &shdr) || !shdr.sh_link) in get_rela_dyn_info()
557 di->dynstr_data = elf_getdata(elf_getscn(elf, shdr.sh_link), NULL); in get_rela_dyn_info()
590 static bool get_plt_got_name(GElf_Shdr *shdr, size_t i, in get_plt_got_name() argument
609 vi.offset = shdr->sh_offset + di->plt_got_data->d_off + i + disp; in get_plt_got_name()
638 GElf_Shdr shdr; in dso__synthesize_plt_got_symbols() local
643 scn = elf_section_by_name(elf, ehdr, &shdr, ".plt.got", NULL); in dso__synthesize_plt_got_symbols()
644 if (!scn || !shdr.sh_entsize) in dso__synthesize_plt_got_symbols()
650 for (i = 0; i < shdr.sh_size; i += shdr.sh_entsize) { in dso__synthesize_plt_got_symbols()
651 if (!get_plt_got_name(&shdr, i, &di, buf, buf_sz)) in dso__synthesize_plt_got_symbols()
652 snprintf(buf, buf_sz, "offset_%#" PRIx64 "@plt", (u64)shdr.sh_offset + i); in dso__synthesize_plt_got_symbols()
653 sym = symbol__new(shdr.sh_offset + i, shdr.sh_entsize, STB_GLOBAL, STT_FUNC, buf); in dso__synthesize_plt_got_symbols()
860 GElf_Shdr shdr; in elf_read_build_id() local
885 sec = elf_section_by_name(elf, &ehdr, &shdr, in elf_read_build_id()
890 sec = elf_section_by_name(elf, &ehdr, &shdr, in elf_read_build_id()
895 sec = elf_section_by_name(elf, &ehdr, &shdr, in elf_read_build_id()
1125 GElf_Shdr shdr; in filename__read_debuglink() local
1149 sec = elf_section_by_name(elf, &ehdr, &shdr, in filename__read_debuglink()
1367 GElf_Sym *sym, GElf_Shdr *shdr, in dso__process_kernel_symbol() argument
1379 sym->st_value -= shdr->sh_addr - shdr->sh_offset; in dso__process_kernel_symbol()
1392 map__set_start(map, shdr->sh_addr + ref_reloc(kmap)); in dso__process_kernel_symbol()
1393 map__set_end(map, map__start(map) + shdr->sh_size); in dso__process_kernel_symbol()
1394 map__set_pgoff(map, shdr->sh_offset); in dso__process_kernel_symbol()
1417 map__set_pgoff(map, shdr->sh_offset); in dso__process_kernel_symbol()
1435 start += map__start(map) + shdr->sh_offset; in dso__process_kernel_symbol()
1454 map__set_start(curr_map, shdr->sh_addr + ref_reloc(kmap)); in dso__process_kernel_symbol()
1455 map__set_end(curr_map, map__start(curr_map) + shdr->sh_size); in dso__process_kernel_symbol()
1456 map__set_pgoff(curr_map, shdr->sh_offset); in dso__process_kernel_symbol()
1494 GElf_Shdr shdr; in dso__load_sym_internal() local
1510 shdr = syms_ss->dynshdr; in dso__load_sym_internal()
1513 shdr = syms_ss->symshdr; in dso__load_sym_internal()
1527 sec = elf_getscn(elf, shdr.sh_link); in dso__load_sym_internal()
1551 nr_syms = shdr.sh_size / shdr.sh_entsize; in dso__load_sym_internal()
1632 gelf_getshdr(sec, &shdr); in dso__load_sym_internal()
1642 if (!(shdr.sh_flags & SHF_ALLOC)) in dso__load_sym_internal()
1653 if (shdr.sh_type == SHT_NOBITS) { in dso__load_sym_internal()
1658 gelf_getshdr(sec, &shdr); in dso__load_sym_internal()
1662 if (is_label && !elf_sec__filter(&shdr, secstrs)) in dso__load_sym_internal()
1665 section_name = elf_sec__name(&shdr, secstrs); in dso__load_sym_internal()
1675 if (dso__process_kernel_symbol(dso, map, &sym, &shdr, kmaps, kmap, &curr_dso, &curr_map, in dso__load_sym_internal()
1689 __func__, (u64)sym.st_value, (u64)shdr.sh_addr, in dso__load_sym_internal()
1690 (u64)shdr.sh_offset); in dso__load_sym_internal()
1699 sym.st_value -= shdr.sh_addr - shdr.sh_offset; in dso__load_sym_internal()
2660 GElf_Shdr shdr; in populate_sdt_note() local
2755 if (elf_section_by_name(*elf, &ehdr, &shdr, SDT_BASE_SCN, NULL)) in populate_sdt_note()
2756 sdt_adjust_loc(tmp, shdr.sh_offset); in populate_sdt_note()
2759 if (elf_section_by_name(*elf, &ehdr, &shdr, SDT_PROBES_SCN, NULL)) in populate_sdt_note()
2760 sdt_adjust_refctr(tmp, shdr.sh_addr, shdr.sh_offset); in populate_sdt_note()
2791 GElf_Shdr shdr; in construct_sdt_notes_list() local
2807 scn = elf_section_by_name(elf, &ehdr, &shdr, SDT_NOTE_SCN, NULL); in construct_sdt_notes_list()
2813 if ((shdr.sh_type != SHT_NOTE) || (shdr.sh_flags & SHF_ALLOC)) { in construct_sdt_notes_list()