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 19e5171a9eSLaurent Vivier #define TARGET_SIGHUP 1 20e5171a9eSLaurent Vivier #define TARGET_SIGINT 2 21e5171a9eSLaurent Vivier #define TARGET_SIGQUIT 3 22e5171a9eSLaurent Vivier #define TARGET_SIGILL 4 23e5171a9eSLaurent Vivier #define TARGET_SIGTRAP 5 24e5171a9eSLaurent Vivier #define TARGET_SIGABRT 6 25e5171a9eSLaurent Vivier #define TARGET_SIGIOT 6 26e5171a9eSLaurent Vivier #define TARGET_SIGBUS 7 27e5171a9eSLaurent Vivier #define TARGET_SIGFPE 8 28e5171a9eSLaurent Vivier #define TARGET_SIGKILL 9 29e5171a9eSLaurent Vivier #define TARGET_SIGUSR1 10 30e5171a9eSLaurent Vivier #define TARGET_SIGSEGV 11 31e5171a9eSLaurent Vivier #define TARGET_SIGUSR2 12 32e5171a9eSLaurent Vivier #define TARGET_SIGPIPE 13 33e5171a9eSLaurent Vivier #define TARGET_SIGALRM 14 34e5171a9eSLaurent Vivier #define TARGET_SIGTERM 15 35e5171a9eSLaurent Vivier #define TARGET_SIGSTKFLT 16 36e5171a9eSLaurent Vivier #define TARGET_SIGCHLD 17 37e5171a9eSLaurent Vivier #define TARGET_SIGCONT 18 38e5171a9eSLaurent Vivier #define TARGET_SIGSTOP 19 39e5171a9eSLaurent Vivier #define TARGET_SIGTSTP 20 40e5171a9eSLaurent Vivier #define TARGET_SIGTTIN 21 41e5171a9eSLaurent Vivier #define TARGET_SIGTTOU 22 42e5171a9eSLaurent Vivier #define TARGET_SIGURG 23 43e5171a9eSLaurent Vivier #define TARGET_SIGXCPU 24 44e5171a9eSLaurent Vivier #define TARGET_SIGXFSZ 25 45e5171a9eSLaurent Vivier #define TARGET_SIGVTALRM 26 46e5171a9eSLaurent Vivier #define TARGET_SIGPROF 27 47e5171a9eSLaurent Vivier #define TARGET_SIGWINCH 28 48e5171a9eSLaurent Vivier #define TARGET_SIGIO 29 49e5171a9eSLaurent Vivier #define TARGET_SIGPWR 30 50e5171a9eSLaurent Vivier #define TARGET_SIGSYS 31 51e5171a9eSLaurent Vivier #define TARGET_SIGRTMIN 32 52e5171a9eSLaurent Vivier 53e5171a9eSLaurent Vivier #define TARGET_SIG_BLOCK 0 /* for blocking signals */ 54e5171a9eSLaurent Vivier #define TARGET_SIG_UNBLOCK 1 /* for unblocking signals */ 55e5171a9eSLaurent Vivier #define TARGET_SIG_SETMASK 2 /* for setting the signal mask */ 56fba08745SChen Gang 57*e068b57dSSong Gao /* this struct defines a stack used during syscall handling */ 58*e068b57dSSong Gao typedef struct target_sigaltstack { 59*e068b57dSSong Gao abi_ulong ss_sp; 60*e068b57dSSong Gao abi_int ss_flags; 61*e068b57dSSong Gao abi_ulong ss_size; 62*e068b57dSSong Gao } target_stack_t; 63*e068b57dSSong Gao 64*e068b57dSSong Gao /* 65*e068b57dSSong Gao * sigaltstack controls 66*e068b57dSSong Gao */ 67*e068b57dSSong Gao #define TARGET_SS_ONSTACK 1 68*e068b57dSSong Gao #define TARGET_SS_DISABLE 2 69*e068b57dSSong Gao 70*e068b57dSSong Gao #define TARGET_MINSIGSTKSZ 2048 71*e068b57dSSong Gao 72fba08745SChen Gang /* bit-flags */ 73fba08745SChen Gang #define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling */ 74fba08745SChen Gang /* mask for all SS_xxx flags */ 75fba08745SChen Gang #define TARGET_SS_FLAG_BITS TARGET_SS_AUTODISARM 76fba08745SChen Gang 77e5171a9eSLaurent Vivier #endif 78