Lines Matching defs:efile

456 	} efile;
476 #define obj_elf_valid(o) ((o)->efile.elf)
948 if (obj->efile.st_ops_shndx == -1)
988 map->sec_idx = obj->efile.st_ops_shndx;
1010 if (vsi->offset + type->size > obj->efile.st_ops_data->d_size) {
1017 obj->efile.st_ops_data->d_buf + vsi->offset,
1057 obj->efile.fd = -1;
1064 obj->efile.obj_buf = obj_buf;
1065 obj->efile.obj_buf_sz = obj_buf_sz;
1066 obj->efile.maps_shndx = -1;
1067 obj->efile.btf_maps_shndx = -1;
1068 obj->efile.data_shndx = -1;
1069 obj->efile.rodata_shndx = -1;
1070 obj->efile.bss_shndx = -1;
1071 obj->efile.st_ops_shndx = -1;
1088 if (obj->efile.elf) {
1089 elf_end(obj->efile.elf);
1090 obj->efile.elf = NULL;
1092 obj->efile.symbols = NULL;
1093 obj->efile.data = NULL;
1094 obj->efile.rodata = NULL;
1095 obj->efile.bss = NULL;
1096 obj->efile.st_ops_data = NULL;
1098 zfree(&obj->efile.reloc_sects);
1099 obj->efile.nr_reloc_sects = 0;
1100 zclose(obj->efile.fd);
1101 obj->efile.obj_buf = NULL;
1102 obj->efile.obj_buf_sz = 0;
1120 if (obj->efile.obj_buf_sz > 0) {
1125 obj->efile.elf = elf_memory((char *)obj->efile.obj_buf,
1126 obj->efile.obj_buf_sz);
1128 obj->efile.fd = open(obj->path, O_RDONLY);
1129 if (obj->efile.fd < 0) {
1138 obj->efile.elf = elf_begin(obj->efile.fd, ELF_C_READ_MMAP, NULL);
1141 if (!obj->efile.elf) {
1147 if (!gelf_getehdr(obj->efile.elf, &obj->efile.ehdr)) {
1152 ep = &obj->efile.ehdr;
1154 if (elf_getshdrstrndx(obj->efile.elf, &obj->efile.shstrndx)) {
1162 if (!elf_rawdata(elf_getscn(obj->efile.elf, obj->efile.shstrndx), NULL)) {
1186 if (obj->efile.ehdr.e_ident[EI_DATA] == ELFDATA2LSB)
1189 if (obj->efile.ehdr.e_ident[EI_DATA] == ELFDATA2MSB)
1238 if (obj->efile.data)
1239 *size = obj->efile.data->d_size;
1241 if (obj->efile.bss)
1242 *size = obj->efile.bss->d_size;
1244 if (obj->efile.rodata)
1245 *size = obj->efile.rodata->d_size;
1247 if (obj->efile.st_ops_data)
1248 *size = obj->efile.st_ops_data->d_size;
1265 Elf_Data *symbols = obj->efile.symbols;
1418 if (obj->efile.data_shndx >= 0) {
1420 obj->efile.data_shndx,
1421 obj->efile.data->d_buf,
1422 obj->efile.data->d_size);
1426 if (obj->efile.rodata_shndx >= 0) {
1428 obj->efile.rodata_shndx,
1429 obj->efile.rodata->d_buf,
1430 obj->efile.rodata->d_size);
1436 if (obj->efile.bss_shndx >= 0) {
1438 obj->efile.bss_shndx,
1440 obj->efile.bss->d_size);
1737 obj->efile.symbols_shndx,
1749 Elf_Data *symbols = obj->efile.symbols;
1754 if (obj->efile.maps_shndx < 0)
1761 scn = elf_sec_by_idx(obj, obj->efile.maps_shndx);
1782 if (sym.st_shndx != obj->efile.maps_shndx)
1806 if (sym.st_shndx != obj->efile.maps_shndx)
2157 map->inner_map->sec_idx = obj->efile.btf_maps_shndx;
2292 if (obj->efile.btf_maps_shndx < 0)
2295 scn = elf_sec_by_idx(obj, obj->efile.btf_maps_shndx);
2311 obj->efile.btf_maps_sec_btf_id = i;
2324 obj->efile.btf_maps_shndx,
2436 return obj->efile.btf_maps_shndx >= 0 ||
2437 obj->efile.st_ops_shndx >= 0 ||
2443 return obj->efile.st_ops_shndx >= 0;
2621 name = elf_strptr(obj->efile.elf, obj->efile.strtabidx, off);
2635 name = elf_strptr(obj->efile.elf, obj->efile.shstrndx, off);
2649 scn = elf_getscn(obj->efile.elf, idx);
2661 Elf *elf = obj->efile.elf;
2733 Elf_Data *symbols = obj->efile.symbols;
2804 Elf *elf = obj->efile.elf;
2822 if (obj->efile.symbols) {
2831 obj->efile.symbols = data;
2832 obj->efile.symbols_shndx = elf_ndxscn(scn);
2833 obj->efile.strtabidx = sh.sh_link;
2869 obj->efile.maps_shndx = idx;
2871 obj->efile.btf_maps_shndx = idx;
2881 obj->efile.text_shndx = idx;
2886 obj->efile.data = data;
2887 obj->efile.data_shndx = idx;
2889 obj->efile.rodata = data;
2890 obj->efile.rodata_shndx = idx;
2892 obj->efile.st_ops_data = data;
2893 obj->efile.st_ops_shndx = idx;
2899 int nr_sects = obj->efile.nr_reloc_sects;
2900 void *sects = obj->efile.reloc_sects;
2914 sizeof(*obj->efile.reloc_sects));
2918 obj->efile.reloc_sects = sects;
2919 obj->efile.nr_reloc_sects++;
2921 obj->efile.reloc_sects[nr_sects].shdr = sh;
2922 obj->efile.reloc_sects[nr_sects].data = data;
2924 obj->efile.bss = data;
2925 obj->efile.bss_shndx = idx;
2932 if (!obj->efile.strtabidx || obj->efile.strtabidx > idx) {
3096 if (!obj->efile.symbols)
3099 scn = elf_sec_by_idx(obj, obj->efile.symbols_shndx);
3109 if (!gelf_getsym(obj->efile.symbols, i, &sym))
3287 return prog->sec_idx == obj->efile.text_shndx && obj->nr_programs > 1;
3308 return shndx == obj->efile.data_shndx ||
3309 shndx == obj->efile.bss_shndx ||
3310 shndx == obj->efile.rodata_shndx;
3316 return shndx == obj->efile.maps_shndx ||
3317 shndx == obj->efile.btf_maps_shndx;
3323 if (shndx == obj->efile.data_shndx)
3325 else if (shndx == obj->efile.bss_shndx)
3327 else if (shndx == obj->efile.rodata_shndx)
3329 else if (shndx == obj->efile.symbols_shndx)
3357 if (!shdr_idx || shdr_idx != obj->efile.text_shndx) {
3507 Elf_Data *symbols = obj->efile.symbols;
3594 if (map->sec_idx == obj->efile.btf_maps_shndx ||
6257 subprog = find_prog_by_sec_insn(obj, obj->efile.text_shndx, sub_insn_idx);
6503 if (!obj->efile.btf_maps_sec_btf_id || !obj->btf)
6505 sec = btf__type_by_id(obj->btf, obj->efile.btf_maps_sec_btf_id);
6509 symbols = obj->efile.symbols;
6522 if (sym.st_shndx != obj->efile.btf_maps_shndx) {
6534 if (map->sec_idx != obj->efile.btf_maps_shndx)
6619 for (i = 0; i < obj->efile.nr_reloc_sects; i++) {
6620 GElf_Shdr *shdr = &obj->efile.reloc_sects[i].shdr;
6621 Elf_Data *data = obj->efile.reloc_sects[i].data;
6629 if (idx == obj->efile.st_ops_shndx)
6631 else if (idx == obj->efile.btf_maps_shndx)
8574 symbols = obj->efile.symbols;