diff options
-rw-r--r-- | sys/i386/svr4/svr4_locore.s | 12 | ||||
-rw-r--r-- | sys/i386/svr4/svr4_machdep.c | 8 | ||||
-rw-r--r-- | sys/i386/svr4/svr4_machdep.h | 2 |
3 files changed, 10 insertions, 12 deletions
diff --git a/sys/i386/svr4/svr4_locore.s b/sys/i386/svr4/svr4_locore.s index 2f9c683..9a9b6c0 100644 --- a/sys/i386/svr4/svr4_locore.s +++ b/sys/i386/svr4/svr4_locore.s @@ -3,6 +3,8 @@ #include <svr4/svr4_syscall.h> /* system call numbers */ +/* $Id$ */ + NON_GPROF_ENTRY(svr4_sigcode) call SVR4_SIGF_HANDLER(%esp) leal SVR4_SIGF_UC(%esp),%eax # ucp (the call may have clobbered the @@ -15,19 +17,9 @@ NON_GPROF_ENTRY(svr4_sigcode) #endif movl SVR4_UC_GS(%eax),%edx movl %dx,%gs -#if defined(__NetBSD__) - movl SVR4_UC_FS(%eax),%ecx - movl %cx,%fs -1: pushl %eax - pushl $1 # setcontext(p) == syscontext(1, p) - pushl %eax # junk to fake return address - movl $_svr4_sys_context,%eax -#else -/* must be FreeBSD, right? */ 1: pushl %eax # fake return address pushl $1 # pointer to ucontext movl $_svr4_sys_context,%eax -#endif int $0x80 # enter kernel with args on stack movl $exit,%eax int $0x80 # exit if sigreturn fails diff --git a/sys/i386/svr4/svr4_machdep.c b/sys/i386/svr4/svr4_machdep.c index 5e77fd1..0c77505 100644 --- a/sys/i386/svr4/svr4_machdep.c +++ b/sys/i386/svr4/svr4_machdep.c @@ -24,6 +24,8 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id$ */ #include <sys/types.h> @@ -106,10 +108,12 @@ svr4_getcontext(p, uc, mask, oonstack) int mask, oonstack; { struct trapframe *tf = p->p_md.md_regs; - struct sigacts *psp = p->p_sigacts; svr4_greg_t *r = uc->uc_mcontext.greg; struct svr4_sigaltstack *s = &uc->uc_stack; +#ifdef DONE_MORE_SIGALTSTACK_WORK + struct sigacts *psp = p->p_sigacts; struct sigaltstack *sf = &psp->ps_sigstk; +#endif memset(uc, 0, sizeof(struct svr4_ucontext)); @@ -156,7 +160,7 @@ svr4_getcontext(p, uc, mask, oonstack) /* * Set the signal stack */ -#if 0 +#if DONE_MORE_SIGALTSTACK_WORK bsd_to_svr4_sigaltstack(sf, s); #else s->ss_sp = (void *)(((u_long) tf->tf_esp) & ~(16384 - 1)); diff --git a/sys/i386/svr4/svr4_machdep.h b/sys/i386/svr4/svr4_machdep.h index 8371de7..06b8089 100644 --- a/sys/i386/svr4/svr4_machdep.h +++ b/sys/i386/svr4/svr4_machdep.h @@ -24,6 +24,8 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id$ */ #ifndef _I386_SVR4_MACHDEP_H_ |