Changeset View
Changeset View
Standalone View
Standalone View
sys/riscv/riscv/exec_machdep.c
Show First 20 Lines • Show All 403 Lines • ▼ Show 20 Lines | sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) | ||||
tf->tf_sepc = (register_t)catcher; | tf->tf_sepc = (register_t)catcher; | ||||
tf->tf_sp = (register_t)fp; | tf->tf_sp = (register_t)fp; | ||||
sysent = p->p_sysent; | sysent = p->p_sysent; | ||||
if (sysent->sv_sigcode_base != 0) | if (sysent->sv_sigcode_base != 0) | ||||
tf->tf_ra = (register_t)sysent->sv_sigcode_base; | tf->tf_ra = (register_t)sysent->sv_sigcode_base; | ||||
else | else | ||||
tf->tf_ra = (register_t)(sysent->sv_psstrings - | tf->tf_ra = (register_t)(p->p_psstrings - | ||||
*(sysent->sv_szsigcode)); | *(sysent->sv_szsigcode)); | ||||
CTR3(KTR_SIG, "sendsig: return td=%p pc=%#x sp=%#x", td, tf->tf_sepc, | CTR3(KTR_SIG, "sendsig: return td=%p pc=%#x sp=%#x", td, tf->tf_sepc, | ||||
tf->tf_sp); | tf->tf_sp); | ||||
PROC_LOCK(p); | PROC_LOCK(p); | ||||
mtx_lock(&psp->ps_mtx); | mtx_lock(&psp->ps_mtx); | ||||
} | } |