1 /* 2 * S390 version 3 * 4 * Derived from "include/asm-i386/signal.h" 5 */ 6 7 #ifndef _ASMS390_SIGNAL_H 8 #define _ASMS390_SIGNAL_H 9 10 #include <linux/types.h> 11 #include <linux/time.h> 12 13 /* Avoid too many header ordering problems. */ 14 struct siginfo; 15 struct pt_regs; 16 17 #ifdef __KERNEL__ 18 /* Most things should be clean enough to redefine this at will, if care 19 is taken to make libc match. */ 20 #include <asm/sigcontext.h> 21 #define _NSIG _SIGCONTEXT_NSIG 22 #define _NSIG_BPW _SIGCONTEXT_NSIG_BPW 23 #define _NSIG_WORDS _SIGCONTEXT_NSIG_WORDS 24 25 typedef unsigned long old_sigset_t; /* at least 32 bits */ 26 27 typedef struct { 28 unsigned long sig[_NSIG_WORDS]; 29 } sigset_t; 30 31 #else 32 /* Here we must cater to libcs that poke about in kernel headers. */ 33 34 #define NSIG 32 35 typedef unsigned long sigset_t; 36 37 #endif /* __KERNEL__ */ 38 39 #define SIGHUP 1 40 #define SIGINT 2 41 #define SIGQUIT 3 42 #define SIGILL 4 43 #define SIGTRAP 5 44 #define SIGABRT 6 45 #define SIGIOT 6 46 #define SIGBUS 7 47 #define SIGFPE 8 48 #define SIGKILL 9 49 #define SIGUSR1 10 50 #define SIGSEGV 11 51 #define SIGUSR2 12 52 #define SIGPIPE 13 53 #define SIGALRM 14 54 #define SIGTERM 15 55 #define SIGSTKFLT 16 56 #define SIGCHLD 17 57 #define SIGCONT 18 58 #define SIGSTOP 19 59 #define SIGTSTP 20 60 #define SIGTTIN 21 61 #define SIGTTOU 22 62 #define SIGURG 23 63 #define SIGXCPU 24 64 #define SIGXFSZ 25 65 #define SIGVTALRM 26 66 #define SIGPROF 27 67 #define SIGWINCH 28 68 #define SIGIO 29 69 #define SIGPOLL SIGIO 70 /* 71 #define SIGLOST 29 72 */ 73 #define SIGPWR 30 74 #define SIGSYS 31 75 #define SIGUNUSED 31 76 77 /* These should not be considered constants from userland. */ 78 #define SIGRTMIN 32 79 #define SIGRTMAX _NSIG 80 81 /* 82 * SA_FLAGS values: 83 * 84 * SA_ONSTACK indicates that a registered stack_t will be used. 85 * SA_RESTART flag to get restarting signals (which were the default long ago) 86 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. 87 * SA_RESETHAND clears the handler when the signal is delivered. 88 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. 89 * SA_NODEFER prevents the current signal from being masked in the handler. 90 * 91 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single 92 * Unix names RESETHAND and NODEFER respectively. 93 */ 94 #define SA_NOCLDSTOP 0x00000001 95 #define SA_NOCLDWAIT 0x00000002 96 #define SA_SIGINFO 0x00000004 97 #define SA_ONSTACK 0x08000000 98 #define SA_RESTART 0x10000000 99 #define SA_NODEFER 0x40000000 100 #define SA_RESETHAND 0x80000000 101 102 #define SA_NOMASK SA_NODEFER 103 #define SA_ONESHOT SA_RESETHAND 104 105 #define SA_RESTORER 0x04000000 106 107 /* 108 * sigaltstack controls 109 */ 110 #define SS_ONSTACK 1 111 #define SS_DISABLE 2 112 113 #define MINSIGSTKSZ 2048 114 #define SIGSTKSZ 8192 115 116 #include <asm-generic/signal-defs.h> 117 118 #ifdef __KERNEL__ 119 struct old_sigaction { 120 __sighandler_t sa_handler; 121 old_sigset_t sa_mask; 122 unsigned long sa_flags; 123 void (*sa_restorer)(void); 124 }; 125 126 struct sigaction { 127 __sighandler_t sa_handler; 128 unsigned long sa_flags; 129 void (*sa_restorer)(void); 130 sigset_t sa_mask; /* mask last for extensibility */ 131 }; 132 133 struct k_sigaction { 134 struct sigaction sa; 135 }; 136 137 #define ptrace_signal_deliver(regs, cookie) do { } while (0) 138 139 #else 140 /* Here we must cater to libcs that poke about in kernel headers. */ 141 142 struct sigaction { 143 union { 144 __sighandler_t _sa_handler; 145 void (*_sa_sigaction)(int, struct siginfo *, void *); 146 } _u; 147 #ifndef __s390x__ /* lovely */ 148 sigset_t sa_mask; 149 unsigned long sa_flags; 150 void (*sa_restorer)(void); 151 #else /* __s390x__ */ 152 unsigned long sa_flags; 153 void (*sa_restorer)(void); 154 sigset_t sa_mask; 155 #endif /* __s390x__ */ 156 }; 157 158 #define sa_handler _u._sa_handler 159 #define sa_sigaction _u._sa_sigaction 160 161 #endif /* __KERNEL__ */ 162 163 typedef struct sigaltstack { 164 void __user *ss_sp; 165 int ss_flags; 166 size_t ss_size; 167 } stack_t; 168 169 170 #endif 171