1af170c5061dd78512c469e6e2d211980cdb2c193David Howells#ifndef _UAPI_ASM_X86_SIGNAL_H 2af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define _UAPI_ASM_X86_SIGNAL_H 3af170c5061dd78512c469e6e2d211980cdb2c193David Howells 4af170c5061dd78512c469e6e2d211980cdb2c193David Howells#ifndef __ASSEMBLY__ 5af170c5061dd78512c469e6e2d211980cdb2c193David Howells#include <linux/types.h> 6af170c5061dd78512c469e6e2d211980cdb2c193David Howells#include <linux/time.h> 7af170c5061dd78512c469e6e2d211980cdb2c193David Howells#include <linux/compiler.h> 8af170c5061dd78512c469e6e2d211980cdb2c193David Howells 9af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* Avoid too many header ordering problems. */ 10af170c5061dd78512c469e6e2d211980cdb2c193David Howellsstruct siginfo; 11af170c5061dd78512c469e6e2d211980cdb2c193David Howells 12af170c5061dd78512c469e6e2d211980cdb2c193David Howells#ifndef __KERNEL__ 13af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* Here we must cater to libcs that poke about in kernel headers. */ 14af170c5061dd78512c469e6e2d211980cdb2c193David Howells 15af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define NSIG 32 16af170c5061dd78512c469e6e2d211980cdb2c193David Howellstypedef unsigned long sigset_t; 17af170c5061dd78512c469e6e2d211980cdb2c193David Howells 18af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* __KERNEL__ */ 19af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* __ASSEMBLY__ */ 20af170c5061dd78512c469e6e2d211980cdb2c193David Howells 21af170c5061dd78512c469e6e2d211980cdb2c193David Howells 22af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGHUP 1 23af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGINT 2 24af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGQUIT 3 25af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGILL 4 26af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTRAP 5 27af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGABRT 6 28af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGIOT 6 29af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGBUS 7 30af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGFPE 8 31af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGKILL 9 32af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGUSR1 10 33af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSEGV 11 34af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGUSR2 12 35af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGPIPE 13 36af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGALRM 14 37af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTERM 15 38af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSTKFLT 16 39af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGCHLD 17 40af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGCONT 18 41af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSTOP 19 42af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTSTP 20 43af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTTIN 21 44af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTTOU 22 45af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGURG 23 46af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGXCPU 24 47af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGXFSZ 25 48af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGVTALRM 26 49af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGPROF 27 50af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGWINCH 28 51af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGIO 29 52af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGPOLL SIGIO 53af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* 54af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGLOST 29 55af170c5061dd78512c469e6e2d211980cdb2c193David Howells*/ 56af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGPWR 30 57af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSYS 31 58af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGUNUSED 31 59af170c5061dd78512c469e6e2d211980cdb2c193David Howells 60af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* These should not be considered constants from userland. */ 61af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGRTMIN 32 62af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGRTMAX _NSIG 63af170c5061dd78512c469e6e2d211980cdb2c193David Howells 64af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* 65af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_FLAGS values: 66af170c5061dd78512c469e6e2d211980cdb2c193David Howells * 67af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_ONSTACK indicates that a registered stack_t will be used. 68af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_RESTART flag to get restarting signals (which were the default long ago) 69af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. 70af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_RESETHAND clears the handler when the signal is delivered. 71af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. 72af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_NODEFER prevents the current signal from being masked in the handler. 73af170c5061dd78512c469e6e2d211980cdb2c193David Howells * 74af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single 75af170c5061dd78512c469e6e2d211980cdb2c193David Howells * Unix names RESETHAND and NODEFER respectively. 76af170c5061dd78512c469e6e2d211980cdb2c193David Howells */ 77af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_NOCLDSTOP 0x00000001u 78af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_NOCLDWAIT 0x00000002u 79af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_SIGINFO 0x00000004u 80af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_ONSTACK 0x08000000u 81af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_RESTART 0x10000000u 82af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_NODEFER 0x40000000u 83af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_RESETHAND 0x80000000u 84af170c5061dd78512c469e6e2d211980cdb2c193David Howells 85af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_NOMASK SA_NODEFER 86af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_ONESHOT SA_RESETHAND 87af170c5061dd78512c469e6e2d211980cdb2c193David Howells 88af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_RESTORER 0x04000000 89af170c5061dd78512c469e6e2d211980cdb2c193David Howells 90af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define MINSIGSTKSZ 2048 91af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSTKSZ 8192 92af170c5061dd78512c469e6e2d211980cdb2c193David Howells 93af170c5061dd78512c469e6e2d211980cdb2c193David Howells#include <asm-generic/signal-defs.h> 94af170c5061dd78512c469e6e2d211980cdb2c193David Howells 95af170c5061dd78512c469e6e2d211980cdb2c193David Howells#ifndef __ASSEMBLY__ 96af170c5061dd78512c469e6e2d211980cdb2c193David Howells 97af170c5061dd78512c469e6e2d211980cdb2c193David Howells 98af170c5061dd78512c469e6e2d211980cdb2c193David Howells# ifndef __KERNEL__ 99af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* Here we must cater to libcs that poke about in kernel headers. */ 100574c4866e33d648520a8bd5bf6f573ea6e554e88Al Viro#ifdef __i386__ 101af170c5061dd78512c469e6e2d211980cdb2c193David Howells 102af170c5061dd78512c469e6e2d211980cdb2c193David Howellsstruct sigaction { 103af170c5061dd78512c469e6e2d211980cdb2c193David Howells union { 104af170c5061dd78512c469e6e2d211980cdb2c193David Howells __sighandler_t _sa_handler; 105af170c5061dd78512c469e6e2d211980cdb2c193David Howells void (*_sa_sigaction)(int, struct siginfo *, void *); 106af170c5061dd78512c469e6e2d211980cdb2c193David Howells } _u; 107af170c5061dd78512c469e6e2d211980cdb2c193David Howells sigset_t sa_mask; 108af170c5061dd78512c469e6e2d211980cdb2c193David Howells unsigned long sa_flags; 109af170c5061dd78512c469e6e2d211980cdb2c193David Howells void (*sa_restorer)(void); 110af170c5061dd78512c469e6e2d211980cdb2c193David Howells}; 111af170c5061dd78512c469e6e2d211980cdb2c193David Howells 112af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define sa_handler _u._sa_handler 113af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define sa_sigaction _u._sa_sigaction 114af170c5061dd78512c469e6e2d211980cdb2c193David Howells 115af170c5061dd78512c469e6e2d211980cdb2c193David Howells#else /* __i386__ */ 116af170c5061dd78512c469e6e2d211980cdb2c193David Howells 117af170c5061dd78512c469e6e2d211980cdb2c193David Howellsstruct sigaction { 118af170c5061dd78512c469e6e2d211980cdb2c193David Howells __sighandler_t sa_handler; 119af170c5061dd78512c469e6e2d211980cdb2c193David Howells unsigned long sa_flags; 120af170c5061dd78512c469e6e2d211980cdb2c193David Howells __sigrestore_t sa_restorer; 121af170c5061dd78512c469e6e2d211980cdb2c193David Howells sigset_t sa_mask; /* mask last for extensibility */ 122af170c5061dd78512c469e6e2d211980cdb2c193David Howells}; 123af170c5061dd78512c469e6e2d211980cdb2c193David Howells 124af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* !__i386__ */ 125574c4866e33d648520a8bd5bf6f573ea6e554e88Al Viro# endif /* ! __KERNEL__ */ 126af170c5061dd78512c469e6e2d211980cdb2c193David Howells 127af170c5061dd78512c469e6e2d211980cdb2c193David Howellstypedef struct sigaltstack { 128af170c5061dd78512c469e6e2d211980cdb2c193David Howells void __user *ss_sp; 129af170c5061dd78512c469e6e2d211980cdb2c193David Howells int ss_flags; 130af170c5061dd78512c469e6e2d211980cdb2c193David Howells size_t ss_size; 131af170c5061dd78512c469e6e2d211980cdb2c193David Howells} stack_t; 132af170c5061dd78512c469e6e2d211980cdb2c193David Howells 133af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* __ASSEMBLY__ */ 134af170c5061dd78512c469e6e2d211980cdb2c193David Howells 135af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* _UAPI_ASM_X86_SIGNAL_H */ 136