ia32_signal.c (182684) | ia32_signal.c (187948) |
---|---|
1/*- 2 * Copyright (c) 2003 Peter Wemm 3 * Copyright (c) 1982, 1987, 1990 The Regents of the University of California. 4 * All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * William Jolitz. 8 * --- 18 unchanged lines hidden (view full) --- 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 34#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2003 Peter Wemm 3 * Copyright (c) 1982, 1987, 1990 The Regents of the University of California. 4 * All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * William Jolitz. 8 * --- 18 unchanged lines hidden (view full) --- 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 */ 33 34#include <sys/cdefs.h> |
35__FBSDID("$FreeBSD: head/sys/amd64/ia32/ia32_signal.c 182684 2008-09-02 17:52:11Z kib $"); | 35__FBSDID("$FreeBSD: head/sys/amd64/ia32/ia32_signal.c 187948 2009-01-31 11:37:21Z obrien $"); |
36 37#include "opt_compat.h" 38 39#include <sys/param.h> 40#include <sys/exec.h> 41#include <sys/fcntl.h> 42#include <sys/imgact.h> 43#include <sys/kernel.h> --- 279 unchanged lines hidden (view full) --- 323 sf.sf_uc.uc_sigmask = *mask; 324 sf.sf_uc.uc_stack.ss_sp = (uintptr_t)td->td_sigstk.ss_sp; 325 sf.sf_uc.uc_stack.ss_size = td->td_sigstk.ss_size; 326 sf.sf_uc.uc_stack.ss_flags = (td->td_pflags & TDP_ALTSTACK) 327 ? ((oonstack) ? SS_ONSTACK : 0) : SS_DISABLE; 328 sf.sf_uc.uc_mcontext.mc_onstack = (oonstack) ? 1 : 0; 329 sf.sf_uc.uc_mcontext.mc_gs = rgs(); 330 sf.sf_uc.uc_mcontext.mc_fs = rfs(); | 36 37#include "opt_compat.h" 38 39#include <sys/param.h> 40#include <sys/exec.h> 41#include <sys/fcntl.h> 42#include <sys/imgact.h> 43#include <sys/kernel.h> --- 279 unchanged lines hidden (view full) --- 323 sf.sf_uc.uc_sigmask = *mask; 324 sf.sf_uc.uc_stack.ss_sp = (uintptr_t)td->td_sigstk.ss_sp; 325 sf.sf_uc.uc_stack.ss_size = td->td_sigstk.ss_size; 326 sf.sf_uc.uc_stack.ss_flags = (td->td_pflags & TDP_ALTSTACK) 327 ? ((oonstack) ? SS_ONSTACK : 0) : SS_DISABLE; 328 sf.sf_uc.uc_mcontext.mc_onstack = (oonstack) ? 1 : 0; 329 sf.sf_uc.uc_mcontext.mc_gs = rgs(); 330 sf.sf_uc.uc_mcontext.mc_fs = rfs(); |
331 __asm __volatile("movl %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es)); 332 __asm __volatile("movl %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds)); | 331 __asm __volatile("mov %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es)); 332 __asm __volatile("mov %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds)); |
333 sf.sf_uc.uc_mcontext.mc_edi = regs->tf_rdi; 334 sf.sf_uc.uc_mcontext.mc_esi = regs->tf_rsi; 335 sf.sf_uc.uc_mcontext.mc_ebp = regs->tf_rbp; 336 sf.sf_uc.uc_mcontext.mc_isp = regs->tf_rsp; /* XXX */ 337 sf.sf_uc.uc_mcontext.mc_ebx = regs->tf_rbx; 338 sf.sf_uc.uc_mcontext.mc_edx = regs->tf_rdx; 339 sf.sf_uc.uc_mcontext.mc_ecx = regs->tf_rcx; 340 sf.sf_uc.uc_mcontext.mc_eax = regs->tf_rax; --- 97 unchanged lines hidden (view full) --- 438 sf.sf_uc.uc_sigmask = *mask; 439 sf.sf_uc.uc_stack.ss_sp = (uintptr_t)td->td_sigstk.ss_sp; 440 sf.sf_uc.uc_stack.ss_size = td->td_sigstk.ss_size; 441 sf.sf_uc.uc_stack.ss_flags = (td->td_pflags & TDP_ALTSTACK) 442 ? ((oonstack) ? SS_ONSTACK : 0) : SS_DISABLE; 443 sf.sf_uc.uc_mcontext.mc_onstack = (oonstack) ? 1 : 0; 444 sf.sf_uc.uc_mcontext.mc_gs = rgs(); 445 sf.sf_uc.uc_mcontext.mc_fs = rfs(); | 333 sf.sf_uc.uc_mcontext.mc_edi = regs->tf_rdi; 334 sf.sf_uc.uc_mcontext.mc_esi = regs->tf_rsi; 335 sf.sf_uc.uc_mcontext.mc_ebp = regs->tf_rbp; 336 sf.sf_uc.uc_mcontext.mc_isp = regs->tf_rsp; /* XXX */ 337 sf.sf_uc.uc_mcontext.mc_ebx = regs->tf_rbx; 338 sf.sf_uc.uc_mcontext.mc_edx = regs->tf_rdx; 339 sf.sf_uc.uc_mcontext.mc_ecx = regs->tf_rcx; 340 sf.sf_uc.uc_mcontext.mc_eax = regs->tf_rax; --- 97 unchanged lines hidden (view full) --- 438 sf.sf_uc.uc_sigmask = *mask; 439 sf.sf_uc.uc_stack.ss_sp = (uintptr_t)td->td_sigstk.ss_sp; 440 sf.sf_uc.uc_stack.ss_size = td->td_sigstk.ss_size; 441 sf.sf_uc.uc_stack.ss_flags = (td->td_pflags & TDP_ALTSTACK) 442 ? ((oonstack) ? SS_ONSTACK : 0) : SS_DISABLE; 443 sf.sf_uc.uc_mcontext.mc_onstack = (oonstack) ? 1 : 0; 444 sf.sf_uc.uc_mcontext.mc_gs = rgs(); 445 sf.sf_uc.uc_mcontext.mc_fs = rfs(); |
446 __asm __volatile("movl %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es)); 447 __asm __volatile("movl %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds)); | 446 __asm __volatile("mov %%es,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_es)); 447 __asm __volatile("mov %%ds,%0" : "=rm" (sf.sf_uc.uc_mcontext.mc_ds)); |
448 sf.sf_uc.uc_mcontext.mc_edi = regs->tf_rdi; 449 sf.sf_uc.uc_mcontext.mc_esi = regs->tf_rsi; 450 sf.sf_uc.uc_mcontext.mc_ebp = regs->tf_rbp; 451 sf.sf_uc.uc_mcontext.mc_isp = regs->tf_rsp; /* XXX */ 452 sf.sf_uc.uc_mcontext.mc_ebx = regs->tf_rbx; 453 sf.sf_uc.uc_mcontext.mc_edx = regs->tf_rdx; 454 sf.sf_uc.uc_mcontext.mc_ecx = regs->tf_rcx; 455 sf.sf_uc.uc_mcontext.mc_eax = regs->tf_rax; --- 292 unchanged lines hidden --- | 448 sf.sf_uc.uc_mcontext.mc_edi = regs->tf_rdi; 449 sf.sf_uc.uc_mcontext.mc_esi = regs->tf_rsi; 450 sf.sf_uc.uc_mcontext.mc_ebp = regs->tf_rbp; 451 sf.sf_uc.uc_mcontext.mc_isp = regs->tf_rsp; /* XXX */ 452 sf.sf_uc.uc_mcontext.mc_ebx = regs->tf_rbx; 453 sf.sf_uc.uc_mcontext.mc_edx = regs->tf_rdx; 454 sf.sf_uc.uc_mcontext.mc_ecx = regs->tf_rcx; 455 sf.sf_uc.uc_mcontext.mc_eax = regs->tf_rax; --- 292 unchanged lines hidden --- |