Lines Matching refs:ef

69 #define VECTX_HANDLE(ef) (ef)->vctx  argument
71 #define VECTX_HANDLE(ef) (ef)->fd argument
74 static int __elfN(obj_loadimage)(struct preloaded_file *mp, elf_file_t ef,
76 static int __elfN(obj_lookup_set)(struct preloaded_file *mp, elf_file_t ef,
78 static int __elfN(obj_reloc_ptr)(struct preloaded_file *mp, elf_file_t ef,
81 elf_file_t ef);
82 static Elf_Addr __elfN(obj_symaddr)(struct elf_file *ef, Elf_Size symidx);
97 struct elf_file ef; in __elfN() local
103 bzero(&ef, sizeof(struct elf_file)); in __elfN()
110 if ((ef.fd = open(filename, O_RDONLY)) == -1) in __elfN()
116 ef.vctx = vectx_open(ef.fd, filename, 0L, NULL, &verror, __func__); in __elfN()
119 close(ef.fd); in __elfN()
120 free(ef.vctx); in __elfN()
126 hdr = &ef.hdr; in __elfN()
127 bytes_read = VECTX_READ(VECTX_HANDLE(&ef), hdr, sizeof(*hdr)); in __elfN()
155 if (verify_file(ef.fd, filename, bytes_read, VE_MUST, __func__) < 0) { in __elfN()
189 fp->f_size = __elfN(obj_loadimage)(fp, &ef, dest); in __elfN()
207 if (!err && ef.vctx) { in __elfN()
210 verror = vectx_close(ef.vctx, VE_MUST, __func__); in __elfN()
217 close(ef.fd); in __elfN()
218 if (ef.e_shdr != NULL) in __elfN()
219 free(ef.e_shdr); in __elfN()
229 __elfN(obj_loadimage)(struct preloaded_file *fp, elf_file_t ef, uint64_t off) in __elfN()
238 hdr = &ef->hdr; in __elfN()
239 ef->off = (vm_offset_t)off; in __elfN()
243 shdr = alloc_pread(VECTX_HANDLE(ef), (off_t)hdr->e_shoff, shdrbytes); in __elfN()
249 ef->e_shdr = shdr; in __elfN()
284 ef->symtabindex = i; in __elfN()
293 lastaddr = roundup(lastaddr, shdr[ef->symtabindex].sh_addralign); in __elfN()
294 shdr[ef->symtabindex].sh_addr = (Elf_Addr)lastaddr; in __elfN()
295 lastaddr += shdr[ef->symtabindex].sh_size; in __elfN()
297 symstrindex = shdr[ef->symtabindex].sh_link; in __elfN()
315 ef->shstrindex = hdr->e_shstrndx; in __elfN()
316 lastaddr = roundup(lastaddr, shdr[ef->shstrindex].sh_addralign); in __elfN()
317 shdr[ef->shstrindex].sh_addr = (Elf_Addr)lastaddr; in __elfN()
318 lastaddr += shdr[ef->shstrindex].sh_size; in __elfN()
364 if (kern_pread(VECTX_HANDLE(ef), (vm_offset_t)cshdr->sh_addr, in __elfN()
374 res = __elfN(obj_parse_modmetadata)(fp, ef); in __elfN()
398 __elfN(obj_parse_modmetadata)(struct preloaded_file *fp, elf_file_t ef) in __elfN()
410 if (__elfN(obj_lookup_set)(fp, ef, "modmetadata_set", &p, &p_stop, in __elfN()
417 error = __elfN(obj_reloc_ptr)(fp, ef, p, &v, sizeof(v)); in __elfN()
422 error = __elfN(obj_reloc_ptr)(fp, ef, v, &md64, sizeof(md64)); in __elfN()
431 error = __elfN(obj_reloc_ptr)(fp, ef, v, &md, sizeof(md)); in __elfN()
470 __elfN(obj_lookup_set)(struct preloaded_file *fp, elf_file_t ef, in __elfN()
479 hdr = &ef->hdr; in __elfN()
480 shdr = ef->e_shdr; in __elfN()
481 shstrtab = shdr[ef->shstrindex].sh_addr; in __elfN()
508 __elfN(obj_reloc_ptr)(struct preloaded_file *mp, elf_file_t ef, Elf_Addr p, in __elfN()
519 hdr = &ef->hdr; in __elfN()
520 shdr = ef->e_shdr; in __elfN()
540 error = __elfN(reloc)(ef, __elfN(obj_symaddr), in __elfN()
553 error = __elfN(reloc)(ef, __elfN(obj_symaddr), in __elfN()
566 __elfN(obj_symaddr)(struct elf_file *ef, Elf_Size symidx) in __elfN()
571 if (symidx >= ef->e_shdr[ef->symtabindex].sh_size / sizeof(Elf_Sym)) in __elfN()
573 COPYOUT(ef->e_shdr[ef->symtabindex].sh_addr + symidx * sizeof(Elf_Sym), in __elfN()
575 if (sym.st_shndx == SHN_UNDEF || sym.st_shndx >= ef->hdr.e_shnum) in __elfN()
577 base = ef->e_shdr[sym.st_shndx].sh_addr; in __elfN()