Lines Matching refs:ef
192 static int relocate_file(elf_file_t ef);
213 link_elf_protect_range(elf_file_t ef, vm_offset_t start, vm_offset_t end, in link_elf_protect_range() argument
218 KASSERT(start <= end && start >= (vm_offset_t)ef->address && in link_elf_protect_range()
219 end <= round_page((vm_offset_t)ef->address + ef->lf.size), in link_elf_protect_range()
225 if (ef->preloaded) { in link_elf_protect_range()
245 link_elf_protect(elf_file_t ef) in link_elf_protect() argument
257 gapprot = ef->preloaded ? VM_PROT_RW : VM_PROT_READ; in link_elf_protect()
259 start = end = (vm_offset_t)ef->address; in link_elf_protect()
261 for (i = 0; i < ef->nprogtab; i++) { in link_elf_protect()
266 if (ef->progtab[i].name != NULL && ( in link_elf_protect()
268 strcmp(ef->progtab[i].name, VNET_SETNAME) == 0 || in link_elf_protect()
270 strcmp(ef->progtab[i].name, DPCPU_SETNAME) == 0)) in link_elf_protect()
273 segstart = trunc_page((vm_offset_t)ef->progtab[i].addr); in link_elf_protect()
274 segend = round_page((vm_offset_t)ef->progtab[i].addr + in link_elf_protect()
275 ef->progtab[i].size); in link_elf_protect()
277 if ((ef->progtab[i].flags & SHF_WRITE) != 0) in link_elf_protect()
279 if ((ef->progtab[i].flags & SHF_EXECINSTR) != 0) in link_elf_protect()
289 link_elf_protect_range(ef, start, end, prot); in link_elf_protect()
290 link_elf_protect_range(ef, end, segstart, gapprot); in link_elf_protect()
301 link_elf_protect_range(ef, start, segstart, prot); in link_elf_protect()
313 link_elf_protect_range(ef, start, segstart, prot); in link_elf_protect()
314 link_elf_protect_range(ef, segstart, end, in link_elf_protect()
330 link_elf_protect_range(ef, start, end, prot); in link_elf_protect()
331 link_elf_protect_range(ef, end, in link_elf_protect()
332 round_page((vm_offset_t)ef->address + ef->lf.size), gapprot); in link_elf_protect()
344 elf_file_t ef; in link_elf_link_preload() local
374 ef = (elf_file_t)lf; in link_elf_link_preload()
375 ef->preloaded = 1; in link_elf_link_preload()
376 ef->address = *(caddr_t *)baseptr; in link_elf_link_preload()
389 ef->e_shdr = shdr; in link_elf_link_preload()
406 ef->nprogtab++; in link_elf_link_preload()
419 ef->nreltab++; in link_elf_link_preload()
424 ef->nrelatab++; in link_elf_link_preload()
430 if (ef->nprogtab == 0 || symstrindex < 0 || in link_elf_link_preload()
441 if (ef->nprogtab != 0) in link_elf_link_preload()
442 ef->progtab = malloc(ef->nprogtab * sizeof(*ef->progtab), in link_elf_link_preload()
444 if (ef->nreltab != 0) in link_elf_link_preload()
445 ef->reltab = malloc(ef->nreltab * sizeof(*ef->reltab), in link_elf_link_preload()
447 if (ef->nrelatab != 0) in link_elf_link_preload()
448 ef->relatab = malloc(ef->nrelatab * sizeof(*ef->relatab), in link_elf_link_preload()
450 if ((ef->nprogtab != 0 && ef->progtab == NULL) || in link_elf_link_preload()
451 (ef->nreltab != 0 && ef->reltab == NULL) || in link_elf_link_preload()
452 (ef->nrelatab != 0 && ef->relatab == NULL)) { in link_elf_link_preload()
466 (Elf_Addr)ef->address; in link_elf_link_preload()
469 ef->ddbsymcnt = shdr[symtabindex].sh_size / sizeof(Elf_Sym); in link_elf_link_preload()
470 ef->ddbsymtab = (Elf_Sym *)shdr[symtabindex].sh_addr; in link_elf_link_preload()
471 ef->ddbstrcnt = shdr[symstrindex].sh_size; in link_elf_link_preload()
472 ef->ddbstrtab = (char *)shdr[symstrindex].sh_addr; in link_elf_link_preload()
473 ef->shstrcnt = shdr[shstrindex].sh_size; in link_elf_link_preload()
474 ef->shstrtab = (char *)shdr[shstrindex].sh_addr; in link_elf_link_preload()
491 ef->progtab[pb].addr = (void *)shdr[i].sh_addr; in link_elf_link_preload()
493 ef->progtab[pb].name = "<<PROGBITS>>"; in link_elf_link_preload()
496 ef->progtab[pb].name = "<<UNWIND>>"; in link_elf_link_preload()
499 ef->progtab[pb].name = "<<INIT_ARRAY>>"; in link_elf_link_preload()
501 ef->progtab[pb].name = "<<FINI_ARRAY>>"; in link_elf_link_preload()
503 ef->progtab[pb].name = "<<NOBITS>>"; in link_elf_link_preload()
504 ef->progtab[pb].size = shdr[i].sh_size; in link_elf_link_preload()
505 ef->progtab[pb].flags = shdr[i].sh_flags; in link_elf_link_preload()
506 ef->progtab[pb].sec = i; in link_elf_link_preload()
507 if (ef->shstrtab && shdr[i].sh_name != 0) in link_elf_link_preload()
508 ef->progtab[pb].name = in link_elf_link_preload()
509 ef->shstrtab + shdr[i].sh_name; in link_elf_link_preload()
510 if (ef->progtab[pb].name != NULL && in link_elf_link_preload()
511 !strcmp(ef->progtab[pb].name, DPCPU_SETNAME)) { in link_elf_link_preload()
524 memcpy(dpcpu, ef->progtab[pb].addr, in link_elf_link_preload()
525 ef->progtab[pb].size); in link_elf_link_preload()
527 ef->progtab[pb].addr = dpcpu; in link_elf_link_preload()
529 } else if (ef->progtab[pb].name != NULL && in link_elf_link_preload()
530 !strcmp(ef->progtab[pb].name, VNET_SETNAME)) { in link_elf_link_preload()
543 memcpy(vnet_data, ef->progtab[pb].addr, in link_elf_link_preload()
544 ef->progtab[pb].size); in link_elf_link_preload()
546 ef->progtab[pb].addr = vnet_data; in link_elf_link_preload()
548 } else if ((ef->progtab[pb].name != NULL && in link_elf_link_preload()
549 strcmp(ef->progtab[pb].name, ".ctors") == 0) || in link_elf_link_preload()
556 lf->ctors_addr = ef->progtab[pb].addr; in link_elf_link_preload()
559 } else if ((ef->progtab[pb].name != NULL && in link_elf_link_preload()
560 strcmp(ef->progtab[pb].name, ".dtors") == 0) || in link_elf_link_preload()
567 lf->dtors_addr = ef->progtab[pb].addr; in link_elf_link_preload()
573 for (j = 0; j < ef->ddbsymcnt; j++) { in link_elf_link_preload()
574 es = &ef->ddbsymtab[j]; in link_elf_link_preload()
577 es->st_value += (Elf_Addr)ef->progtab[pb].addr; in link_elf_link_preload()
584 ef->reltab[rl].rel = (Elf_Rel *)shdr[i].sh_addr; in link_elf_link_preload()
585 ef->reltab[rl].nrel = shdr[i].sh_size / sizeof(Elf_Rel); in link_elf_link_preload()
586 ef->reltab[rl].sec = shdr[i].sh_info; in link_elf_link_preload()
592 ef->relatab[ra].rela = (Elf_Rela *)shdr[i].sh_addr; in link_elf_link_preload()
593 ef->relatab[ra].nrela = in link_elf_link_preload()
595 ef->relatab[ra].sec = shdr[i].sh_info; in link_elf_link_preload()
600 if (pb != ef->nprogtab) { in link_elf_link_preload()
605 if (rl != ef->nreltab) { in link_elf_link_preload()
610 if (ra != ef->nrelatab) { in link_elf_link_preload()
621 link_elf_protect_range(ef, (vm_offset_t)ef->address, in link_elf_link_preload()
622 round_page((vm_offset_t)ef->address + ef->lf.size), VM_PROT_ALL); in link_elf_link_preload()
656 elf_file_t ef; in link_elf_link_preload_finish() local
659 ef = (elf_file_t)lf; in link_elf_link_preload_finish()
660 error = relocate_file(ef); in link_elf_link_preload_finish()
677 link_elf_protect(ef); in link_elf_link_preload_finish()
698 elf_file_t ef; in link_elf_load_file() local
776 ef = (elf_file_t) lf; in link_elf_load_file()
777 ef->nprogtab = 0; in link_elf_load_file()
778 ef->e_shdr = 0; in link_elf_load_file()
779 ef->nreltab = 0; in link_elf_load_file()
780 ef->nrelatab = 0; in link_elf_load_file()
790 ef->e_shdr = shdr; in link_elf_load_file()
818 ef->nprogtab++; in link_elf_load_file()
832 ef->nreltab++; in link_elf_load_file()
837 ef->nrelatab++; in link_elf_load_file()
843 if (ef->nprogtab == 0) { in link_elf_load_file()
863 if (ef->nprogtab != 0) in link_elf_load_file()
864 ef->progtab = malloc(ef->nprogtab * sizeof(*ef->progtab), in link_elf_load_file()
866 if (ef->nreltab != 0) in link_elf_load_file()
867 ef->reltab = malloc(ef->nreltab * sizeof(*ef->reltab), in link_elf_load_file()
869 if (ef->nrelatab != 0) in link_elf_load_file()
870 ef->relatab = malloc(ef->nrelatab * sizeof(*ef->relatab), in link_elf_load_file()
879 ef->ddbsymcnt = shdr[symtabindex].sh_size / sizeof(Elf_Sym); in link_elf_load_file()
880 ef->ddbsymtab = malloc(shdr[symtabindex].sh_size, M_LINKER, M_WAITOK); in link_elf_load_file()
881 error = vn_rdwr(UIO_READ, nd->ni_vp, (void *)ef->ddbsymtab, in link_elf_load_file()
893 ef->ddbstrcnt = shdr[symstrindex].sh_size; in link_elf_load_file()
894 ef->ddbstrtab = malloc(shdr[symstrindex].sh_size, M_LINKER, M_WAITOK); in link_elf_load_file()
895 error = vn_rdwr(UIO_READ, nd->ni_vp, ef->ddbstrtab, in link_elf_load_file()
911 ef->shstrcnt = shdr[shstrindex].sh_size; in link_elf_load_file()
912 ef->shstrtab = malloc(shdr[shstrindex].sh_size, M_LINKER, in link_elf_load_file()
914 error = vn_rdwr(UIO_READ, nd->ni_vp, ef->shstrtab, in link_elf_load_file()
954 ef->object = vm_pager_allocate(OBJT_PHYS, NULL, round_page(mapsize), in link_elf_load_file()
956 if (ef->object == NULL) { in link_elf_load_file()
961 vm_object_color(ef->object, 0); in link_elf_load_file()
976 error = vm_map_find(kernel_map, ef->object, 0, &mapbase, in link_elf_load_file()
980 vm_object_deallocate(ef->object); in link_elf_load_file()
981 ef->object = NULL; in link_elf_load_file()
996 lf->address = ef->address = (caddr_t)mapbase; in link_elf_load_file()
1023 if (ef->shstrtab != NULL && shdr[i].sh_name != 0) { in link_elf_load_file()
1024 ef->progtab[pb].name = in link_elf_load_file()
1025 ef->shstrtab + shdr[i].sh_name; in link_elf_load_file()
1026 if (!strcmp(ef->progtab[pb].name, ".ctors") || in link_elf_load_file()
1038 } else if (!strcmp(ef->progtab[pb].name, in link_elf_load_file()
1053 ef->progtab[pb].name = "<<PROGBITS>>"; in link_elf_load_file()
1056 ef->progtab[pb].name = "<<UNWIND>>"; in link_elf_load_file()
1059 ef->progtab[pb].name = "<<NOBITS>>"; in link_elf_load_file()
1060 if (ef->progtab[pb].name != NULL && in link_elf_load_file()
1061 !strcmp(ef->progtab[pb].name, DPCPU_SETNAME)) { in link_elf_load_file()
1062 ef->progtab[pb].addr = in link_elf_load_file()
1064 if (ef->progtab[pb].addr == NULL) { in link_elf_load_file()
1073 else if (ef->progtab[pb].name != NULL && in link_elf_load_file()
1074 !strcmp(ef->progtab[pb].name, VNET_SETNAME)) { in link_elf_load_file()
1075 ef->progtab[pb].addr = in link_elf_load_file()
1077 if (ef->progtab[pb].addr == NULL) { in link_elf_load_file()
1087 ef->progtab[pb].addr = in link_elf_load_file()
1089 if (ef->progtab[pb].addr == NULL) { in link_elf_load_file()
1093 ef->progtab[pb].size = shdr[i].sh_size; in link_elf_load_file()
1094 ef->progtab[pb].flags = shdr[i].sh_flags; in link_elf_load_file()
1095 ef->progtab[pb].sec = i; in link_elf_load_file()
1102 ef->progtab[pb].addr, in link_elf_load_file()
1113 if (ef->progtab[pb].addr != (void *)mapbase && in link_elf_load_file()
1114 !strcmp(ef->progtab[pb].name, DPCPU_SETNAME)) in link_elf_load_file()
1115 dpcpu_copy(ef->progtab[pb].addr, in link_elf_load_file()
1118 else if (ef->progtab[pb].addr != in link_elf_load_file()
1120 !strcmp(ef->progtab[pb].name, VNET_SETNAME)) in link_elf_load_file()
1121 vnet_data_copy(ef->progtab[pb].addr, in link_elf_load_file()
1125 bzero(ef->progtab[pb].addr, shdr[i].sh_size); in link_elf_load_file()
1128 for (j = 0; j < ef->ddbsymcnt; j++) { in link_elf_load_file()
1129 es = &ef->ddbsymtab[j]; in link_elf_load_file()
1132 es->st_value += (Elf_Addr)ef->progtab[pb].addr; in link_elf_load_file()
1140 ef->reltab[rl].rel = malloc(shdr[i].sh_size, M_LINKER, in link_elf_load_file()
1142 ef->reltab[rl].nrel = shdr[i].sh_size / sizeof(Elf_Rel); in link_elf_load_file()
1143 ef->reltab[rl].sec = shdr[i].sh_info; in link_elf_load_file()
1145 (void *)ef->reltab[rl].rel, in link_elf_load_file()
1160 ef->relatab[ra].rela = malloc(shdr[i].sh_size, M_LINKER, in link_elf_load_file()
1162 ef->relatab[ra].nrela = in link_elf_load_file()
1164 ef->relatab[ra].sec = shdr[i].sh_info; in link_elf_load_file()
1166 (void *)ef->relatab[ra].rela, in link_elf_load_file()
1180 if (pb != ef->nprogtab) { in link_elf_load_file()
1185 if (rl != ef->nreltab) { in link_elf_load_file()
1190 if (ra != ef->nrelatab) { in link_elf_load_file()
1195 if (mapbase != (vm_offset_t)ef->address + mapsize) { in link_elf_load_file()
1199 (u_long)mapbase, ef->address, (u_long)mapsize, in link_elf_load_file()
1200 (u_long)(vm_offset_t)ef->address + mapsize); in link_elf_load_file()
1218 error = relocate_file(ef); in link_elf_load_file()
1234 link_elf_protect(ef); in link_elf_load_file()
1252 elf_file_t ef = (elf_file_t) file; in link_elf_unload_file() local
1260 if (ef->progtab) { in link_elf_unload_file()
1261 for (i = 0; i < ef->nprogtab; i++) { in link_elf_unload_file()
1262 if (ef->progtab[i].size == 0) in link_elf_unload_file()
1264 if (ef->progtab[i].name == NULL) in link_elf_unload_file()
1266 if (!strcmp(ef->progtab[i].name, DPCPU_SETNAME)) in link_elf_unload_file()
1267 dpcpu_free(ef->progtab[i].addr, in link_elf_unload_file()
1268 ef->progtab[i].size); in link_elf_unload_file()
1270 else if (!strcmp(ef->progtab[i].name, VNET_SETNAME)) in link_elf_unload_file()
1271 vnet_data_free(ef->progtab[i].addr, in link_elf_unload_file()
1272 ef->progtab[i].size); in link_elf_unload_file()
1276 if (ef->preloaded) { in link_elf_unload_file()
1277 free(ef->reltab, M_LINKER); in link_elf_unload_file()
1278 free(ef->relatab, M_LINKER); in link_elf_unload_file()
1279 free(ef->progtab, M_LINKER); in link_elf_unload_file()
1280 free(ef->ctftab, M_LINKER); in link_elf_unload_file()
1281 free(ef->ctfoff, M_LINKER); in link_elf_unload_file()
1282 free(ef->typoff, M_LINKER); in link_elf_unload_file()
1288 for (i = 0; i < ef->nreltab; i++) in link_elf_unload_file()
1289 free(ef->reltab[i].rel, M_LINKER); in link_elf_unload_file()
1290 for (i = 0; i < ef->nrelatab; i++) in link_elf_unload_file()
1291 free(ef->relatab[i].rela, M_LINKER); in link_elf_unload_file()
1292 free(ef->reltab, M_LINKER); in link_elf_unload_file()
1293 free(ef->relatab, M_LINKER); in link_elf_unload_file()
1294 free(ef->progtab, M_LINKER); in link_elf_unload_file()
1296 if (ef->object != NULL) in link_elf_unload_file()
1297 vm_map_remove(kernel_map, (vm_offset_t)ef->address, in link_elf_unload_file()
1298 (vm_offset_t)ef->address + ptoa(ef->object->size)); in link_elf_unload_file()
1299 free(ef->e_shdr, M_LINKER); in link_elf_unload_file()
1300 free(ef->ddbsymtab, M_LINKER); in link_elf_unload_file()
1301 free(ef->ddbstrtab, M_LINKER); in link_elf_unload_file()
1302 free(ef->shstrtab, M_LINKER); in link_elf_unload_file()
1303 free(ef->ctftab, M_LINKER); in link_elf_unload_file()
1304 free(ef->ctfoff, M_LINKER); in link_elf_unload_file()
1305 free(ef->typoff, M_LINKER); in link_elf_unload_file()
1309 symbol_name(elf_file_t ef, Elf_Size r_info) in symbol_name() argument
1314 ref = ef->ddbsymtab + ELF_R_SYM(r_info); in symbol_name()
1315 return ef->ddbstrtab + ref->st_name; in symbol_name()
1321 findbase(elf_file_t ef, int sec) in findbase() argument
1326 for (i = 0; i < ef->nprogtab; i++) { in findbase()
1327 if (sec == ef->progtab[i].sec) { in findbase()
1328 base = (Elf_Addr)ef->progtab[i].addr; in findbase()
1336 relocate_file1(elf_file_t ef, bool ifuncs) in relocate_file1() argument
1349 for (i = 0; i < ef->nreltab; i++) { in relocate_file1()
1350 rel = ef->reltab[i].rel; in relocate_file1()
1352 link_elf_error(ef->lf.filename, "lost a reltab!"); in relocate_file1()
1355 rellim = rel + ef->reltab[i].nrel; in relocate_file1()
1356 base = findbase(ef, ef->reltab[i].sec); in relocate_file1()
1358 link_elf_error(ef->lf.filename, "lost base for reltab"); in relocate_file1()
1363 if (symidx >= ef->ddbsymcnt) in relocate_file1()
1365 sym = ef->ddbsymtab + symidx; in relocate_file1()
1372 if (elf_reloc(&ef->lf, base, rel, ELF_RELOC_REL, in relocate_file1()
1374 symname = symbol_name(ef, rel->r_info); in relocate_file1()
1383 for (i = 0; i < ef->nrelatab; i++) { in relocate_file1()
1384 rela = ef->relatab[i].rela; in relocate_file1()
1386 link_elf_error(ef->lf.filename, "lost a relatab!"); in relocate_file1()
1389 relalim = rela + ef->relatab[i].nrela; in relocate_file1()
1390 base = findbase(ef, ef->relatab[i].sec); in relocate_file1()
1392 link_elf_error(ef->lf.filename, in relocate_file1()
1398 if (symidx >= ef->ddbsymcnt) in relocate_file1()
1400 sym = ef->ddbsymtab + symidx; in relocate_file1()
1407 if (elf_reloc(&ef->lf, base, rela, ELF_RELOC_RELA, in relocate_file1()
1409 symname = symbol_name(ef, rela->r_info); in relocate_file1()
1422 elf_obj_cleanup_globals_cache(ef); in relocate_file1()
1428 relocate_file(elf_file_t ef) in relocate_file() argument
1432 error = relocate_file1(ef, false); in relocate_file()
1434 error = relocate_file1(ef, true); in relocate_file()
1442 elf_file_t ef = (elf_file_t)lf; in link_elf_lookup_symbol1() local
1447 for (i = 0, symp = ef->ddbsymtab; i < ef->ddbsymcnt; i++, symp++) { in link_elf_lookup_symbol1()
1448 strp = ef->ddbstrtab + symp->st_name; in link_elf_lookup_symbol1()
1479 elf_file_t ef; in link_elf_symbol_values1() local
1483 ef = (elf_file_t) lf; in link_elf_symbol_values1()
1486 if (es >= ef->ddbsymtab && es < (ef->ddbsymtab + ef->ddbsymcnt)) { in link_elf_symbol_values1()
1489 symval->name = ef->ddbstrtab + es->st_name; in link_elf_symbol_values1()
1519 elf_file_t ef = (elf_file_t)lf; in link_elf_search_symbol() local
1527 for (i = 0, es = ef->ddbsymtab; i < ef->ddbsymcnt; i++, es++) { in link_elf_search_symbol()
1558 elf_file_t ef = (elf_file_t)lf; in link_elf_lookup_set() local
1563 for (i = 0; i < ef->nprogtab; i++) { in link_elf_lookup_set()
1564 if ((strncmp(ef->progtab[i].name, "set_", 4) == 0) && in link_elf_lookup_set()
1565 strcmp(ef->progtab[i].name + 4, name) == 0) { in link_elf_lookup_set()
1566 start = (void **)ef->progtab[i].addr; in link_elf_lookup_set()
1567 stop = (void **)((char *)ef->progtab[i].addr + in link_elf_lookup_set()
1568 ef->progtab[i].size); in link_elf_lookup_set()
1586 elf_file_t ef = (elf_file_t)file; in link_elf_each_function_name() local
1591 for (i = 0, symp = ef->ddbsymtab; i < ef->ddbsymcnt; i++, symp++) { in link_elf_each_function_name()
1595 error = callback(ef->ddbstrtab + symp->st_name, opaque); in link_elf_each_function_name()
1608 elf_file_t ef = (elf_file_t)file; in link_elf_each_function_nameval() local
1613 for (i = 0, symp = ef->ddbsymtab; i < ef->ddbsymcnt; i++, symp++) { in link_elf_each_function_nameval()
1629 elf_obj_cleanup_globals_cache(elf_file_t ef) in elf_obj_cleanup_globals_cache() argument
1634 for (i = 0; i < ef->ddbsymcnt; i++) { in elf_obj_cleanup_globals_cache()
1635 sym = ef->ddbsymtab + i; in elf_obj_cleanup_globals_cache()
1653 elf_file_t ef = (elf_file_t)lf; in elf_obj_lookup() local
1659 if (symidx >= ef->ddbsymcnt) { in elf_obj_lookup()
1664 sym = ef->ddbsymtab + symidx; in elf_obj_lookup()
1685 symbol = ef->ddbstrtab + sym->st_name; in elf_obj_lookup()
1722 link_elf_fix_link_set(elf_file_t ef) in link_elf_fix_link_set() argument
1734 symidx < ef->ddbsymcnt; symidx++) { in link_elf_fix_link_set()
1735 sym = ef->ddbsymtab + symidx; in link_elf_fix_link_set()
1739 sym_name = ef->ddbstrtab + sym->st_name; in link_elf_fix_link_set()
1751 for (i = 0; i < ef->nprogtab; i++) { in link_elf_fix_link_set()
1752 if (strcmp(ef->progtab[i].name, linkset_name) == 0) { in link_elf_fix_link_set()
1753 startp = (Elf_Addr)ef->progtab[i].addr; in link_elf_fix_link_set()
1754 stopp = (Elf_Addr)(startp + ef->progtab[i].size); in link_elf_fix_link_set()
1758 if (i == ef->nprogtab) in link_elf_fix_link_set()
1769 elf_file_t ef = (elf_file_t)lf; in link_elf_reloc_local() local
1779 link_elf_fix_link_set(ef); in link_elf_reloc_local()
1782 for (i = 0; i < ef->nreltab; i++) { in link_elf_reloc_local()
1783 rel = ef->reltab[i].rel; in link_elf_reloc_local()
1785 link_elf_error(ef->lf.filename, "lost a reltab"); in link_elf_reloc_local()
1788 rellim = rel + ef->reltab[i].nrel; in link_elf_reloc_local()
1789 base = findbase(ef, ef->reltab[i].sec); in link_elf_reloc_local()
1791 link_elf_error(ef->lf.filename, "lost base for reltab"); in link_elf_reloc_local()
1796 if (symidx >= ef->ddbsymcnt) in link_elf_reloc_local()
1798 sym = ef->ddbsymtab + symidx; in link_elf_reloc_local()
1812 for (i = 0; i < ef->nrelatab; i++) { in link_elf_reloc_local()
1813 rela = ef->relatab[i].rela; in link_elf_reloc_local()
1815 link_elf_error(ef->lf.filename, "lost a relatab!"); in link_elf_reloc_local()
1818 relalim = rela + ef->relatab[i].nrela; in link_elf_reloc_local()
1819 base = findbase(ef, ef->relatab[i].sec); in link_elf_reloc_local()
1821 link_elf_error(ef->lf.filename, "lost base for reltab"); in link_elf_reloc_local()
1826 if (symidx >= ef->ddbsymcnt) in link_elf_reloc_local()
1828 sym = ef->ddbsymtab + symidx; in link_elf_reloc_local()
1846 elf_file_t ef = (elf_file_t)lf; in link_elf_symtab_get() local
1848 *symtab = ef->ddbsymtab; in link_elf_symtab_get()
1851 return (ef->ddbsymcnt); in link_elf_symtab_get()
1857 elf_file_t ef = (elf_file_t)lf; in link_elf_strtab_get() local
1859 *strtab = ef->ddbstrtab; in link_elf_strtab_get()
1862 return (ef->ddbstrcnt); in link_elf_strtab_get()