Lines Matching refs:lf
95 struct linker_file lf; /* Common fields */ member
156 static int elf_obj_lookup(linker_file_t lf, Elf_Size symidx, int deps,
219 end <= round_page((vm_offset_t)ef->address + ef->lf.size), in link_elf_protect_range()
332 round_page((vm_offset_t)ef->address + ef->lf.size), gapprot); in link_elf_protect()
345 linker_file_t lf; in link_elf_link_preload() local
370 lf = linker_make_file(filename, &link_elf_class); in link_elf_link_preload()
371 if (lf == NULL) in link_elf_link_preload()
374 ef = (elf_file_t)lf; in link_elf_link_preload()
377 lf->address = *(caddr_t *)baseptr; in link_elf_link_preload()
378 lf->size = *(size_t *)sizeptr; in link_elf_link_preload()
551 if (lf->ctors_addr != 0) { in link_elf_link_preload()
556 lf->ctors_addr = ef->progtab[pb].addr; in link_elf_link_preload()
557 lf->ctors_size = shdr[i].sh_size; in link_elf_link_preload()
562 if (lf->dtors_addr != 0) { in link_elf_link_preload()
567 lf->dtors_addr = ef->progtab[pb].addr; in link_elf_link_preload()
568 lf->dtors_size = shdr[i].sh_size; in link_elf_link_preload()
622 round_page((vm_offset_t)ef->address + ef->lf.size), VM_PROT_ALL); in link_elf_link_preload()
625 error = link_elf_reloc_local(lf, false); in link_elf_link_preload()
628 *result = lf; in link_elf_link_preload()
633 linker_file_unload(lf, LINKER_UNLOAD_FORCE); in link_elf_link_preload()
654 link_elf_link_preload_finish(linker_file_t lf) in link_elf_link_preload_finish() argument
659 ef = (elf_file_t)lf; in link_elf_link_preload_finish()
665 error = elf_cpu_load_file(lf); in link_elf_link_preload_finish()
671 error = link_elf_reloc_local(lf, true); in link_elf_link_preload_finish()
679 link_elf_invoke_cbs(lf->ctors_addr, lf->ctors_size); in link_elf_link_preload_finish()
699 linker_file_t lf; in link_elf_load_file() local
708 lf = NULL; in link_elf_load_file()
771 lf = linker_make_file(filename, &link_elf_class); in link_elf_load_file()
772 if (!lf) { in link_elf_load_file()
776 ef = (elf_file_t) lf; in link_elf_load_file()
996 lf->address = ef->address = (caddr_t)mapbase; in link_elf_load_file()
997 lf->size = mapsize; in link_elf_load_file()
1028 if (lf->ctors_addr != 0) { in link_elf_load_file()
1033 lf->ctors_addr = in link_elf_load_file()
1035 lf->ctors_size = in link_elf_load_file()
1041 if (lf->dtors_addr != 0) { in link_elf_load_file()
1046 lf->dtors_addr = in link_elf_load_file()
1048 lf->dtors_size = in link_elf_load_file()
1206 error = link_elf_reloc_local(lf, false); in link_elf_load_file()
1212 error = linker_load_dependencies(lf); in link_elf_load_file()
1223 error = elf_cpu_load_file(lf); in link_elf_load_file()
1229 error = link_elf_reloc_local(lf, true); in link_elf_load_file()
1235 link_elf_invoke_cbs(lf->ctors_addr, lf->ctors_size); in link_elf_load_file()
1236 *result = lf; in link_elf_load_file()
1242 if (error && lf) in link_elf_load_file()
1243 linker_file_unload(lf, LINKER_UNLOAD_FORCE); in link_elf_load_file()
1352 link_elf_error(ef->lf.filename, "lost a reltab!"); in relocate_file1()
1358 link_elf_error(ef->lf.filename, "lost base for reltab"); in relocate_file1()
1372 if (elf_reloc(&ef->lf, base, rel, ELF_RELOC_REL, in relocate_file1()
1386 link_elf_error(ef->lf.filename, "lost a relatab!"); in relocate_file1()
1392 link_elf_error(ef->lf.filename, in relocate_file1()
1407 if (elf_reloc(&ef->lf, base, rela, ELF_RELOC_RELA, in relocate_file1()
1439 link_elf_lookup_symbol1(linker_file_t lf, const char *name, c_linker_sym_t *sym, in link_elf_lookup_symbol1() argument
1442 elf_file_t ef = (elf_file_t)lf; in link_elf_lookup_symbol1()
1462 link_elf_lookup_symbol(linker_file_t lf, const char *name, c_linker_sym_t *sym) in link_elf_lookup_symbol() argument
1464 return (link_elf_lookup_symbol1(lf, name, sym, in link_elf_lookup_symbol()
1469 link_elf_lookup_debug_symbol(linker_file_t lf, const char *name, in link_elf_lookup_debug_symbol() argument
1472 return (link_elf_lookup_symbol1(lf, name, sym, true)); in link_elf_lookup_debug_symbol()
1476 link_elf_symbol_values1(linker_file_t lf, c_linker_sym_t sym, in link_elf_symbol_values1() argument
1483 ef = (elf_file_t) lf; in link_elf_symbol_values1()
1501 link_elf_symbol_values(linker_file_t lf, c_linker_sym_t sym, in link_elf_symbol_values() argument
1504 return (link_elf_symbol_values1(lf, sym, symval, in link_elf_symbol_values()
1509 link_elf_debug_symbol_values(linker_file_t lf, c_linker_sym_t sym, in link_elf_debug_symbol_values() argument
1512 return (link_elf_symbol_values1(lf, sym, symval, true)); in link_elf_debug_symbol_values()
1516 link_elf_search_symbol(linker_file_t lf, caddr_t value, in link_elf_search_symbol() argument
1519 elf_file_t ef = (elf_file_t)lf; in link_elf_search_symbol()
1555 link_elf_lookup_set(linker_file_t lf, const char *name, in link_elf_lookup_set() argument
1558 elf_file_t ef = (elf_file_t)lf; in link_elf_lookup_set()
1651 elf_obj_lookup(linker_file_t lf, Elf_Size symidx, int deps, Elf_Addr *res) in elf_obj_lookup() argument
1653 elf_file_t ef = (elf_file_t)lf; in elf_obj_lookup()
1692 res1 = (Elf_Addr)linker_file_lookup_symbol(lf, symbol, deps); in elf_obj_lookup()
1767 link_elf_reloc_local(linker_file_t lf, bool ifuncs) in link_elf_reloc_local() argument
1769 elf_file_t ef = (elf_file_t)lf; in link_elf_reloc_local()
1785 link_elf_error(ef->lf.filename, "lost a reltab"); in link_elf_reloc_local()
1791 link_elf_error(ef->lf.filename, "lost base for reltab"); in link_elf_reloc_local()
1805 if (elf_reloc_local(lf, base, rel, ELF_RELOC_REL, in link_elf_reloc_local()
1815 link_elf_error(ef->lf.filename, "lost a relatab!"); in link_elf_reloc_local()
1821 link_elf_error(ef->lf.filename, "lost base for reltab"); in link_elf_reloc_local()
1835 if (elf_reloc_local(lf, base, rela, ELF_RELOC_RELA, in link_elf_reloc_local()
1844 link_elf_symtab_get(linker_file_t lf, const Elf_Sym **symtab) in link_elf_symtab_get() argument
1846 elf_file_t ef = (elf_file_t)lf; in link_elf_symtab_get()
1855 link_elf_strtab_get(linker_file_t lf, caddr_t *strtab) in link_elf_strtab_get() argument
1857 elf_file_t ef = (elf_file_t)lf; in link_elf_strtab_get()