Lines Matching refs:lf

93 	struct linker_file lf;		/* Common fields */  member
154 static int elf_obj_lookup(linker_file_t lf, Elf_Size symidx, int deps,
217 end <= round_page((vm_offset_t)ef->address + ef->lf.size), in link_elf_protect_range()
330 round_page((vm_offset_t)ef->address + ef->lf.size), gapprot); in link_elf_protect()
343 linker_file_t lf; in link_elf_link_preload() local
368 lf = linker_make_file(filename, &link_elf_class); in link_elf_link_preload()
369 if (lf == NULL) in link_elf_link_preload()
372 ef = (elf_file_t)lf; in link_elf_link_preload()
375 lf->address = *(caddr_t *)baseptr; in link_elf_link_preload()
376 lf->size = *(size_t *)sizeptr; in link_elf_link_preload()
549 if (lf->ctors_addr != 0) { in link_elf_link_preload()
554 lf->ctors_addr = ef->progtab[pb].addr; in link_elf_link_preload()
555 lf->ctors_size = shdr[i].sh_size; in link_elf_link_preload()
560 if (lf->dtors_addr != 0) { in link_elf_link_preload()
565 lf->dtors_addr = ef->progtab[pb].addr; in link_elf_link_preload()
566 lf->dtors_size = shdr[i].sh_size; in link_elf_link_preload()
620 round_page((vm_offset_t)ef->address + ef->lf.size), VM_PROT_ALL); in link_elf_link_preload()
623 error = link_elf_reloc_local(lf, false); in link_elf_link_preload()
626 *result = lf; in link_elf_link_preload()
631 linker_file_unload(lf, LINKER_UNLOAD_FORCE); in link_elf_link_preload()
652 link_elf_invoke_ctors(linker_file_t lf) in link_elf_invoke_ctors() argument
654 KASSERT(lf->ctors_invoked == LF_NONE, in link_elf_invoke_ctors()
656 __func__, lf->filename, lf->ctors_invoked)); in link_elf_invoke_ctors()
658 link_elf_invoke_cbs(lf->ctors_addr, lf->ctors_size); in link_elf_invoke_ctors()
659 lf->ctors_invoked = LF_CTORS; in link_elf_invoke_ctors()
663 link_elf_invoke_dtors(linker_file_t lf) in link_elf_invoke_dtors() argument
665 KASSERT(lf->ctors_invoked != LF_DTORS, in link_elf_invoke_dtors()
667 __func__, lf->filename, lf->ctors_invoked)); in link_elf_invoke_dtors()
669 if (lf->ctors_invoked == LF_CTORS) { in link_elf_invoke_dtors()
670 link_elf_invoke_cbs(lf->dtors_addr, lf->dtors_size); in link_elf_invoke_dtors()
671 lf->ctors_invoked = LF_DTORS; in link_elf_invoke_dtors()
676 link_elf_link_preload_finish(linker_file_t lf) in link_elf_link_preload_finish() argument
681 ef = (elf_file_t)lf; in link_elf_link_preload_finish()
687 error = elf_cpu_load_file(lf); in link_elf_link_preload_finish()
693 error = link_elf_reloc_local(lf, true); in link_elf_link_preload_finish()
701 link_elf_invoke_ctors(lf); in link_elf_link_preload_finish()
721 linker_file_t lf; in link_elf_load_file() local
730 lf = NULL; in link_elf_load_file()
793 lf = linker_make_file(filename, &link_elf_class); in link_elf_load_file()
794 if (!lf) { in link_elf_load_file()
798 ef = (elf_file_t) lf; in link_elf_load_file()
1018 lf->address = ef->address = (caddr_t)mapbase; in link_elf_load_file()
1019 lf->size = mapsize; in link_elf_load_file()
1050 if (lf->ctors_addr != 0) { in link_elf_load_file()
1055 lf->ctors_addr = in link_elf_load_file()
1057 lf->ctors_size = in link_elf_load_file()
1063 if (lf->dtors_addr != 0) { in link_elf_load_file()
1068 lf->dtors_addr = in link_elf_load_file()
1070 lf->dtors_size = in link_elf_load_file()
1228 error = link_elf_reloc_local(lf, false); in link_elf_load_file()
1234 error = linker_load_dependencies(lf); in link_elf_load_file()
1245 error = elf_cpu_load_file(lf); in link_elf_load_file()
1251 error = link_elf_reloc_local(lf, true); in link_elf_load_file()
1257 link_elf_invoke_ctors(lf); in link_elf_load_file()
1258 *result = lf; in link_elf_load_file()
1264 if (error && lf) in link_elf_load_file()
1265 linker_file_unload(lf, LINKER_UNLOAD_FORCE); in link_elf_load_file()
1374 link_elf_error(ef->lf.filename, "lost a reltab!"); in relocate_file1()
1380 link_elf_error(ef->lf.filename, "lost base for reltab"); in relocate_file1()
1394 if (elf_reloc(&ef->lf, base, rel, ELF_RELOC_REL, in relocate_file1()
1408 link_elf_error(ef->lf.filename, "lost a relatab!"); in relocate_file1()
1414 link_elf_error(ef->lf.filename, in relocate_file1()
1429 if (elf_reloc(&ef->lf, base, rela, ELF_RELOC_RELA, in relocate_file1()
1461 link_elf_lookup_symbol1(linker_file_t lf, const char *name, c_linker_sym_t *sym, in link_elf_lookup_symbol1() argument
1464 elf_file_t ef = (elf_file_t)lf; in link_elf_lookup_symbol1()
1484 link_elf_lookup_symbol(linker_file_t lf, const char *name, c_linker_sym_t *sym) in link_elf_lookup_symbol() argument
1486 return (link_elf_lookup_symbol1(lf, name, sym, in link_elf_lookup_symbol()
1491 link_elf_lookup_debug_symbol(linker_file_t lf, const char *name, in link_elf_lookup_debug_symbol() argument
1494 return (link_elf_lookup_symbol1(lf, name, sym, true)); in link_elf_lookup_debug_symbol()
1498 link_elf_symbol_values1(linker_file_t lf, c_linker_sym_t sym, in link_elf_symbol_values1() argument
1505 ef = (elf_file_t) lf; in link_elf_symbol_values1()
1523 link_elf_symbol_values(linker_file_t lf, c_linker_sym_t sym, in link_elf_symbol_values() argument
1526 return (link_elf_symbol_values1(lf, sym, symval, in link_elf_symbol_values()
1531 link_elf_debug_symbol_values(linker_file_t lf, c_linker_sym_t sym, in link_elf_debug_symbol_values() argument
1534 return (link_elf_symbol_values1(lf, sym, symval, true)); in link_elf_debug_symbol_values()
1538 link_elf_search_symbol(linker_file_t lf, caddr_t value, in link_elf_search_symbol() argument
1541 elf_file_t ef = (elf_file_t)lf; in link_elf_search_symbol()
1577 link_elf_lookup_set(linker_file_t lf, const char *name, in link_elf_lookup_set() argument
1580 elf_file_t ef = (elf_file_t)lf; in link_elf_lookup_set()
1673 elf_obj_lookup(linker_file_t lf, Elf_Size symidx, int deps, Elf_Addr *res) in elf_obj_lookup() argument
1675 elf_file_t ef = (elf_file_t)lf; in elf_obj_lookup()
1714 res1 = (Elf_Addr)linker_file_lookup_symbol(lf, symbol, deps); in elf_obj_lookup()
1789 link_elf_reloc_local(linker_file_t lf, bool ifuncs) in link_elf_reloc_local() argument
1791 elf_file_t ef = (elf_file_t)lf; in link_elf_reloc_local()
1807 link_elf_error(ef->lf.filename, "lost a reltab"); in link_elf_reloc_local()
1813 link_elf_error(ef->lf.filename, "lost base for reltab"); in link_elf_reloc_local()
1827 if (elf_reloc_local(lf, base, rel, ELF_RELOC_REL, in link_elf_reloc_local()
1837 link_elf_error(ef->lf.filename, "lost a relatab!"); in link_elf_reloc_local()
1843 link_elf_error(ef->lf.filename, "lost base for reltab"); in link_elf_reloc_local()
1857 if (elf_reloc_local(lf, base, rela, ELF_RELOC_RELA, in link_elf_reloc_local()
1866 link_elf_symtab_get(linker_file_t lf, const Elf_Sym **symtab) in link_elf_symtab_get() argument
1868 elf_file_t ef = (elf_file_t)lf; in link_elf_symtab_get()
1877 link_elf_strtab_get(linker_file_t lf, caddr_t *strtab) in link_elf_strtab_get() argument
1879 elf_file_t ef = (elf_file_t)lf; in link_elf_strtab_get()