Changeset View
Changeset View
Standalone View
Standalone View
sys/arm/arm/exec_machdep.c
Show First 20 Lines • Show All 334 Lines • ▼ Show 20 Lines | #endif | ||||
/* the trampoline uses r5 as the uc address */ | /* the trampoline uses r5 as the uc address */ | ||||
tf->tf_r5 = (register_t)&fp->sf_uc; | tf->tf_r5 = (register_t)&fp->sf_uc; | ||||
tf->tf_pc = (register_t)catcher; | tf->tf_pc = (register_t)catcher; | ||||
tf->tf_usr_sp = (register_t)fp; | tf->tf_usr_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_usr_lr = (register_t)sysent->sv_sigcode_base; | tf->tf_usr_lr = (register_t)sysent->sv_sigcode_base; | ||||
else | else | ||||
tf->tf_usr_lr = (register_t)(sysent->sv_psstrings - | tf->tf_usr_lr = (register_t)(PROC_PS_STRINGS(p) - | ||||
*(sysent->sv_szsigcode)); | *(sysent->sv_szsigcode)); | ||||
/* Set the mode to enter in the signal handler */ | /* Set the mode to enter in the signal handler */ | ||||
#if __ARM_ARCH >= 7 | #if __ARM_ARCH >= 7 | ||||
if ((register_t)catcher & 1) | if ((register_t)catcher & 1) | ||||
tf->tf_spsr |= PSR_T; | tf->tf_spsr |= PSR_T; | ||||
else | else | ||||
tf->tf_spsr &= ~PSR_T; | tf->tf_spsr &= ~PSR_T; | ||||
#endif | #endif | ||||
Show All 28 Lines |