at v4.13 1.1 kB view raw
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 15struct 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 25struct sigpending { 26 struct list_head list; 27 sigset_t signal; 28}; 29 30struct 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 44struct 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 52struct 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 60struct ksignal { 61 struct k_sigaction ka; 62 siginfo_t info; 63 int sig; 64}; 65 66#endif /* _LINUX_SIGNAL_TYPES_H */