linux_sysvec.c (78161) | linux_sysvec.c (78962) |
---|---|
1/*- 2 * Copyright (c) 1994-1996 S�ren Schmidt 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * | 1/*- 2 * Copyright (c) 1994-1996 S�ren Schmidt 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * |
28 * $FreeBSD: head/sys/i386/linux/linux_sysvec.c 78161 2001-06-13 10:58:39Z peter $ | 28 * $FreeBSD: head/sys/i386/linux/linux_sysvec.c 78962 2001-06-29 11:10:41Z jhb $ |
29 */ 30 31/* XXX we use functions that might not exist. */ 32#include "opt_compat.h" 33 34#ifndef COMPAT_43 35#error "Unable to compile Linux-emulator due to missing COMPAT_43 option!" 36#endif --- 171 unchanged lines hidden (view full) --- 208static void 209linux_rt_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) 210{ 211 register struct proc *p = curproc; 212 register struct trapframe *regs; 213 struct linux_rt_sigframe *fp, frame; 214 int oonstack; 215 | 29 */ 30 31/* XXX we use functions that might not exist. */ 32#include "opt_compat.h" 33 34#ifndef COMPAT_43 35#error "Unable to compile Linux-emulator due to missing COMPAT_43 option!" 36#endif --- 171 unchanged lines hidden (view full) --- 208static void 209linux_rt_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) 210{ 211 register struct proc *p = curproc; 212 register struct trapframe *regs; 213 struct linux_rt_sigframe *fp, frame; 214 int oonstack; 215 |
216 regs = p->p_md.md_regs; | 216 regs = p->p_frame; |
217 oonstack = sigonstack(regs->tf_esp); 218 219#ifdef DEBUG 220 if (ldebug(sigreturn)) 221 printf(ARGS(rt_sendsig, "%p, %d, %p, %lu"), 222 catcher, sig, (void*)mask, code); 223#endif 224 /* --- 140 unchanged lines hidden (view full) --- 365 int oonstack, i; 366 367 if (SIGISMEMBER(p->p_sigacts->ps_siginfo, sig)) { 368 /* Signal handler installed with SA_SIGINFO. */ 369 linux_rt_sendsig(catcher, sig, mask, code); 370 return; 371 } 372 | 217 oonstack = sigonstack(regs->tf_esp); 218 219#ifdef DEBUG 220 if (ldebug(sigreturn)) 221 printf(ARGS(rt_sendsig, "%p, %d, %p, %lu"), 222 catcher, sig, (void*)mask, code); 223#endif 224 /* --- 140 unchanged lines hidden (view full) --- 365 int oonstack, i; 366 367 if (SIGISMEMBER(p->p_sigacts->ps_siginfo, sig)) { 368 /* Signal handler installed with SA_SIGINFO. */ 369 linux_rt_sendsig(catcher, sig, mask, code); 370 return; 371 } 372 |
373 regs = p->p_md.md_regs; | 373 regs = p->p_frame; |
374 oonstack = sigonstack(regs->tf_esp); 375 376#ifdef DEBUG 377 if (ldebug(sigreturn)) 378 printf(ARGS(sendsig, "%p, %d, %p, %lu"), 379 catcher, sig, (void*)mask, code); 380#endif 381 --- 109 unchanged lines hidden (view full) --- 491 struct proc *p; 492 struct linux_sigreturn_args *args; 493{ 494 struct linux_sigframe frame; 495 register struct trapframe *regs; 496 linux_sigset_t lmask; 497 int eflags, i; 498 | 374 oonstack = sigonstack(regs->tf_esp); 375 376#ifdef DEBUG 377 if (ldebug(sigreturn)) 378 printf(ARGS(sendsig, "%p, %d, %p, %lu"), 379 catcher, sig, (void*)mask, code); 380#endif 381 --- 109 unchanged lines hidden (view full) --- 491 struct proc *p; 492 struct linux_sigreturn_args *args; 493{ 494 struct linux_sigframe frame; 495 register struct trapframe *regs; 496 linux_sigset_t lmask; 497 int eflags, i; 498 |
499 regs = p->p_md.md_regs; | 499 regs = p->p_frame; |
500 501#ifdef DEBUG 502 if (ldebug(sigreturn)) 503 printf(ARGS(sigreturn, "%p"), (void *)args->sfp); 504#endif 505 /* 506 * The trampoline code hands us the sigframe. 507 * It is unsafe to keep track of it ourselves, in the event that a --- 82 unchanged lines hidden (view full) --- 590 struct linux_ucontext uc; 591 struct linux_sigcontext *context; 592 linux_stack_t *lss; 593 stack_t *ss; 594 register struct trapframe *regs; 595 int eflags; 596 caddr_t sg = stackgap_init(); 597 | 500 501#ifdef DEBUG 502 if (ldebug(sigreturn)) 503 printf(ARGS(sigreturn, "%p"), (void *)args->sfp); 504#endif 505 /* 506 * The trampoline code hands us the sigframe. 507 * It is unsafe to keep track of it ourselves, in the event that a --- 82 unchanged lines hidden (view full) --- 590 struct linux_ucontext uc; 591 struct linux_sigcontext *context; 592 linux_stack_t *lss; 593 stack_t *ss; 594 register struct trapframe *regs; 595 int eflags; 596 caddr_t sg = stackgap_init(); 597 |
598 regs = p->p_md.md_regs; | 598 regs = p->p_frame; |
599 600#ifdef DEBUG 601 if (ldebug(rt_sigreturn)) 602 printf(ARGS(rt_sigreturn, "%p"), (void *)args->ucp); 603#endif 604 /* 605 * The trampoline code hands us the ucontext. 606 * It is unsafe to keep track of it ourselves, in the event that a --- 255 unchanged lines hidden --- | 599 600#ifdef DEBUG 601 if (ldebug(rt_sigreturn)) 602 printf(ARGS(rt_sigreturn, "%p"), (void *)args->ucp); 603#endif 604 /* 605 * The trampoline code hands us the ucontext. 606 * It is unsafe to keep track of it ourselves, in the event that a --- 255 unchanged lines hidden --- |