1d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#ifndef _UAPI_ASMARM_SIGNAL_H 2d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define _UAPI_ASMARM_SIGNAL_H 3d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 4d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#include <linux/types.h> 5d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 6d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* Avoid too many header ordering problems. */ 7d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Chengstruct siginfo; 8d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 9d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#ifndef __KERNEL__ 10d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* Here we must cater to libcs that poke about in kernel headers. */ 11d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 12d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define NSIG 32 13d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Chengtypedef unsigned long sigset_t; 14d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 15d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#endif /* __KERNEL__ */ 16d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 17d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGHUP 1 18d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGINT 2 19d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGQUIT 3 20d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGILL 4 21d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTRAP 5 22d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGABRT 6 23d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGIOT 6 24d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGBUS 7 25d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGFPE 8 26d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGKILL 9 27d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGUSR1 10 28d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSEGV 11 29d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGUSR2 12 30d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGPIPE 13 31d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGALRM 14 32d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTERM 15 33d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSTKFLT 16 34d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGCHLD 17 35d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGCONT 18 36d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSTOP 19 37d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTSTP 20 38d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTTIN 21 39d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTTOU 22 40d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGURG 23 41d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGXCPU 24 42d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGXFSZ 25 43d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGVTALRM 26 44d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGPROF 27 45d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGWINCH 28 46d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGIO 29 47d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGPOLL SIGIO 48d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* 49d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGLOST 29 50d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng*/ 51d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGPWR 30 52d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSYS 31 53d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGUNUSED 31 54d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 55d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* These should not be considered constants from userland. */ 56d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGRTMIN 32 57d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGRTMAX _NSIG 58d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 59d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSWI 32 60d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 61d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* 62d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_FLAGS values: 63d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * 64d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. 65d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. 66d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_SIGINFO deliver the signal with SIGINFO structs 67d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_THIRTYTWO delivers the signal in 32-bit mode, even if the task 68d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * is running in 26-bit. 69d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_ONSTACK allows alternate signal stacks (see sigaltstack(2)). 70d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_RESTART flag to get restarting signals (which were the default long ago) 71d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_NODEFER prevents the current signal from being masked in the handler. 72d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_RESETHAND clears the handler when the signal is delivered. 73d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * 74d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single 75d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * Unix names RESETHAND and NODEFER respectively. 76d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng */ 77d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_NOCLDSTOP 0x00000001 78d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_NOCLDWAIT 0x00000002 79d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_SIGINFO 0x00000004 80d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_THIRTYTWO 0x02000000 81d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_RESTORER 0x04000000 82d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_ONSTACK 0x08000000 83d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_RESTART 0x10000000 84d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_NODEFER 0x40000000 85d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_RESETHAND 0x80000000 86d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 87d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_NOMASK SA_NODEFER 88d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_ONESHOT SA_RESETHAND 89d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 90d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define MINSIGSTKSZ 2048 91d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSTKSZ 8192 92d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 93d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#include <asm-generic/signal-defs.h> 94d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 95d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#ifndef __KERNEL__ 96d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* Here we must cater to libcs that poke about in kernel headers. */ 97d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 98d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Chengstruct sigaction { 99d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng union { 100d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng __sighandler_t _sa_handler; 101d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng void (*_sa_sigaction)(int, struct siginfo *, void *); 102d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng } _u; 103d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng sigset_t sa_mask; 104d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng unsigned long sa_flags; 105d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng void (*sa_restorer)(void); 106d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng}; 107d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 108d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define sa_handler _u._sa_handler 109d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define sa_sigaction _u._sa_sigaction 110d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 111d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#endif /* __KERNEL__ */ 112d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 113d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Chengtypedef struct sigaltstack { 114d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng void __user *ss_sp; 115d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng int ss_flags; 116d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng size_t ss_size; 117d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng} stack_t; 118d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 119d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng 120d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#endif /* _UAPI_ASMARM_SIGNAL_H */ 121