linux_sysvec.c (5a6a4fb284b1a9c4b4105fd6ab8143356f3ef3f7) | linux_sysvec.c (ba279bcd6d75aa236bcb9ccf11aeb6f51a2f8514) |
---|---|
1/*- 2 * Copyright (c) 2004 Tim J. Robbins 3 * Copyright (c) 2003 Peter Wemm 4 * Copyright (c) 2002 Doug Rabson 5 * Copyright (c) 1998-1999 Andrew Gallatin 6 * Copyright (c) 1994-1996 Søren Schmidt 7 * All rights reserved. 8 * Copyright (c) 2013, 2021 Dmitry Chagin <dchagin@FreeBSD.org> --- 672 unchanged lines hidden (view full) --- 681 /* Translate the signal. */ 682 sig = bsd_to_linux_signal(sig); 683 684 /* Build the argument list for the signal handler. */ 685 regs->tf_rdi = sig; /* arg 1 in %rdi */ 686 regs->tf_rax = 0; 687 regs->tf_rsi = (register_t)&sfp->sf_si; /* arg 2 in %rsi */ 688 regs->tf_rdx = (register_t)&sfp->sf_sc; /* arg 3 in %rdx */ | 1/*- 2 * Copyright (c) 2004 Tim J. Robbins 3 * Copyright (c) 2003 Peter Wemm 4 * Copyright (c) 2002 Doug Rabson 5 * Copyright (c) 1998-1999 Andrew Gallatin 6 * Copyright (c) 1994-1996 Søren Schmidt 7 * All rights reserved. 8 * Copyright (c) 2013, 2021 Dmitry Chagin <dchagin@FreeBSD.org> --- 672 unchanged lines hidden (view full) --- 681 /* Translate the signal. */ 682 sig = bsd_to_linux_signal(sig); 683 684 /* Build the argument list for the signal handler. */ 685 regs->tf_rdi = sig; /* arg 1 in %rdi */ 686 regs->tf_rax = 0; 687 regs->tf_rsi = (register_t)&sfp->sf_si; /* arg 2 in %rsi */ 688 regs->tf_rdx = (register_t)&sfp->sf_sc; /* arg 3 in %rdx */ |
689 regs->tf_rcx = (register_t)catcher; |
|
689 690 /* Fill in POSIX parts. */ 691 siginfo_to_lsiginfo(&ksi->ksi_info, &sf.sf_si, sig); | 690 691 /* Fill in POSIX parts. */ 692 siginfo_to_lsiginfo(&ksi->ksi_info, &sf.sf_si, sig); |
692 sf.sf_handler = catcher; | |
693 694 mtx_unlock(&psp->ps_mtx); 695 PROC_UNLOCK(p); 696 697 /* Copy the sigframe out to the user's stack. */ 698 if (copyout(&sf, sfp, sizeof(*sfp)) != 0) { 699 uprintf("pid %d comm %s has trashed its stack, killing\n", 700 p->p_pid, p->p_comm); --- 377 unchanged lines hidden --- | 693 694 mtx_unlock(&psp->ps_mtx); 695 PROC_UNLOCK(p); 696 697 /* Copy the sigframe out to the user's stack. */ 698 if (copyout(&sf, sfp, sizeof(*sfp)) != 0) { 699 uprintf("pid %d comm %s has trashed its stack, killing\n", 700 p->p_pid, p->p_comm); --- 377 unchanged lines hidden --- |