Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/amd64/exec_machdep.c
Show First 20 Lines • Show All 197 Lines • ▼ Show 20 Lines | if (copyout(&sf, sfp, sizeof(*sfp)) != 0 || | ||||
uprintf("pid %d comm %s has trashed its stack, killing\n", | uprintf("pid %d comm %s has trashed its stack, killing\n", | ||||
p->p_pid, p->p_comm); | p->p_pid, p->p_comm); | ||||
PROC_LOCK(p); | PROC_LOCK(p); | ||||
sigexit(td, SIGILL); | sigexit(td, SIGILL); | ||||
} | } | ||||
fpstate_drop(td); | fpstate_drop(td); | ||||
regs->tf_rsp = (long)sfp; | regs->tf_rsp = (long)sfp; | ||||
regs->tf_rip = p->p_sysent->sv_sigcode_base; | regs->tf_rip = PROC_SIGCODE(p); | ||||
regs->tf_rflags &= ~(PSL_T | PSL_D); | regs->tf_rflags &= ~(PSL_T | PSL_D); | ||||
regs->tf_cs = _ucodesel; | regs->tf_cs = _ucodesel; | ||||
regs->tf_ds = _udatasel; | regs->tf_ds = _udatasel; | ||||
regs->tf_ss = _udatasel; | regs->tf_ss = _udatasel; | ||||
regs->tf_es = _udatasel; | regs->tf_es = _udatasel; | ||||
regs->tf_fs = _ufssel; | regs->tf_fs = _ufssel; | ||||
regs->tf_gs = _ugssel; | regs->tf_gs = _ugssel; | ||||
regs->tf_flags = TF_HASSEGS; | regs->tf_flags = TF_HASSEGS; | ||||
▲ Show 20 Lines • Show All 762 Lines • Show Last 20 Lines |