Lines Matching refs:shdr
167 static inline const char *elf_sec__name(const GElf_Shdr *shdr, in elf_sec__name() argument
170 return secstrs->d_buf + shdr->sh_name; in elf_sec__name()
173 static inline int elf_sec__is_text(const GElf_Shdr *shdr, in elf_sec__is_text() argument
176 return strstr(elf_sec__name(shdr, secstrs), "text") != NULL; in elf_sec__is_text()
179 static inline bool elf_sec__is_data(const GElf_Shdr *shdr, in elf_sec__is_data() argument
182 return strstr(elf_sec__name(shdr, secstrs), "data") != NULL; in elf_sec__is_data()
185 static bool elf_sec__filter(GElf_Shdr *shdr, Elf_Data *secstrs) in elf_sec__filter() argument
187 return elf_sec__is_text(shdr, secstrs) || in elf_sec__filter()
188 elf_sec__is_data(shdr, secstrs); in elf_sec__filter()
194 GElf_Shdr shdr; in elf_addr_to_index() local
198 gelf_getshdr(sec, &shdr); in elf_addr_to_index()
200 if ((addr >= shdr.sh_addr) && in elf_addr_to_index()
201 (addr < (shdr.sh_addr + shdr.sh_size))) in elf_addr_to_index()
241 GElf_Shdr shdr; in filename__has_section() local
255 found = !!elf_section_by_name(elf, &ehdr, &shdr, sec, NULL); in filename__has_section()
529 GElf_Shdr shdr; in get_rela_dyn_info() local
541 if (!scn || !gelf_getshdr(scn, &shdr) || !shdr.sh_link) in get_rela_dyn_info()
545 di->dynstr_data = elf_getdata(elf_getscn(elf, shdr.sh_link), NULL); in get_rela_dyn_info()
575 static bool get_plt_got_name(GElf_Shdr *shdr, size_t i, in get_plt_got_name() argument
593 vi.offset = shdr->sh_offset + di->plt_got_data->d_off + i + disp; in get_plt_got_name()
620 GElf_Shdr shdr; in dso__synthesize_plt_got_symbols() local
625 scn = elf_section_by_name(elf, ehdr, &shdr, ".plt.got", NULL); in dso__synthesize_plt_got_symbols()
626 if (!scn || !shdr.sh_entsize) in dso__synthesize_plt_got_symbols()
632 for (i = 0; i < shdr.sh_size; i += shdr.sh_entsize) { in dso__synthesize_plt_got_symbols()
633 if (!get_plt_got_name(&shdr, i, &di, buf, buf_sz)) in dso__synthesize_plt_got_symbols()
634 snprintf(buf, buf_sz, "offset_%#" PRIx64 "@plt", (u64)shdr.sh_offset + i); in dso__synthesize_plt_got_symbols()
635 sym = symbol__new(shdr.sh_offset + i, shdr.sh_entsize, STB_GLOBAL, STT_FUNC, buf); in dso__synthesize_plt_got_symbols()
842 GElf_Shdr shdr; in elf_read_build_id() local
867 sec = elf_section_by_name(elf, &ehdr, &shdr, in elf_read_build_id()
872 sec = elf_section_by_name(elf, &ehdr, &shdr, in elf_read_build_id()
877 sec = elf_section_by_name(elf, &ehdr, &shdr, in elf_read_build_id()
1107 GElf_Shdr shdr; in filename__read_debuglink() local
1131 sec = elf_section_by_name(elf, &ehdr, &shdr, in filename__read_debuglink()
1349 GElf_Sym *sym, GElf_Shdr *shdr, in dso__process_kernel_symbol() argument
1361 sym->st_value -= shdr->sh_addr - shdr->sh_offset; in dso__process_kernel_symbol()
1374 map->start = shdr->sh_addr + ref_reloc(kmap); in dso__process_kernel_symbol()
1375 map->end = map->start + shdr->sh_size; in dso__process_kernel_symbol()
1376 map->pgoff = shdr->sh_offset; in dso__process_kernel_symbol()
1395 map->pgoff = shdr->sh_offset; in dso__process_kernel_symbol()
1413 start += map->start + shdr->sh_offset; in dso__process_kernel_symbol()
1430 curr_map->start = shdr->sh_addr + ref_reloc(kmap); in dso__process_kernel_symbol()
1431 curr_map->end = curr_map->start + shdr->sh_size; in dso__process_kernel_symbol()
1432 curr_map->pgoff = shdr->sh_offset; in dso__process_kernel_symbol()
1468 GElf_Shdr shdr; in dso__load_sym_internal() local
1484 shdr = syms_ss->dynshdr; in dso__load_sym_internal()
1487 shdr = syms_ss->symshdr; in dso__load_sym_internal()
1501 sec = elf_getscn(elf, shdr.sh_link); in dso__load_sym_internal()
1525 nr_syms = shdr.sh_size / shdr.sh_entsize; in dso__load_sym_internal()
1607 gelf_getshdr(sec, &shdr); in dso__load_sym_internal()
1617 if (!(shdr.sh_flags & SHF_ALLOC)) in dso__load_sym_internal()
1628 if (shdr.sh_type == SHT_NOBITS) { in dso__load_sym_internal()
1633 gelf_getshdr(sec, &shdr); in dso__load_sym_internal()
1637 if (is_label && !elf_sec__filter(&shdr, secstrs)) in dso__load_sym_internal()
1640 section_name = elf_sec__name(&shdr, secstrs); in dso__load_sym_internal()
1650 if (dso__process_kernel_symbol(dso, map, &sym, &shdr, kmaps, kmap, &curr_dso, &curr_map, in dso__load_sym_internal()
1664 __func__, (u64)sym.st_value, (u64)shdr.sh_addr, in dso__load_sym_internal()
1665 (u64)shdr.sh_offset); in dso__load_sym_internal()
1674 sym.st_value -= shdr.sh_addr - shdr.sh_offset; in dso__load_sym_internal()
2635 GElf_Shdr shdr; in populate_sdt_note() local
2730 if (elf_section_by_name(*elf, &ehdr, &shdr, SDT_BASE_SCN, NULL)) in populate_sdt_note()
2731 sdt_adjust_loc(tmp, shdr.sh_offset); in populate_sdt_note()
2734 if (elf_section_by_name(*elf, &ehdr, &shdr, SDT_PROBES_SCN, NULL)) in populate_sdt_note()
2735 sdt_adjust_refctr(tmp, shdr.sh_addr, shdr.sh_offset); in populate_sdt_note()
2766 GElf_Shdr shdr; in construct_sdt_notes_list() local
2782 scn = elf_section_by_name(elf, &ehdr, &shdr, SDT_NOTE_SCN, NULL); in construct_sdt_notes_list()
2788 if ((shdr.sh_type != SHT_NOTE) || (shdr.sh_flags & SHF_ALLOC)) { in construct_sdt_notes_list()