Lines Matching refs:efile

522 	struct elf_state efile;  member
712 Elf_Data *symbols = obj->efile.symbols; in bpf_object__add_programs()
749 if (sec_idx != obj->efile.text_shndx && ELF64_ST_BIND(sym->st_info) == STB_LOCAL) { in bpf_object__add_programs()
1065 if (obj->efile.st_ops_shndx == -1) in bpf_object__init_struct_ops_maps()
1105 map->sec_idx = obj->efile.st_ops_shndx; in bpf_object__init_struct_ops_maps()
1127 if (vsi->offset + type->size > obj->efile.st_ops_data->d_size) { in bpf_object__init_struct_ops_maps()
1134 obj->efile.st_ops_data->d_buf + vsi->offset, in bpf_object__init_struct_ops_maps()
1175 obj->efile.fd = -1; in bpf_object__new()
1182 obj->efile.obj_buf = obj_buf; in bpf_object__new()
1183 obj->efile.obj_buf_sz = obj_buf_sz; in bpf_object__new()
1184 obj->efile.maps_shndx = -1; in bpf_object__new()
1185 obj->efile.btf_maps_shndx = -1; in bpf_object__new()
1186 obj->efile.st_ops_shndx = -1; in bpf_object__new()
1200 if (!obj->efile.elf) in bpf_object__elf_finish()
1203 if (obj->efile.elf) { in bpf_object__elf_finish()
1204 elf_end(obj->efile.elf); in bpf_object__elf_finish()
1205 obj->efile.elf = NULL; in bpf_object__elf_finish()
1207 obj->efile.symbols = NULL; in bpf_object__elf_finish()
1208 obj->efile.st_ops_data = NULL; in bpf_object__elf_finish()
1210 zfree(&obj->efile.secs); in bpf_object__elf_finish()
1211 obj->efile.sec_cnt = 0; in bpf_object__elf_finish()
1212 zclose(obj->efile.fd); in bpf_object__elf_finish()
1213 obj->efile.obj_buf = NULL; in bpf_object__elf_finish()
1214 obj->efile.obj_buf_sz = 0; in bpf_object__elf_finish()
1223 if (obj->efile.elf) { in bpf_object__elf_init()
1228 if (obj->efile.obj_buf_sz > 0) { in bpf_object__elf_init()
1233 elf = elf_memory((char *)obj->efile.obj_buf, obj->efile.obj_buf_sz); in bpf_object__elf_init()
1235 obj->efile.fd = open(obj->path, O_RDONLY | O_CLOEXEC); in bpf_object__elf_init()
1236 if (obj->efile.fd < 0) { in bpf_object__elf_init()
1245 elf = elf_begin(obj->efile.fd, ELF_C_READ_MMAP, NULL); in bpf_object__elf_init()
1254 obj->efile.elf = elf; in bpf_object__elf_init()
1268 obj->efile.ehdr = ehdr = elf64_getehdr(elf); in bpf_object__elf_init()
1269 if (!obj->efile.ehdr) { in bpf_object__elf_init()
1275 if (elf_getshdrstrndx(elf, &obj->efile.shstrndx)) { in bpf_object__elf_init()
1283 if (!elf_rawdata(elf_getscn(elf, obj->efile.shstrndx), NULL)) { in bpf_object__elf_init()
1306 if (obj->efile.ehdr->e_ident[EI_DATA] == ELFDATA2LSB) in bpf_object__check_endianness()
1309 if (obj->efile.ehdr->e_ident[EI_DATA] == ELFDATA2MSB) in bpf_object__check_endianness()
1371 Elf_Data *symbols = obj->efile.symbols; in find_elf_var_offset()
1564 for (sec_idx = 1; sec_idx < obj->efile.sec_cnt; sec_idx++) { in bpf_object__init_global_data_maps()
1565 sec_desc = &obj->efile.secs[sec_idx]; in bpf_object__init_global_data_maps()
1890 ".kconfig", obj->efile.symbols_shndx, in bpf_object__init_kconfig_map()
1902 Elf_Data *symbols = obj->efile.symbols; in bpf_object__init_user_maps()
1907 if (obj->efile.maps_shndx < 0) in bpf_object__init_user_maps()
1913 scn = elf_sec_by_idx(obj, obj->efile.maps_shndx); in bpf_object__init_user_maps()
1932 if (sym->st_shndx != obj->efile.maps_shndx) in bpf_object__init_user_maps()
1956 if (sym->st_shndx != obj->efile.maps_shndx) in bpf_object__init_user_maps()
2512 if (obj->efile.btf_maps_shndx < 0) in bpf_object__init_user_btf_maps()
2515 scn = elf_sec_by_idx(obj, obj->efile.btf_maps_shndx); in bpf_object__init_user_btf_maps()
2531 obj->efile.btf_maps_sec_btf_id = i; in bpf_object__init_user_btf_maps()
2544 obj->efile.btf_maps_shndx, in bpf_object__init_user_btf_maps()
2666 return obj->efile.btf_maps_shndx >= 0 || in libbpf_needs_btf()
2667 obj->efile.st_ops_shndx >= 0 || in libbpf_needs_btf()
2673 return obj->efile.st_ops_shndx >= 0; in kernel_needs_btf()
3001 name = elf_strptr(obj->efile.elf, obj->efile.strtabidx, off); in elf_sym_str()
3015 name = elf_strptr(obj->efile.elf, obj->efile.shstrndx, off); in elf_sec_str()
3029 scn = elf_getscn(obj->efile.elf, idx); in elf_sec_by_idx()
3041 Elf *elf = obj->efile.elf; in elf_sec_by_name()
3116 if (idx >= obj->efile.symbols->d_size / sizeof(Elf64_Sym)) in elf_sym_by_idx()
3119 return (Elf64_Sym *)obj->efile.symbols->d_buf + idx; in elf_sym_by_idx()
3185 Elf *elf = obj->efile.elf; in bpf_object__elf_collect()
3198 obj->efile.sec_cnt = 1 + obj->efile.ehdr->e_shnum; in bpf_object__elf_collect()
3199 obj->efile.secs = calloc(obj->efile.sec_cnt, sizeof(*obj->efile.secs)); in bpf_object__elf_collect()
3200 if (!obj->efile.secs) in bpf_object__elf_collect()
3213 if (obj->efile.symbols) { in bpf_object__elf_collect()
3224 obj->efile.symbols = data; in bpf_object__elf_collect()
3225 obj->efile.symbols_shndx = idx; in bpf_object__elf_collect()
3226 obj->efile.strtabidx = sh->sh_link; in bpf_object__elf_collect()
3230 if (!obj->efile.symbols) { in bpf_object__elf_collect()
3239 sec_desc = &obj->efile.secs[idx]; in bpf_object__elf_collect()
3270 obj->efile.maps_shndx = idx; in bpf_object__elf_collect()
3272 obj->efile.btf_maps_shndx = idx; in bpf_object__elf_collect()
3282 obj->efile.text_shndx = idx; in bpf_object__elf_collect()
3297 obj->efile.st_ops_data = data; in bpf_object__elf_collect()
3298 obj->efile.st_ops_shndx = idx; in bpf_object__elf_collect()
3329 if (!obj->efile.strtabidx || obj->efile.strtabidx > idx) { in bpf_object__elf_collect()
3553 if (!obj->efile.symbols) in bpf_object__collect_externs()
3556 scn = elf_sec_by_idx(obj, obj->efile.symbols_shndx); in bpf_object__collect_externs()
3781 return prog->sec_idx == obj->efile.text_shndx && obj->nr_programs > 1; in prog_is_subprog()
3802 switch (obj->efile.secs[shndx].sec_type) { in bpf_object__shndx_is_data()
3815 return shndx == obj->efile.maps_shndx || in bpf_object__shndx_is_maps()
3816 shndx == obj->efile.btf_maps_shndx; in bpf_object__shndx_is_maps()
3822 if (shndx == obj->efile.symbols_shndx) in bpf_object__section_to_libbpf_map_type()
3825 switch (obj->efile.secs[shndx].sec_type) { in bpf_object__section_to_libbpf_map_type()
3889 if (!shdr_idx || shdr_idx != obj->efile.text_shndx) { in bpf_program__record_reloc()
3913 if (sym_is_subprog(sym, obj->efile.text_shndx)) { in bpf_program__record_reloc()
4119 if (map->sec_idx == obj->efile.btf_maps_shndx || in bpf_map_find_btf_info()
5893 subprog = find_prog_by_sec_insn(obj, obj->efile.text_shndx, sub_insn_idx); in bpf_object__reloc_code()
6167 if (!obj->efile.btf_maps_sec_btf_id || !obj->btf) in bpf_object__collect_map_relos()
6169 sec = btf__type_by_id(obj->btf, obj->efile.btf_maps_sec_btf_id); in bpf_object__collect_map_relos()
6188 if (sym->st_shndx != obj->efile.btf_maps_shndx) { in bpf_object__collect_map_relos()
6200 if (map->sec_idx != obj->efile.btf_maps_shndx) in bpf_object__collect_map_relos()
6285 for (i = 0; i < obj->efile.sec_cnt; i++) { in bpf_object__collect_relos()
6286 struct elf_sec_desc *sec_desc = &obj->efile.secs[i]; in bpf_object__collect_relos()
6303 if (idx == obj->efile.st_ops_shndx) in bpf_object__collect_relos()
6305 else if (idx == obj->efile.btf_maps_shndx) in bpf_object__collect_relos()