aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/signal_types.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2017-02-03 23:43:50 +0100
committerIngo Molnar <mingo@kernel.org>2017-03-03 01:43:48 +0100
commit76960dbf9b235b957d9d730be2c6c2a70f709026 (patch)
tree30f16c63009de1ec034051bd459e8b3cfbb96dd5 /include/linux/signal_types.h
parentsched/headers: Move the 'root_task_group' declaration to <linux/sched/autogroup.h> (diff)
downloadlinux-dev-76960dbf9b235b957d9d730be2c6c2a70f709026.tar.xz
linux-dev-76960dbf9b235b957d9d730be2c6c2a70f709026.zip
signals: Move signal data types from <linux/signal.h> to <linux/signal_types.h>
Separate out just the pure data types - sched.h will be able to use this reduced size header. Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/signal_types.h')
-rw-r--r--include/linux/signal_types.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/include/linux/signal_types.h b/include/linux/signal_types.h
index 28799c88f490..16d862a3d8f3 100644
--- a/include/linux/signal_types.h
+++ b/include/linux/signal_types.h
@@ -1,7 +1,66 @@
#ifndef _LINUX_SIGNAL_TYPES_H
#define _LINUX_SIGNAL_TYPES_H
+/*
+ * Basic signal handling related data type definitions:
+ */
+
#include <linux/list.h>
#include <uapi/linux/signal.h>
+/*
+ * Real Time signals may be queued.
+ */
+
+struct sigqueue {
+ struct list_head list;
+ int flags;
+ 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;
+ siginfo_t info;
+ int sig;
+};
+
#endif /* _LINUX_SIGNAL_TYPES_H */