linux/arch/sparc/include/uapi/asm/signal.h
<<
>>
Prefs
   1#ifndef _UAPI__SPARC_SIGNAL_H
   2#define _UAPI__SPARC_SIGNAL_H
   3
   4#include <asm/sigcontext.h>
   5#include <linux/compiler.h>
   6
   7
   8/* On the Sparc the signal handlers get passed a 'sub-signal' code
   9 * for certain signal types, which we document here.
  10 */
  11#define SIGHUP           1
  12#define SIGINT           2
  13#define SIGQUIT          3
  14#define SIGILL           4
  15#define    SUBSIG_STACK       0
  16#define    SUBSIG_ILLINST     2
  17#define    SUBSIG_PRIVINST    3
  18#define    SUBSIG_BADTRAP(t)  (0x80 + (t))
  19
  20#define SIGTRAP          5
  21#define SIGABRT          6
  22#define SIGIOT           6
  23
  24#define SIGEMT           7
  25#define    SUBSIG_TAG    10
  26
  27#define SIGFPE           8
  28#define    SUBSIG_FPDISABLED     0x400
  29#define    SUBSIG_FPERROR        0x404
  30#define    SUBSIG_FPINTOVFL      0x001
  31#define    SUBSIG_FPSTSIG        0x002
  32#define    SUBSIG_IDIVZERO       0x014
  33#define    SUBSIG_FPINEXACT      0x0c4
  34#define    SUBSIG_FPDIVZERO      0x0c8
  35#define    SUBSIG_FPUNFLOW       0x0cc
  36#define    SUBSIG_FPOPERROR      0x0d0
  37#define    SUBSIG_FPOVFLOW       0x0d4
  38
  39#define SIGKILL          9
  40#define SIGBUS          10
  41#define    SUBSIG_BUSTIMEOUT    1
  42#define    SUBSIG_ALIGNMENT     2
  43#define    SUBSIG_MISCERROR     5
  44
  45#define SIGSEGV         11
  46#define    SUBSIG_NOMAPPING     3
  47#define    SUBSIG_PROTECTION    4
  48#define    SUBSIG_SEGERROR      5
  49
  50#define SIGSYS          12
  51
  52#define SIGPIPE         13
  53#define SIGALRM         14
  54#define SIGTERM         15
  55#define SIGURG          16
  56
  57/* SunOS values which deviate from the Linux/i386 ones */
  58#define SIGSTOP         17
  59#define SIGTSTP         18
  60#define SIGCONT         19
  61#define SIGCHLD         20
  62#define SIGTTIN         21
  63#define SIGTTOU         22
  64#define SIGIO           23
  65#define SIGPOLL         SIGIO   /* SysV name for SIGIO */
  66#define SIGXCPU         24
  67#define SIGXFSZ         25
  68#define SIGVTALRM       26
  69#define SIGPROF         27
  70#define SIGWINCH        28
  71#define SIGLOST         29
  72#define SIGPWR          SIGLOST
  73#define SIGUSR1         30
  74#define SIGUSR2         31
  75
  76/* Most things should be clean enough to redefine this at will, if care
  77   is taken to make libc match.  */
  78
  79#define __OLD_NSIG      32
  80#define __NEW_NSIG      64
  81#ifdef __arch64__
  82#define _NSIG_BPW       64
  83#else
  84#define _NSIG_BPW       32
  85#endif
  86#define _NSIG_WORDS     (__NEW_NSIG / _NSIG_BPW)
  87
  88#define SIGRTMIN       32
  89#define SIGRTMAX       __NEW_NSIG
  90
  91#if defined(__KERNEL__) || defined(__WANT_POSIX1B_SIGNALS__)
  92#define _NSIG                   __NEW_NSIG
  93#define __new_sigset_t          sigset_t
  94#define __new_sigaction         sigaction
  95#define __new_sigaction32       sigaction32
  96#define __old_sigset_t          old_sigset_t
  97#define __old_sigaction         old_sigaction
  98#define __old_sigaction32       old_sigaction32
  99#else
 100#define _NSIG                   __OLD_NSIG
 101#define NSIG                    _NSIG
 102#define __old_sigset_t          sigset_t
 103#define __old_sigaction         sigaction
 104#define __old_sigaction32       sigaction32
 105#endif
 106
 107#ifndef __ASSEMBLY__
 108
 109typedef unsigned long __old_sigset_t;            /* at least 32 bits */
 110
 111typedef struct {
 112       unsigned long sig[_NSIG_WORDS];
 113} __new_sigset_t;
 114
 115/* A SunOS sigstack */
 116struct sigstack {
 117        /* XXX 32-bit pointers pinhead XXX */
 118        char *the_stack;
 119        int   cur_status;
 120};
 121
 122/* Sigvec flags */
 123#define _SV_SSTACK    1u    /* This signal handler should use sig-stack */
 124#define _SV_INTR      2u    /* Sig return should not restart system call */
 125#define _SV_RESET     4u    /* Set handler to SIG_DFL upon taken signal */
 126#define _SV_IGNCHILD  8u    /* Do not send SIGCHLD */
 127
 128/*
 129 * sa_flags values: SA_STACK is not currently supported, but will allow the
 130 * usage of signal stacks by using the (now obsolete) sa_restorer field in
 131 * the sigaction structure as a stack pointer. This is now possible due to
 132 * the changes in signal handling. LBT 010493.
 133 * SA_RESTART flag to get restarting signals (which were the default long ago)
 134 */
 135#define SA_NOCLDSTOP    _SV_IGNCHILD
 136#define SA_STACK        _SV_SSTACK
 137#define SA_ONSTACK      _SV_SSTACK
 138#define SA_RESTART      _SV_INTR
 139#define SA_ONESHOT      _SV_RESET
 140#define SA_NODEFER      0x20u
 141#define SA_NOCLDWAIT    0x100u
 142#define SA_SIGINFO      0x200u
 143
 144#define SA_NOMASK       SA_NODEFER
 145
 146#define SIG_BLOCK          0x01 /* for blocking signals */
 147#define SIG_UNBLOCK        0x02 /* for unblocking signals */
 148#define SIG_SETMASK        0x04 /* for setting the signal mask */
 149
 150#define MINSIGSTKSZ     4096
 151#define SIGSTKSZ        16384
 152
 153
 154#include <asm-generic/signal-defs.h>
 155
 156#ifndef __KERNEL__
 157struct __new_sigaction {
 158        __sighandler_t          sa_handler;
 159        unsigned long           sa_flags;
 160        __sigrestore_t          sa_restorer;  /* not used by Linux/SPARC yet */
 161        __new_sigset_t          sa_mask;
 162};
 163
 164struct __old_sigaction {
 165        __sighandler_t          sa_handler;
 166        __old_sigset_t          sa_mask;
 167        unsigned long           sa_flags;
 168        void                    (*sa_restorer)(void);  /* not used by Linux/SPARC yet */
 169};
 170#endif
 171
 172typedef struct sigaltstack {
 173        void                    __user *ss_sp;
 174        int                     ss_flags;
 175        size_t                  ss_size;
 176} stack_t;
 177
 178
 179#endif /* !(__ASSEMBLY__) */
 180
 181#endif /* _UAPI__SPARC_SIGNAL_H */
 182