Lines Matching refs:lf

78 	struct linker_file lf;		/* Common fields */  member
148 static int link_elf_lookup_debug_symbol_ctf(linker_file_t lf,
211 typedef int (*elf_reloc_fn)(linker_file_t lf, Elf_Addr relocbase,
377 link_elf_invoke_ctors(linker_file_t lf) in link_elf_invoke_ctors() argument
379 KASSERT(lf->ctors_invoked == LF_NONE, in link_elf_invoke_ctors()
381 __func__, lf->filename, lf->ctors_invoked)); in link_elf_invoke_ctors()
383 link_elf_invoke_cbs(lf->ctors_addr, lf->ctors_size); in link_elf_invoke_ctors()
384 lf->ctors_invoked = LF_CTORS; in link_elf_invoke_ctors()
392 link_elf_link_common_finish(linker_file_t lf) in link_elf_link_common_finish() argument
395 elf_file_t ef = (elf_file_t)lf; in link_elf_link_common_finish()
401 error = elf_cpu_load_file(lf); in link_elf_link_common_finish()
407 ef->gdb.l_addr = lf->address; in link_elf_link_common_finish()
408 newfilename = malloc(strlen(lf->filename) + 1, M_LINKER, M_WAITOK); in link_elf_link_common_finish()
409 strcpy(newfilename, lf->filename); in link_elf_link_common_finish()
417 link_elf_invoke_ctors(lf); in link_elf_link_common_finish()
682 error = link_elf_lookup_set(&ef->lf, "pcpu", (void ***)&ef->pcpu_start, in parse_dpcpu()
695 "linker script\n", ef->lf.pathname); in parse_dpcpu()
704 ef->lf.pathname, pad, LS_PADDING); in parse_dpcpu()
720 __func__, size, ef->lf.pathname); in parse_dpcpu()
743 error = link_elf_lookup_set(&ef->lf, "vnet", (void ***)&ef->vnet_start, in parse_vnet()
756 "linker script\n", ef->lf.pathname); in parse_vnet()
765 ef->lf.pathname, pad, LS_PADDING); in parse_vnet()
781 __func__, size, ef->lf.pathname); in parse_vnet()
838 link_elf_locate_exidx(linker_file_t lf, Elf_Shdr *shdr, int nhdr) in link_elf_locate_exidx() argument
844 lf->exidx_addr = shdr[i].sh_addr + lf->address; in link_elf_locate_exidx()
845 lf->exidx_size = shdr[i].sh_size; in link_elf_locate_exidx()
858 link_elf_locate_exidx_preload(struct linker_file *lf, caddr_t modptr) in link_elf_locate_exidx_preload() argument
869 link_elf_locate_exidx(lf, shdr, nhdr); in link_elf_locate_exidx_preload()
884 linker_file_t lf; in link_elf_link_preload() local
903 lf = linker_make_file(filename, &link_elf_class); in link_elf_link_preload()
904 if (lf == NULL) in link_elf_link_preload()
907 ef = (elf_file_t) lf; in link_elf_link_preload()
916 lf->address = ef->address; in link_elf_link_preload()
917 lf->size = *(size_t *)sizeptr; in link_elf_link_preload()
924 lf->ctors_addr = ef->address + *ctors_addrp; in link_elf_link_preload()
925 lf->ctors_size = *ctors_sizep; in link_elf_link_preload()
929 link_elf_locate_exidx_preload(lf, modptr); in link_elf_link_preload()
942 linker_file_unload(lf, LINKER_UNLOAD_FORCE); in link_elf_link_preload()
945 link_elf_reloc_local(lf); in link_elf_link_preload()
946 *result = lf; in link_elf_link_preload()
951 link_elf_link_preload_finish(linker_file_t lf) in link_elf_link_preload_finish() argument
956 ef = (elf_file_t) lf; in link_elf_link_preload_finish()
964 return (link_elf_link_common_finish(lf)); in link_elf_link_preload_finish()
989 linker_file_t lf; in link_elf_load_file() local
999 lf = NULL; in link_elf_load_file()
1128 lf = linker_make_file(filename, &link_elf_class); in link_elf_load_file()
1129 if (lf == NULL) { in link_elf_load_file()
1134 ef = (elf_file_t) lf; in link_elf_load_file()
1201 lf->address = ef->address; in link_elf_load_file()
1202 lf->size = mapsize; in link_elf_load_file()
1215 link_elf_reloc_local(lf); in link_elf_load_file()
1218 error = linker_load_dependencies(lf); in link_elf_load_file()
1291 lf->ctors_addr = mapbase + shdr[i].sh_addr - base_vaddr; in link_elf_load_file()
1292 lf->ctors_size = shdr[i].sh_size; in link_elf_load_file()
1324 link_elf_locate_exidx(lf, shdr, hdr->e_shnum); in link_elf_load_file()
1327 error = link_elf_link_common_finish(lf); in link_elf_load_file()
1331 *result = lf; in link_elf_load_file()
1336 if (error != 0 && lf != NULL) in link_elf_load_file()
1337 linker_file_unload(lf, LINKER_UNLOAD_FORCE); in link_elf_load_file()
1346 elf_relocaddr(linker_file_t lf, Elf_Addr x) in elf_relocaddr() argument
1350 KASSERT(lf->ops->cls == (kobj_class_t)&link_elf_class, in elf_relocaddr()
1351 ("elf_relocaddr: unexpected linker file %p", lf)); in elf_relocaddr()
1353 ef = (elf_file_t)lf; in elf_relocaddr()
1461 if (reloc(&ef->lf, (Elf_Addr)ef->address, \ in relocate_file1()
1513 link_elf_lookup_symbol1(linker_file_t lf, const char *name, c_linker_sym_t *sym, in link_elf_lookup_symbol1() argument
1516 elf_file_t ef = (elf_file_t) lf; in link_elf_lookup_symbol1()
1567 link_elf_lookup_symbol(linker_file_t lf, const char *name, c_linker_sym_t *sym) in link_elf_lookup_symbol() argument
1570 return (link_elf_lookup_debug_symbol(lf, name, sym)); in link_elf_lookup_symbol()
1571 return (link_elf_lookup_symbol1(lf, name, sym, false)); in link_elf_lookup_symbol()
1575 link_elf_lookup_debug_symbol(linker_file_t lf, const char *name, in link_elf_lookup_debug_symbol() argument
1578 elf_file_t ef = (elf_file_t)lf; in link_elf_lookup_debug_symbol()
1583 if (link_elf_lookup_symbol1(lf, name, sym, true) == 0) in link_elf_lookup_debug_symbol()
1604 link_elf_lookup_debug_symbol_ctf(linker_file_t lf, const char *name, in link_elf_lookup_debug_symbol_ctf() argument
1607 elf_file_t ef = (elf_file_t)lf; in link_elf_lookup_debug_symbol_ctf()
1628 return (i < ef->ddbsymcnt ? link_elf_ctf_get_ddb(lf, lc) : ENOENT); in link_elf_lookup_debug_symbol_ctf()
1632 link_elf_symbol_values1(linker_file_t lf, c_linker_sym_t sym, in link_elf_symbol_values1() argument
1639 ef = (elf_file_t)lf; in link_elf_symbol_values1()
1656 link_elf_symbol_values(linker_file_t lf, c_linker_sym_t sym, in link_elf_symbol_values() argument
1660 return (link_elf_debug_symbol_values(lf, sym, symval)); in link_elf_symbol_values()
1661 return (link_elf_symbol_values1(lf, sym, symval, false)); in link_elf_symbol_values()
1665 link_elf_debug_symbol_values(linker_file_t lf, c_linker_sym_t sym, in link_elf_debug_symbol_values() argument
1668 elf_file_t ef = (elf_file_t)lf; in link_elf_debug_symbol_values()
1672 if (link_elf_symbol_values1(lf, sym, symval, true) == 0) in link_elf_debug_symbol_values()
1690 link_elf_search_symbol(linker_file_t lf, caddr_t value, in link_elf_search_symbol() argument
1693 elf_file_t ef = (elf_file_t)lf; in link_elf_search_symbol()
1729 link_elf_lookup_set(linker_file_t lf, const char *name, in link_elf_lookup_set() argument
1743 error = link_elf_lookup_symbol(lf, setsym, &sym); in link_elf_lookup_set()
1746 link_elf_symbol_values(lf, sym, &symval); in link_elf_lookup_set()
1755 error = link_elf_lookup_symbol(lf, setsym, &sym); in link_elf_lookup_set()
1758 link_elf_symbol_values(lf, sym, &symval); in link_elf_lookup_set()
1828 elf_get_sym(linker_file_t lf, Elf_Size symidx) in elf_get_sym() argument
1830 elf_file_t ef = (elf_file_t)lf; in elf_get_sym()
1838 elf_get_symname(linker_file_t lf, Elf_Size symidx) in elf_get_symname() argument
1840 elf_file_t ef = (elf_file_t)lf; in elf_get_symname()
1857 elf_lookup(linker_file_t lf, Elf_Size symidx, int deps, Elf_Addr *res) in elf_lookup() argument
1859 elf_file_t ef = (elf_file_t)lf; in elf_lookup()
1901 addr = ((Elf_Addr)linker_file_lookup_symbol(lf, symbol, deps)); in elf_lookup()
1918 link_elf_reloc_local(linker_file_t lf) in link_elf_reloc_local() argument
1924 elf_file_t ef = (elf_file_t)lf; in link_elf_reloc_local()
1930 elf_reloc_local(lf, (Elf_Addr)ef->address, rel, in link_elf_reloc_local()
1941 elf_reloc_local(lf, (Elf_Addr)ef->address, rela, in link_elf_reloc_local()
1949 link_elf_symtab_get(linker_file_t lf, const Elf_Sym **symtab) in link_elf_symtab_get() argument
1951 elf_file_t ef = (elf_file_t)lf; in link_elf_symtab_get()
1962 link_elf_strtab_get(linker_file_t lf, caddr_t *strtab) in link_elf_strtab_get() argument
1964 elf_file_t ef = (elf_file_t)lf; in link_elf_strtab_get()
1976 link_elf_propagate_vnets(linker_file_t lf) in link_elf_propagate_vnets() argument
1978 elf_file_t ef = (elf_file_t)lf; in link_elf_propagate_vnets()
1995 elf_lookup_ifunc(linker_file_t lf, Elf_Size symidx, int deps __unused, in elf_lookup_ifunc() argument
2002 ef = (elf_file_t)lf; in elf_lookup_ifunc()