Lines Matching defs:lf
92 struct linker_file lf; /* Common fields */
134 static int link_elf_lookup_debug_symbol_ctf(linker_file_t lf,
158 static int elf_obj_lookup(linker_file_t lf, Elf_Size symidx, int deps,
226 end <= round_page((vm_offset_t)ef->address + ef->lf.size),
339 round_page((vm_offset_t)ef->address + ef->lf.size), gapprot);
352 linker_file_t lf;
374 lf = linker_make_file(filename, &link_elf_class);
375 if (lf == NULL)
378 ef = (elf_file_t)lf;
381 lf->address = *(caddr_t *)baseptr;
382 lf->size = *(size_t *)sizeptr;
556 if (lf->ctors_addr != 0) {
561 lf->ctors_addr = ef->progtab[pb].addr;
562 lf->ctors_size = shdr[i].sh_size;
567 if (lf->dtors_addr != 0) {
572 lf->dtors_addr = ef->progtab[pb].addr;
573 lf->dtors_size = shdr[i].sh_size;
627 round_page((vm_offset_t)ef->address + ef->lf.size), VM_PROT_ALL);
630 error = link_elf_reloc_local(lf, false);
633 *result = lf;
638 linker_file_unload(lf, LINKER_UNLOAD_FORCE);
659 link_elf_invoke_ctors(linker_file_t lf)
661 KASSERT(lf->ctors_invoked == LF_NONE,
663 __func__, lf->filename, lf->ctors_invoked));
665 link_elf_invoke_cbs(lf->ctors_addr, lf->ctors_size);
666 lf->ctors_invoked = LF_CTORS;
670 link_elf_invoke_dtors(linker_file_t lf)
672 KASSERT(lf->ctors_invoked != LF_DTORS,
674 __func__, lf->filename, lf->ctors_invoked));
676 if (lf->ctors_invoked == LF_CTORS) {
677 link_elf_invoke_cbs(lf->dtors_addr, lf->dtors_size);
678 lf->ctors_invoked = LF_DTORS;
683 link_elf_link_preload_finish(linker_file_t lf)
688 ef = (elf_file_t)lf;
694 error = elf_cpu_load_file(lf);
700 error = link_elf_reloc_local(lf, true);
708 link_elf_invoke_ctors(lf);
728 linker_file_t lf;
737 lf = NULL;
800 lf = linker_make_file(filename, &link_elf_class);
801 if (!lf) {
805 ef = (elf_file_t) lf;
1025 lf->address = ef->address = (caddr_t)mapbase;
1026 lf->size = mapsize;
1057 if (lf->ctors_addr != 0) {
1062 lf->ctors_addr =
1064 lf->ctors_size =
1070 if (lf->dtors_addr != 0) {
1075 lf->dtors_addr =
1077 lf->dtors_size =
1234 error = link_elf_reloc_local(lf, false);
1240 error = linker_load_dependencies(lf);
1251 error = elf_cpu_load_file(lf);
1257 error = link_elf_reloc_local(lf, true);
1263 link_elf_invoke_ctors(lf);
1264 *result = lf;
1270 if (error && lf)
1271 linker_file_unload(lf, LINKER_UNLOAD_FORCE);
1380 link_elf_error(ef->lf.filename, "lost a reltab!");
1386 link_elf_error(ef->lf.filename, "lost base for reltab");
1400 if (elf_reloc(&ef->lf, base, rel, ELF_RELOC_REL,
1414 link_elf_error(ef->lf.filename, "lost a relatab!");
1420 link_elf_error(ef->lf.filename,
1435 if (elf_reloc(&ef->lf, base, rela, ELF_RELOC_RELA,
1467 link_elf_lookup_symbol1(linker_file_t lf, const char *name, c_linker_sym_t *sym,
1470 elf_file_t ef = (elf_file_t)lf;
1490 link_elf_lookup_symbol(linker_file_t lf, const char *name, c_linker_sym_t *sym)
1492 return (link_elf_lookup_symbol1(lf, name, sym,
1497 link_elf_lookup_debug_symbol(linker_file_t lf, const char *name,
1500 return (link_elf_lookup_symbol1(lf, name, sym, true));
1504 link_elf_lookup_debug_symbol_ctf(linker_file_t lf, const char *name,
1507 if (link_elf_lookup_debug_symbol(lf, name, sym))
1510 return (link_elf_ctf_get_ddb(lf, lc));
1514 link_elf_symbol_values1(linker_file_t lf, c_linker_sym_t sym,
1521 ef = (elf_file_t) lf;
1539 link_elf_symbol_values(linker_file_t lf, c_linker_sym_t sym,
1542 return (link_elf_symbol_values1(lf, sym, symval,
1547 link_elf_debug_symbol_values(linker_file_t lf, c_linker_sym_t sym,
1550 return (link_elf_symbol_values1(lf, sym, symval, true));
1554 link_elf_search_symbol(linker_file_t lf, caddr_t value,
1557 elf_file_t ef = (elf_file_t)lf;
1593 link_elf_lookup_set(linker_file_t lf, const char *name,
1596 elf_file_t ef = (elf_file_t)lf;
1689 elf_obj_lookup(linker_file_t lf, Elf_Size symidx, int deps, Elf_Addr *res)
1691 elf_file_t ef = (elf_file_t)lf;
1730 res1 = (Elf_Addr)linker_file_lookup_symbol(lf, symbol, deps);
1805 link_elf_reloc_local(linker_file_t lf, bool ifuncs)
1807 elf_file_t ef = (elf_file_t)lf;
1823 link_elf_error(ef->lf.filename, "lost a reltab");
1829 link_elf_error(ef->lf.filename, "lost base for reltab");
1843 if (elf_reloc_local(lf, base, rel, ELF_RELOC_REL,
1853 link_elf_error(ef->lf.filename, "lost a relatab!");
1859 link_elf_error(ef->lf.filename, "lost base for reltab");
1873 if (elf_reloc_local(lf, base, rela, ELF_RELOC_RELA,
1882 link_elf_symtab_get(linker_file_t lf, const Elf_Sym **symtab)
1884 elf_file_t ef = (elf_file_t)lf;
1893 link_elf_strtab_get(linker_file_t lf, caddr_t *strtab)
1895 elf_file_t ef = (elf_file_t)lf;
1905 link_elf_propagate_vnets(linker_file_t lf)
1907 elf_file_t ef = (elf_file_t) lf;