/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _LINUX_SIGNAL_TYPES_H #define _LINUX_SIGNAL_TYPES_H /* * Basic signal handling related data type definitions: */ #include #include typedef struct kernel_siginfo { __SIGINFO; } kernel_siginfo_t; /* * Real Time signals may be queued. */ struct sigqueue { struct list_head list; int flags; kernel_siginfo_t info; struct user_struct *user; }; /* flags values. */ #define SIGQUEUE_PREALLOC 1 struct sigpending { struct list_head list; sigset_t signal; }; struct sigaction { #ifndef __ARCH_HAS_IRIX_SIGACTION __sighandler_t sa_handler; unsigned long sa_flags; #else unsigned int sa_flags; __sighandler_t sa_handler; #endif #ifdef __ARCH_HAS_SA_RESTORER __sigrestore_t sa_restorer; #endif sigset_t sa_mask; /* mask last for extensibility */ }; struct k_sigaction { struct sigaction sa; #ifdef __ARCH_HAS_KA_RESTORER __sigrestore_t ka_restorer; #endif }; #ifdef CONFIG_OLD_SIGACTION struct old_sigaction { __sighandler_t sa_handler; old_sigset_t sa_mask; unsigned long sa_flags; __sigrestore_t sa_restorer; }; #endif struct ksignal { struct k_sigaction ka; kernel_siginfo_t info; int sig; }; #endif /* _LINUX_SIGNAL_TYPES_H */