Lines Matching defs:efile
723 /* Information when doing ELF related work. Only valid if efile.elf is not NULL */
724 struct elf_state efile;
903 Elf_Data *symbols = obj->efile.symbols;
939 if (sec_idx != obj->efile.text_shndx && ELF64_ST_BIND(sym->st_info) == STB_LOCAL) {
1496 for (sec_idx = 0; sec_idx < obj->efile.sec_cnt; ++sec_idx) {
1497 struct elf_sec_desc *desc = &obj->efile.secs[sec_idx];
1539 obj->efile.fd = -1;
1546 obj->efile.obj_buf = obj_buf;
1547 obj->efile.obj_buf_sz = obj_buf_sz;
1548 obj->efile.btf_maps_shndx = -1;
1560 if (!obj->efile.elf)
1563 elf_end(obj->efile.elf);
1564 obj->efile.elf = NULL;
1565 obj->efile.ehdr = NULL;
1566 obj->efile.symbols = NULL;
1567 obj->efile.arena_data = NULL;
1569 zfree(&obj->efile.secs);
1570 obj->efile.sec_cnt = 0;
1571 zclose(obj->efile.fd);
1572 obj->efile.obj_buf = NULL;
1573 obj->efile.obj_buf_sz = 0;
1582 if (obj->efile.elf) {
1587 if (obj->efile.obj_buf_sz > 0) {
1589 elf = elf_memory((char *)obj->efile.obj_buf, obj->efile.obj_buf_sz);
1591 obj->efile.fd = open(obj->path, O_RDONLY | O_CLOEXEC);
1592 if (obj->efile.fd < 0) {
1598 elf = elf_begin(obj->efile.fd, ELF_C_READ_MMAP, NULL);
1607 obj->efile.elf = elf;
1621 obj->efile.ehdr = ehdr = elf64_getehdr(elf);
1622 if (!obj->efile.ehdr) {
1638 if (elf_getshdrstrndx(elf, &obj->efile.shstrndx)) {
1646 if (!elf_rawdata(elf_getscn(elf, obj->efile.shstrndx), NULL)) {
1735 Elf_Data *symbols = obj->efile.symbols;
2025 for (sec_idx = 1; sec_idx < obj->efile.sec_cnt; sec_idx++) {
2026 sec_desc = &obj->efile.secs[sec_idx];
2388 ".kconfig", obj->efile.symbols_shndx,
3028 if (obj->efile.btf_maps_shndx < 0)
3031 scn = elf_sec_by_idx(obj, obj->efile.btf_maps_shndx);
3047 obj->efile.btf_maps_sec_btf_id = i;
3060 obj->efile.btf_maps_shndx,
3080 if (obj->efile.arena_data) {
3081 err = init_arena_map_data(obj, map, ARENA_SEC, obj->efile.arena_data_shndx,
3082 obj->efile.arena_data->d_buf,
3083 obj->efile.arena_data->d_size);
3088 if (obj->efile.arena_data && obj->arena_map_idx < 0) {
3315 return obj->efile.btf_maps_shndx >= 0 ||
3316 obj->efile.has_st_ops ||
3322 return obj->efile.has_st_ops;
3709 name = elf_strptr(obj->efile.elf, obj->efile.strtabidx, off);
3723 name = elf_strptr(obj->efile.elf, obj->efile.shstrndx, off);
3737 scn = elf_getscn(obj->efile.elf, idx);
3749 Elf *elf = obj->efile.elf;
3824 if (idx >= obj->efile.symbols->d_size / sizeof(Elf64_Sym))
3827 return (Elf64_Sym *)obj->efile.symbols->d_buf + idx;
3893 Elf *elf = obj->efile.elf;
3907 if (elf_getshdrnum(obj->efile.elf, &obj->efile.sec_cnt)) {
3912 obj->efile.secs = calloc(obj->efile.sec_cnt, sizeof(*obj->efile.secs));
3913 if (!obj->efile.secs)
3926 if (obj->efile.symbols) {
3937 obj->efile.symbols = data;
3938 obj->efile.symbols_shndx = idx;
3939 obj->efile.strtabidx = sh->sh_link;
3943 if (!obj->efile.symbols) {
3952 sec_desc = &obj->efile.secs[idx];
3986 obj->efile.btf_maps_shndx = idx;
4000 obj->efile.text_shndx = idx;
4021 obj->efile.has_st_ops = true;
4023 obj->efile.arena_data = data;
4024 obj->efile.arena_data_shndx = idx;
4031 obj->efile.jumptables_data_shndx = idx;
4040 targ_sec_idx >= obj->efile.sec_cnt)
4070 if (!obj->efile.strtabidx || obj->efile.strtabidx > idx) {
4305 if (!obj->efile.symbols)
4308 scn = elf_sec_by_idx(obj, obj->efile.symbols_shndx);
4517 return prog->sec_idx == obj->efile.text_shndx;
4538 switch (obj->efile.secs[shndx].sec_type) {
4551 return shndx == obj->efile.btf_maps_shndx;
4557 if (shndx == obj->efile.symbols_shndx)
4560 switch (obj->efile.secs[shndx].sec_type) {
4662 if (!shdr_idx || shdr_idx != obj->efile.text_shndx) {
4686 if (sym_is_subprog(sym, obj->efile.text_shndx)) {
4706 if (shdr_idx == obj->efile.arena_data_shndx) {
4725 if (shdr_idx == obj->efile.jumptables_data_shndx) {
4841 if (sec_idx >= obj->efile.sec_cnt)
4873 if (sym->st_shndx >= obj->efile.sec_cnt) {
4937 if (map->sec_idx == obj->efile.btf_maps_shndx || bpf_map__is_struct_ops(map))
6832 subprog = find_prog_by_sec_insn(obj, obj->efile.text_shndx, sub_insn_idx);
7562 if (!obj->efile.btf_maps_sec_btf_id || !obj->btf)
7564 sec = btf__type_by_id(obj->btf, obj->efile.btf_maps_sec_btf_id);
7590 if (map->sec_idx != obj->efile.btf_maps_shndx)
7608 if (sym->st_shndx != obj->efile.btf_maps_shndx) {
7686 for (i = 0; i < obj->efile.sec_cnt; i++) {
7687 struct elf_sec_desc *sec_desc = &obj->efile.secs[i];
7699 if (shdr->sh_type != SHT_REL || idx < 0 || idx >= obj->efile.sec_cnt) {
7704 if (obj->efile.secs[idx].sec_type == SEC_ST_OPS)
7706 else if (idx == obj->efile.btf_maps_shndx)