Lines Matching refs:epp
347 elf_load_file(struct proc *p, char *path, struct exec_package *epp,
380 if ((error = VOP_GETATTR(vp, epp->ep_vap, p->p_ucred, p)) != 0)
499 elf_load_psection(&epp->ep_vmcmds, nd.ni_vp,
509 epp->ep_entry = addr + eh.e_entry -
512 epp->ep_entry += pos;
534 NEW_VMCMD(&epp->ep_vmcmds, vmcmd_randomize,
541 NEW_VMCMD(&epp->ep_vmcmds, vmcmd_mutable,
547 NEW_VMCMD(&epp->ep_vmcmds, vmcmd_mutable,
601 exec_elf_makecmds(struct proc *p, struct exec_package *epp)
603 Elf_Ehdr *eh = epp->ep_hdr;
611 if (epp->ep_hdrvalid < sizeof(Elf_Ehdr))
622 if (epp->ep_vp->v_writecount != 0) {
624 if (epp->ep_vp->v_flag & VTEXT)
636 if ((error = elf_read_from(p, epp->ep_vp, eh->e_phoff, ph,
640 epp->ep_tsize = ELF_NO_ADDR;
641 epp->ep_dsize = ELF_NO_ADDR;
653 if ((error = elf_read_from(p, epp->ep_vp,
676 if ((error = elf_os_pt_note(p, epp, epp->ep_hdr, &names)) != 0)
702 error = vn_rdwr(UIO_READ, epp->ep_vp,
755 elf_load_psection(&epp->ep_vmcmds, epp->ep_vp,
774 if (epp->ep_dsize == ELF_NO_ADDR) {
775 epp->ep_daddr = addr;
776 epp->ep_dsize = size;
778 if (addr < epp->ep_daddr) {
779 epp->ep_dsize =
780 epp->ep_dsize +
781 epp->ep_daddr -
783 epp->ep_daddr = addr;
785 epp->ep_dsize = addr+size -
786 epp->ep_daddr;
790 if (epp->ep_tsize == ELF_NO_ADDR) {
791 epp->ep_taddr = addr;
792 epp->ep_tsize = size;
794 if (addr < epp->ep_taddr) {
795 epp->ep_tsize =
796 epp->ep_tsize +
797 epp->ep_taddr -
799 epp->ep_taddr = addr;
801 epp->ep_tsize = addr+size -
802 epp->ep_taddr;
805 exe_end = epp->ep_taddr +
806 epp->ep_tsize; /* end of TEXT */
830 NEW_VMCMD(&epp->ep_vmcmds, vmcmd_randomize,
837 NEW_VMCMD(&epp->ep_vmcmds, vmcmd_mutable,
843 NEW_VMCMD(&epp->ep_vmcmds, vmcmd_mutable,
865 npins = elf_read_pintable(p, epp->ep_vp, syscall_ph,
869 epp->ep_taddr - exe_base);
870 epp->ep_pinstart = base;
871 epp->ep_pinend = base + len;
872 epp->ep_pins = pins;
873 epp->ep_npins = npins;
883 if (epp->ep_tsize == ELF_NO_ADDR)
884 epp->ep_tsize = 0;
890 if (epp->ep_dsize == ELF_NO_ADDR) {
891 epp->ep_daddr = round_page(epp->ep_taddr + epp->ep_tsize);
892 epp->ep_dsize = 0;
895 epp->ep_interp = interp;
896 epp->ep_entry = eh->e_entry + exe_base;
913 epp->ep_args = ap;
917 vn_marktext(epp->ep_vp);
918 return (exec_setup_stack(p, epp));
924 kill_vmcmds(&epp->ep_vmcmds);
943 exec_elf_fixup(struct proc *p, struct exec_package *epp)
950 ap = epp->ep_args;
955 interp = epp->ep_interp;
962 (error = elf_load_file(p, interp, epp, ap)) != 0) {
966 kill_vmcmds(&epp->ep_vmcmds);
972 error = exec_process_vmcmds(p, epp);
1030 error = copyout(ai, epp->ep_auxinfo, sizeof ai);
1062 elf_os_pt_note(struct proc *p, struct exec_package *epp, Elf_Ehdr *eh, int *namesp)
1071 if ((error = elf_read_from(p, epp->ep_vp, eh->e_phoff,
1077 epp->ep_flags |= EXEC_WXNEEDED;
1081 epp->ep_flags |= EXEC_NOBTCFI;
1095 if ((error = elf_read_from(p, epp->ep_vp, ph->p_offset,