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