1e5171a9eSLaurent Vivier /* 2e5171a9eSLaurent Vivier * This program is free software; you can redistribute it and/or modify 3e5171a9eSLaurent Vivier * it under the terms of the GNU General Public License version 2 as 4e5171a9eSLaurent Vivier * published by the Free Software Foundation, or (at your option) any 5e5171a9eSLaurent Vivier * later version. See the COPYING file in the top-level directory. 6e5171a9eSLaurent Vivier */ 7e5171a9eSLaurent Vivier 8e5171a9eSLaurent Vivier #ifndef GENERIC_SIGNAL_H 9e5171a9eSLaurent Vivier #define GENERIC_SIGNAL_H 10e5171a9eSLaurent Vivier 11e5171a9eSLaurent Vivier #define TARGET_SA_NOCLDSTOP 0x00000001 12e5171a9eSLaurent Vivier #define TARGET_SA_NOCLDWAIT 0x00000002 /* not supported yet */ 13e5171a9eSLaurent Vivier #define TARGET_SA_SIGINFO 0x00000004 14e5171a9eSLaurent Vivier #define TARGET_SA_ONSTACK 0x08000000 15e5171a9eSLaurent Vivier #define TARGET_SA_RESTART 0x10000000 16e5171a9eSLaurent Vivier #define TARGET_SA_NODEFER 0x40000000 17e5171a9eSLaurent Vivier #define TARGET_SA_RESETHAND 0x80000000 18e5171a9eSLaurent Vivier #define TARGET_SA_RESTORER 0x04000000 19e5171a9eSLaurent Vivier 20e5171a9eSLaurent Vivier #define TARGET_SIGHUP 1 21e5171a9eSLaurent Vivier #define TARGET_SIGINT 2 22e5171a9eSLaurent Vivier #define TARGET_SIGQUIT 3 23e5171a9eSLaurent Vivier #define TARGET_SIGILL 4 24e5171a9eSLaurent Vivier #define TARGET_SIGTRAP 5 25e5171a9eSLaurent Vivier #define TARGET_SIGABRT 6 26e5171a9eSLaurent Vivier #define TARGET_SIGIOT 6 27e5171a9eSLaurent Vivier #define TARGET_SIGBUS 7 28e5171a9eSLaurent Vivier #define TARGET_SIGFPE 8 29e5171a9eSLaurent Vivier #define TARGET_SIGKILL 9 30e5171a9eSLaurent Vivier #define TARGET_SIGUSR1 10 31e5171a9eSLaurent Vivier #define TARGET_SIGSEGV 11 32e5171a9eSLaurent Vivier #define TARGET_SIGUSR2 12 33e5171a9eSLaurent Vivier #define TARGET_SIGPIPE 13 34e5171a9eSLaurent Vivier #define TARGET_SIGALRM 14 35e5171a9eSLaurent Vivier #define TARGET_SIGTERM 15 36e5171a9eSLaurent Vivier #define TARGET_SIGSTKFLT 16 37e5171a9eSLaurent Vivier #define TARGET_SIGCHLD 17 38e5171a9eSLaurent Vivier #define TARGET_SIGCONT 18 39e5171a9eSLaurent Vivier #define TARGET_SIGSTOP 19 40e5171a9eSLaurent Vivier #define TARGET_SIGTSTP 20 41e5171a9eSLaurent Vivier #define TARGET_SIGTTIN 21 42e5171a9eSLaurent Vivier #define TARGET_SIGTTOU 22 43e5171a9eSLaurent Vivier #define TARGET_SIGURG 23 44e5171a9eSLaurent Vivier #define TARGET_SIGXCPU 24 45e5171a9eSLaurent Vivier #define TARGET_SIGXFSZ 25 46e5171a9eSLaurent Vivier #define TARGET_SIGVTALRM 26 47e5171a9eSLaurent Vivier #define TARGET_SIGPROF 27 48e5171a9eSLaurent Vivier #define TARGET_SIGWINCH 28 49e5171a9eSLaurent Vivier #define TARGET_SIGIO 29 50e5171a9eSLaurent Vivier #define TARGET_SIGPWR 30 51e5171a9eSLaurent Vivier #define TARGET_SIGSYS 31 52e5171a9eSLaurent Vivier #define TARGET_SIGRTMIN 32 53e5171a9eSLaurent Vivier 54e5171a9eSLaurent Vivier #define TARGET_SIG_BLOCK 0 /* for blocking signals */ 55e5171a9eSLaurent Vivier #define TARGET_SIG_UNBLOCK 1 /* for unblocking signals */ 56e5171a9eSLaurent Vivier #define TARGET_SIG_SETMASK 2 /* for setting the signal mask */ 57fba08745SChen Gang 58*e068b57dSSong Gao /* this struct defines a stack used during syscall handling */ 59*e068b57dSSong Gao typedef struct target_sigaltstack { 60*e068b57dSSong Gao abi_ulong ss_sp; 61*e068b57dSSong Gao abi_int ss_flags; 62*e068b57dSSong Gao abi_ulong ss_size; 63*e068b57dSSong Gao } target_stack_t; 64*e068b57dSSong Gao 65*e068b57dSSong Gao /* 66*e068b57dSSong Gao * sigaltstack controls 67*e068b57dSSong Gao */ 68*e068b57dSSong Gao #define TARGET_SS_ONSTACK 1 69*e068b57dSSong Gao #define TARGET_SS_DISABLE 2 70*e068b57dSSong Gao 71*e068b57dSSong Gao #define TARGET_MINSIGSTKSZ 2048 72*e068b57dSSong Gao #define TARGET_SIGSTKSZ 8192 73*e068b57dSSong Gao 74fba08745SChen Gang /* bit-flags */ 75fba08745SChen Gang #define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling */ 76fba08745SChen Gang /* mask for all SS_xxx flags */ 77fba08745SChen Gang #define TARGET_SS_FLAG_BITS TARGET_SS_AUTODISARM 78fba08745SChen Gang 79e5171a9eSLaurent Vivier #endif 80