1 #ifndef _LINUX_SIGNAL_TYPES_H 2 #define _LINUX_SIGNAL_TYPES_H 3 4 /* 5 * Basic signal handling related data type definitions: 6 */ 7 8 #include <linux/list.h> 9 #include <uapi/linux/signal.h> 10 11 /* 12 * Real Time signals may be queued. 13 */ 14 15 struct sigqueue { 16 struct list_head list; 17 int flags; 18 siginfo_t info; 19 struct user_struct *user; 20 }; 21 22 /* flags values. */ 23 #define SIGQUEUE_PREALLOC 1 24 25 struct sigpending { 26 struct list_head list; 27 sigset_t signal; 28 }; 29 30 struct sigaction { 31 #ifndef __ARCH_HAS_IRIX_SIGACTION 32 __sighandler_t sa_handler; 33 unsigned long sa_flags; 34 #else 35 unsigned int sa_flags; 36 __sighandler_t sa_handler; 37 #endif 38 #ifdef __ARCH_HAS_SA_RESTORER 39 __sigrestore_t sa_restorer; 40 #endif 41 sigset_t sa_mask; /* mask last for extensibility */ 42 }; 43 44 struct k_sigaction { 45 struct sigaction sa; 46 #ifdef __ARCH_HAS_KA_RESTORER 47 __sigrestore_t ka_restorer; 48 #endif 49 }; 50 51 #ifdef CONFIG_OLD_SIGACTION 52 struct old_sigaction { 53 __sighandler_t sa_handler; 54 old_sigset_t sa_mask; 55 unsigned long sa_flags; 56 __sigrestore_t sa_restorer; 57 }; 58 #endif 59 60 struct ksignal { 61 struct k_sigaction ka; 62 siginfo_t info; 63 int sig; 64 }; 65 66 #endif /* _LINUX_SIGNAL_TYPES_H */ 67