Lines Matching refs:efile
278 } efile; member
296 #define obj_elf_valid(o) ((o)->efile.elf)
444 Elf_Data *symbols = obj->efile.symbols; in bpf_object__init_prog_names()
464 name = elf_strptr(obj->efile.elf, in bpf_object__init_prog_names()
465 obj->efile.strtabidx, in bpf_object__init_prog_names()
474 if (!name && prog->idx == obj->efile.text_shndx) in bpf_object__init_prog_names()
514 obj->efile.fd = -1; in bpf_object__new()
521 obj->efile.obj_buf = obj_buf; in bpf_object__new()
522 obj->efile.obj_buf_sz = obj_buf_sz; in bpf_object__new()
523 obj->efile.maps_shndx = -1; in bpf_object__new()
524 obj->efile.btf_maps_shndx = -1; in bpf_object__new()
525 obj->efile.data_shndx = -1; in bpf_object__new()
526 obj->efile.rodata_shndx = -1; in bpf_object__new()
527 obj->efile.bss_shndx = -1; in bpf_object__new()
541 if (obj->efile.elf) { in bpf_object__elf_finish()
542 elf_end(obj->efile.elf); in bpf_object__elf_finish()
543 obj->efile.elf = NULL; in bpf_object__elf_finish()
545 obj->efile.symbols = NULL; in bpf_object__elf_finish()
546 obj->efile.data = NULL; in bpf_object__elf_finish()
547 obj->efile.rodata = NULL; in bpf_object__elf_finish()
548 obj->efile.bss = NULL; in bpf_object__elf_finish()
550 zfree(&obj->efile.reloc); in bpf_object__elf_finish()
551 obj->efile.nr_reloc = 0; in bpf_object__elf_finish()
552 zclose(obj->efile.fd); in bpf_object__elf_finish()
553 obj->efile.obj_buf = NULL; in bpf_object__elf_finish()
554 obj->efile.obj_buf_sz = 0; in bpf_object__elf_finish()
567 if (obj->efile.obj_buf_sz > 0) { in bpf_object__elf_init()
572 obj->efile.elf = elf_memory(obj->efile.obj_buf, in bpf_object__elf_init()
573 obj->efile.obj_buf_sz); in bpf_object__elf_init()
575 obj->efile.fd = open(obj->path, O_RDONLY); in bpf_object__elf_init()
576 if (obj->efile.fd < 0) { in bpf_object__elf_init()
585 obj->efile.elf = elf_begin(obj->efile.fd, in bpf_object__elf_init()
589 if (!obj->efile.elf) { in bpf_object__elf_init()
595 if (!gelf_getehdr(obj->efile.elf, &obj->efile.ehdr)) { in bpf_object__elf_init()
600 ep = &obj->efile.ehdr; in bpf_object__elf_init()
619 if (obj->efile.ehdr.e_ident[EI_DATA] == ELFDATA2LSB) in bpf_object__check_endianness()
622 if (obj->efile.ehdr.e_ident[EI_DATA] == ELFDATA2MSB) in bpf_object__check_endianness()
675 const GElf_Ehdr *ep = &obj->efile.ehdr; in bpf_object_search_section_size()
676 Elf *elf = obj->efile.elf; in bpf_object_search_section_size()
726 if (obj->efile.data) in bpf_object__section_size()
727 *size = obj->efile.data->d_size; in bpf_object__section_size()
729 if (obj->efile.bss) in bpf_object__section_size()
730 *size = obj->efile.bss->d_size; in bpf_object__section_size()
732 if (obj->efile.rodata) in bpf_object__section_size()
733 *size = obj->efile.rodata->d_size; in bpf_object__section_size()
746 Elf_Data *symbols = obj->efile.symbols; in bpf_object__variable_offset()
762 sname = elf_strptr(obj->efile.elf, obj->efile.strtabidx, in bpf_object__variable_offset()
866 if (obj->efile.data_shndx >= 0) { in bpf_object__init_global_data_maps()
868 obj->efile.data_shndx, in bpf_object__init_global_data_maps()
869 obj->efile.data, in bpf_object__init_global_data_maps()
874 if (obj->efile.rodata_shndx >= 0) { in bpf_object__init_global_data_maps()
876 obj->efile.rodata_shndx, in bpf_object__init_global_data_maps()
877 obj->efile.rodata, in bpf_object__init_global_data_maps()
882 if (obj->efile.bss_shndx >= 0) { in bpf_object__init_global_data_maps()
884 obj->efile.bss_shndx, in bpf_object__init_global_data_maps()
885 obj->efile.bss, NULL); in bpf_object__init_global_data_maps()
894 Elf_Data *symbols = obj->efile.symbols; in bpf_object__init_user_maps()
899 if (obj->efile.maps_shndx < 0) in bpf_object__init_user_maps()
905 scn = elf_getscn(obj->efile.elf, obj->efile.maps_shndx); in bpf_object__init_user_maps()
910 obj->efile.maps_shndx); in bpf_object__init_user_maps()
927 if (sym.st_shndx != obj->efile.maps_shndx) in bpf_object__init_user_maps()
952 if (sym.st_shndx != obj->efile.maps_shndx) in bpf_object__init_user_maps()
959 map_name = elf_strptr(obj->efile.elf, obj->efile.strtabidx, in bpf_object__init_user_maps()
1279 if (obj->efile.btf_maps_shndx < 0) in bpf_object__init_user_btf_maps()
1282 scn = elf_getscn(obj->efile.elf, obj->efile.btf_maps_shndx); in bpf_object__init_user_btf_maps()
1287 obj->efile.maps_shndx, MAPS_ELF_SEC); in bpf_object__init_user_btf_maps()
1311 obj->efile.btf_maps_shndx, in bpf_object__init_user_btf_maps()
1349 scn = elf_getscn(obj->efile.elf, idx); in section_have_execinstr()
1435 return obj->efile.btf_maps_shndx >= 0; in bpf_object__is_btf_mandatory()
1521 Elf *elf = obj->efile.elf; in bpf_object__elf_collect()
1522 GElf_Ehdr *ep = &obj->efile.ehdr; in bpf_object__elf_collect()
1577 obj->efile.maps_shndx = idx; in bpf_object__elf_collect()
1579 obj->efile.btf_maps_shndx = idx; in bpf_object__elf_collect()
1585 if (obj->efile.symbols) { in bpf_object__elf_collect()
1590 obj->efile.symbols = data; in bpf_object__elf_collect()
1591 obj->efile.strtabidx = sh.sh_link; in bpf_object__elf_collect()
1595 obj->efile.text_shndx = idx; in bpf_object__elf_collect()
1608 obj->efile.data = data; in bpf_object__elf_collect()
1609 obj->efile.data_shndx = idx; in bpf_object__elf_collect()
1611 obj->efile.rodata = data; in bpf_object__elf_collect()
1612 obj->efile.rodata_shndx = idx; in bpf_object__elf_collect()
1617 int nr_reloc = obj->efile.nr_reloc; in bpf_object__elf_collect()
1618 void *reloc = obj->efile.reloc; in bpf_object__elf_collect()
1629 sizeof(*obj->efile.reloc)); in bpf_object__elf_collect()
1635 obj->efile.reloc = reloc; in bpf_object__elf_collect()
1636 obj->efile.nr_reloc++; in bpf_object__elf_collect()
1638 obj->efile.reloc[nr_reloc].shdr = sh; in bpf_object__elf_collect()
1639 obj->efile.reloc[nr_reloc].data = data; in bpf_object__elf_collect()
1641 obj->efile.bss = data; in bpf_object__elf_collect()
1642 obj->efile.bss_shndx = idx; in bpf_object__elf_collect()
1648 if (!obj->efile.strtabidx || obj->efile.strtabidx >= idx) { in bpf_object__elf_collect()
1692 return shndx == obj->efile.data_shndx || in bpf_object__shndx_is_data()
1693 shndx == obj->efile.bss_shndx || in bpf_object__shndx_is_data()
1694 shndx == obj->efile.rodata_shndx; in bpf_object__shndx_is_data()
1700 return shndx == obj->efile.maps_shndx || in bpf_object__shndx_is_maps()
1701 shndx == obj->efile.btf_maps_shndx; in bpf_object__shndx_is_maps()
1707 return shndx == obj->efile.text_shndx || in bpf_object__relo_in_known_section()
1715 if (shndx == obj->efile.data_shndx) in bpf_object__section_to_libbpf_map_type()
1717 else if (shndx == obj->efile.bss_shndx) in bpf_object__section_to_libbpf_map_type()
1719 else if (shndx == obj->efile.rodata_shndx) in bpf_object__section_to_libbpf_map_type()
1729 Elf_Data *symbols = obj->efile.symbols; in bpf_program__collect_reloc()
1765 name = elf_strptr(obj->efile.elf, obj->efile.strtabidx, in bpf_program__collect_reloc()
1860 if (map->sec_idx == obj->efile.btf_maps_shndx) in bpf_map_find_btf_info()
3199 if (prog->idx == obj->efile.text_shndx) { in bpf_program__reloc_text()
3206 text = bpf_object__find_prog_by_idx(obj, obj->efile.text_shndx); in bpf_program__reloc_text()
3331 for (i = 0; i < obj->efile.nr_reloc; i++) { in bpf_object__collect_reloc()
3332 GElf_Shdr *shdr = &obj->efile.reloc[i].shdr; in bpf_object__collect_reloc()
3333 Elf_Data *data = obj->efile.reloc[i].data; in bpf_object__collect_reloc()
3532 return prog->idx == obj->efile.text_shndx && obj->has_pseudo_calls; in bpf_program__is_function_storage()