Changeset View
Changeset View
Standalone View
Standalone View
sys/i386/i386/exec_machdep.c
Show First 20 Lines • Show All 232 Lines • ▼ Show 20 Lines | #endif | ||||
} | } | ||||
regs->tf_esp = (int)fp; | regs->tf_esp = (int)fp; | ||||
if (p->p_sysent->sv_sigcode_base != 0) { | if (p->p_sysent->sv_sigcode_base != 0) { | ||||
regs->tf_eip = p->p_sysent->sv_sigcode_base + szsigcode - | regs->tf_eip = p->p_sysent->sv_sigcode_base + szsigcode - | ||||
szosigcode; | szosigcode; | ||||
} else { | } else { | ||||
/* a.out sysentvec does not use shared page */ | /* a.out sysentvec does not use shared page */ | ||||
regs->tf_eip = p->p_sysent->sv_psstrings - szosigcode; | regs->tf_eip = PROC_PS_STRINGS(p) - szosigcode; | ||||
} | } | ||||
regs->tf_eflags &= ~(PSL_T | PSL_D); | regs->tf_eflags &= ~(PSL_T | PSL_D); | ||||
regs->tf_cs = _ucodesel; | regs->tf_cs = _ucodesel; | ||||
regs->tf_ds = _udatasel; | regs->tf_ds = _udatasel; | ||||
regs->tf_es = _udatasel; | regs->tf_es = _udatasel; | ||||
regs->tf_fs = _udatasel; | regs->tf_fs = _udatasel; | ||||
load_gs(_udatasel); | load_gs(_udatasel); | ||||
regs->tf_ss = _udatasel; | regs->tf_ss = _udatasel; | ||||
▲ Show 20 Lines • Show All 268 Lines • ▼ Show 20 Lines | if (copyout(&sf, sfp, sizeof(*sfp)) != 0 || | ||||
!= 0)) { | != 0)) { | ||||
PROC_LOCK(p); | PROC_LOCK(p); | ||||
sigexit(td, SIGILL); | sigexit(td, SIGILL); | ||||
} | } | ||||
regs->tf_esp = (int)sfp; | regs->tf_esp = (int)sfp; | ||||
regs->tf_eip = p->p_sysent->sv_sigcode_base; | regs->tf_eip = p->p_sysent->sv_sigcode_base; | ||||
if (regs->tf_eip == 0) | if (regs->tf_eip == 0) | ||||
regs->tf_eip = p->p_sysent->sv_psstrings - szsigcode; | regs->tf_eip = PROC_PS_STRINGS(p) - szsigcode; | ||||
regs->tf_eflags &= ~(PSL_T | PSL_D); | regs->tf_eflags &= ~(PSL_T | PSL_D); | ||||
regs->tf_cs = _ucodesel; | regs->tf_cs = _ucodesel; | ||||
regs->tf_ds = _udatasel; | regs->tf_ds = _udatasel; | ||||
regs->tf_es = _udatasel; | regs->tf_es = _udatasel; | ||||
regs->tf_fs = _udatasel; | regs->tf_fs = _udatasel; | ||||
regs->tf_ss = _udatasel; | regs->tf_ss = _udatasel; | ||||
PROC_LOCK(p); | PROC_LOCK(p); | ||||
mtx_lock(&psp->ps_mtx); | mtx_lock(&psp->ps_mtx); | ||||
▲ Show 20 Lines • Show All 909 Lines • Show Last 20 Lines |