Lines Matching defs:eh
129 elf_placedynexec(struct exec_package *epp, Elf_Ehdr *eh, Elf_Phdr *ph)
134 for (align = 1, i = 0; i < eh->e_phnum; i++)
147 for (i = 0; i < eh->e_phnum; i++)
150 eh->e_entry += offset;
287 elf_check_header(Elf_Ehdr *eh)
290 if (memcmp(eh->e_ident, ELFMAG, SELFMAG) != 0 ||
291 eh->e_ident[EI_CLASS] != ELFCLASS) {
293 "e_ident[EI_CLASS] %#x", eh->e_ident[EI_MAG0],
294 eh->e_ident[EI_MAG1], eh->e_ident[EI_MAG2],
295 eh->e_ident[EI_MAG3], eh->e_ident[EI_CLASS]);
299 switch (eh->e_machine) {
304 DPRINTF("bad machine %#x", eh->e_machine);
308 if (ELF_EHDR_FLAGS_OK(eh) == 0) {
309 DPRINTF("bad flags %#x", eh->e_flags);
313 if (eh->e_shnum > ELF_MAXSHNUM || eh->e_phnum > ELF_MAXPHNUM) {
314 DPRINTF("bad shnum/phnum %#x/%#x", eh->e_shnum, eh->e_phnum);
425 Elf_Ehdr eh;
488 error = exec_read(l, vp, 0, &eh, sizeof(eh), IO_NODELOCKED);
492 if ((error = elf_check_header(&eh)) != 0)
494 if (eh.e_type != ET_DYN || eh.e_phnum == 0) {
495 DPRINTF("bad interpreter type %#x", eh.e_type);
500 phsize = eh.e_phnum * sizeof(Elf_Phdr);
503 error = exec_read(l, vp, eh.e_phoff, ph, phsize, IO_NODELOCKED);
530 for (i = 0, base_ph = NULL; i < eh.e_phnum; i++) {
562 for (i = 0, base_ph = NULL, last_ph = NULL; i < eh.e_phnum; i++) {
612 if (eh.e_entry >= ph[i].p_vaddr &&
613 eh.e_entry < (ph[i].p_vaddr + size)) {
614 *entryoff = eh.e_entry - base_ph->p_vaddr;
652 Elf_Ehdr *eh = epp->ep_hdr;
665 if ((error = elf_check_header(eh)) != 0)
668 if (eh->e_type == ET_DYN)
671 else if (eh->e_type != ET_EXEC) {
672 DPRINTF("bad type %#x", eh->e_type);
676 if (eh->e_phnum == 0) {
693 phsize = eh->e_phnum * sizeof(Elf_Phdr);
696 error = exec_read(l, epp->ep_vp, eh->e_phoff, ph, phsize,
706 for (i = 0; i < eh->e_phnum; i++) {
746 error = (*epp->ep_esch->u.elf_probe_func)(l, epp, eh, interp,
755 if (is_dyn && (error = elf_placedynexec(epp, eh, ph)) != 0) {
763 for (i = 0; i < eh->e_phnum; i++) {
793 computed_phdr = ph[i].p_vaddr + eh->e_phoff;
859 epp->ep_entry = eh->e_entry;
870 ap->arg_phentsize = eh->e_phentsize;
871 ap->arg_phnum = eh->e_phnum;
872 ap->arg_entry = eh->e_entry;
901 Elf_Ehdr *eh)
912 if (eh->e_phnum > ELF_MAXPHNUM || eh->e_phnum == 0) {
913 DPRINTF("no signature %#x", eh->e_phnum);
917 phsize = eh->e_phnum * sizeof(Elf_Phdr);
919 error = exec_read(l, epp->ep_vp, eh->e_phoff, ph, phsize,
925 for (i = 0; i < eh->e_phnum; i++) {
1118 netbsd_elf_probe(struct lwp *l, struct exec_package *epp, void *eh, char *itp,
1123 if ((error = netbsd_elf_signature(l, epp, eh)) != 0)
1126 if ((error = ELF_MD_PROBE_FUNC(l, epp, eh, itp, pos)) != 0)