The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/alpha/linux/linux_locore.s

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $FreeBSD$ */
    2 
    3 #include <machine/asm.h>
    4 #include <alpha/linux/linux_syscall.h>
    5 
    6 /*
    7  * Signal "trampoline" code. Invoked from RTE setup by sendsig().
    8  *
    9  * On entry, stack & registers look like:
   10  *
   11  *      a0      signal number
   12  *      a1      pointer to siginfo_t
   13  *      a2      pointer to signal context frame (scp)
   14  *      a3      address of handler
   15  *      sp+0    saved hardware state
   16  *                      .
   17  *                      .
   18  *      scp+0   beginning of signal context frame
   19  */
   20 
   21 /*
   22  * System call glue.
   23  */
   24 #define LINUX_SYSCALLNUM(name)                                   \
   25         ___CONCAT(LINUX_SYS_,name)
   26 
   27 #define LINUX_CALLSYS_NOERROR(name)                              \
   28         ldiq    v0, LINUX_SYSCALLNUM(name);                      \
   29         call_pal PAL_OSF1_callsys
   30 
   31 
   32         
   33 NESTED(linux_sigcode,0,0,ra,0,0)
   34         lda     sp, -16(sp)             /* save the sigcontext pointer */
   35         stq     a2, 0(sp)
   36         jsr     ra, (t12)               /* call the signal handler (t12==pv) */
   37         ldq     a0, 0(sp)               /* get the sigcontext pointer */
   38         lda     sp, 16(sp)
   39                                         /* and call sigreturn() with it. */
   40         LINUX_CALLSYS_NOERROR(osf1_sigreturn)
   41         mov     v0, a0                  /* if that failed, get error code */
   42         LINUX_CALLSYS_NOERROR(exit)     /* and call exit() with it. */
   43 XNESTED(linux_esigcode,0)
   44         END(linux_sigcode)
   45 
   46         .data
   47         EXPORT(linux_szsigcode)
   48         .quad   linux_esigcode-linux_sigcode
   49         .text

Cache object: 081d531536d093d29607d64b71e4be1f


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.