diff options
author | kato <kato@FreeBSD.org> | 2002-04-11 09:45:41 +0000 |
---|---|---|
committer | kato <kato@FreeBSD.org> | 2002-04-11 09:45:41 +0000 |
commit | 4c6efe7dae78c40a2aa1b7e226611b6bae31aeea (patch) | |
tree | fba700c906647d9e408c70c3af7f57635b4a2564 /sys | |
parent | 961ff64e432f09c00e012312f7e00bcbd8c037ff (diff) | |
download | FreeBSD-src-4c6efe7dae78c40a2aa1b7e226611b6bae31aeea.zip FreeBSD-src-4c6efe7dae78c40a2aa1b7e226611b6bae31aeea.tar.gz |
MFi386: revision 1.517.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/pc98/i386/machdep.c | 14 | ||||
-rw-r--r-- | sys/pc98/pc98/machdep.c | 14 |
2 files changed, 18 insertions, 10 deletions
diff --git a/sys/pc98/i386/machdep.c b/sys/pc98/i386/machdep.c index 6c395ed..86ec0ef 100644 --- a/sys/pc98/i386/machdep.c +++ b/sys/pc98/i386/machdep.c @@ -548,6 +548,8 @@ sendsig(catcher, sig, mask, code) * context left by sendsig. Check carefully to * make sure that the user has not modified the * state to gain improper privileges. + * + * MPSAFE */ int osigreturn(td, uap) @@ -644,6 +646,10 @@ osigreturn(td, uap) regs->tf_cs = scp->sc_cs; regs->tf_ss = scp->sc_ss; regs->tf_isp = scp->sc_isp; + regs->tf_ebp = scp->sc_fp; + regs->tf_esp = scp->sc_sp; + regs->tf_eip = scp->sc_pc; + regs->tf_eflags = eflags; PROC_LOCK(p); #if defined(COMPAT_43) || defined(COMPAT_SUNOS) @@ -652,21 +658,19 @@ osigreturn(td, uap) else p->p_sigstk.ss_flags &= ~SS_ONSTACK; #endif - SIGSETOLD(p->p_sigmask, scp->sc_mask); SIG_CANTMASK(p->p_sigmask); signotify(p); PROC_UNLOCK(p); - regs->tf_ebp = scp->sc_fp; - regs->tf_esp = scp->sc_sp; - regs->tf_eip = scp->sc_pc; - regs->tf_eflags = eflags; return (EJUSTRETURN); #else /* !COMPAT_43 */ return (ENOSYS); #endif /* COMPAT_43 */ } +/* + * MPSAFE + */ int sigreturn(td, uap) struct thread *td; diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c index 6c395ed..86ec0ef 100644 --- a/sys/pc98/pc98/machdep.c +++ b/sys/pc98/pc98/machdep.c @@ -548,6 +548,8 @@ sendsig(catcher, sig, mask, code) * context left by sendsig. Check carefully to * make sure that the user has not modified the * state to gain improper privileges. + * + * MPSAFE */ int osigreturn(td, uap) @@ -644,6 +646,10 @@ osigreturn(td, uap) regs->tf_cs = scp->sc_cs; regs->tf_ss = scp->sc_ss; regs->tf_isp = scp->sc_isp; + regs->tf_ebp = scp->sc_fp; + regs->tf_esp = scp->sc_sp; + regs->tf_eip = scp->sc_pc; + regs->tf_eflags = eflags; PROC_LOCK(p); #if defined(COMPAT_43) || defined(COMPAT_SUNOS) @@ -652,21 +658,19 @@ osigreturn(td, uap) else p->p_sigstk.ss_flags &= ~SS_ONSTACK; #endif - SIGSETOLD(p->p_sigmask, scp->sc_mask); SIG_CANTMASK(p->p_sigmask); signotify(p); PROC_UNLOCK(p); - regs->tf_ebp = scp->sc_fp; - regs->tf_esp = scp->sc_sp; - regs->tf_eip = scp->sc_pc; - regs->tf_eflags = eflags; return (EJUSTRETURN); #else /* !COMPAT_43 */ return (ENOSYS); #endif /* COMPAT_43 */ } +/* + * MPSAFE + */ int sigreturn(td, uap) struct thread *td; |