consolidate kernel-side struct sigaction declarations
Al Viro [Mon, 26 Nov 2012 03:24:19 +0000 (22:24 -0500)]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

26 files changed:
arch/alpha/include/asm/signal.h
arch/arm/include/asm/signal.h
arch/avr32/include/asm/signal.h
arch/cris/include/asm/signal.h
arch/h8300/include/asm/signal.h
arch/ia64/include/asm/signal.h
arch/ia64/include/asm/unistd.h
arch/m32r/include/asm/signal.h
arch/m68k/include/asm/signal.h
arch/mips/include/asm/signal.h
arch/mips/include/uapi/asm/signal.h
arch/mn10300/include/asm/signal.h
arch/parisc/include/asm/signal.h
arch/powerpc/include/asm/signal.h
arch/powerpc/include/asm/syscalls.h
arch/powerpc/include/uapi/asm/signal.h
arch/s390/include/asm/signal.h
arch/sparc/include/asm/signal.h
arch/sparc/include/uapi/asm/signal.h
arch/sparc/kernel/systbls.h
arch/x86/include/asm/signal.h
arch/x86/include/uapi/asm/signal.h
arch/xtensa/include/asm/signal.h
include/linux/signal.h
include/linux/syscalls.h
include/uapi/asm-generic/signal.h

index 8c06bd1..963f049 100644 (file)
@@ -22,12 +22,6 @@ struct osf_sigaction {
        int             sa_flags;
 };
 
-struct sigaction {
-       __sighandler_t  sa_handler;
-       unsigned long   sa_flags;
-       sigset_t        sa_mask;        /* mask last for extensibility */
-};
-
 #define __ARCH_HAS_KA_RESTORER
 #include <asm/sigcontext.h>
 #endif
index 5805702..a5076b9 100644 (file)
@@ -23,12 +23,7 @@ struct old_sigaction {
        __sigrestore_t sa_restorer;
 };
 
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       __sigrestore_t sa_restorer;
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
+#define __ARCH_HAS_SA_RESTORER
 
 #include <asm/sigcontext.h>
 #endif
index c8858f0..d875eb6 100644 (file)
@@ -23,12 +23,7 @@ typedef struct {
        unsigned long sig[_NSIG_WORDS];
 } sigset_t;
 
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       __sigrestore_t sa_restorer;
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
+#define __ARCH_HAS_SA_RESTORER
 
 #include <asm/sigcontext.h>
 #undef __HAVE_ARCH_SIG_BITOPS
index b0cd904..b3650ab 100644 (file)
@@ -23,12 +23,7 @@ struct old_sigaction {
        void (*sa_restorer)(void);
 };
 
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       void (*sa_restorer)(void);
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
+#define __ARCH_HAS_SA_RESTORER
 
 #include <asm/sigcontext.h>
 
index c05f937..9b18a09 100644 (file)
@@ -23,12 +23,7 @@ struct old_sigaction {
        void (*sa_restorer)(void);
 };
 
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       void (*sa_restorer)(void);
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
+#define __ARCH_HAS_SA_RESTORER
 
 #include <asm/sigcontext.h>
 #undef __HAVE_ARCH_SIG_BITOPS
index a0d5f00..c62afa4 100644 (file)
@@ -26,12 +26,6 @@ typedef struct {
        unsigned long sig[_NSIG_WORDS];
 } sigset_t;
 
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
-
 #  include <asm/sigcontext.h>
 
 # endif /* !__ASSEMBLY__ */
index bfbb109..c827049 100644 (file)
@@ -47,7 +47,6 @@ asmlinkage unsigned long sys_mmap2(
                                int prot, int flags,
                                int fd, long pgoff);
 struct pt_regs;
-struct sigaction;
 asmlinkage long sys_ia64_pipe(void);
 
 /*
index 4699405..ed3ded6 100644 (file)
@@ -16,13 +16,7 @@ typedef struct {
        unsigned long sig[_NSIG_WORDS];
 } sigset_t;
 
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       __sigrestore_t sa_restorer;
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
-
+#define __ARCH_HAS_SA_RESTORER
 #include <asm/sigcontext.h>
 
 #undef __HAVE_ARCH_SIG_BITOPS
index 1edd5f3..c7b4fb1 100644 (file)
@@ -23,12 +23,7 @@ struct old_sigaction {
        __sigrestore_t sa_restorer;
 };
 
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       __sigrestore_t sa_restorer;
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
+#define __ARCH_HAS_SA_RESTORER
 
 #include <asm/sigcontext.h>
 
index cf4a080..197f636 100644 (file)
@@ -21,4 +21,6 @@
 #include <asm/sigcontext.h>
 #include <asm/siginfo.h>
 
+#define __ARCH_HAS_ODD_SIGACTION
+
 #endif /* _ASM_SIGNAL_H */
index 3c85fa0..6783c88 100644 (file)
@@ -96,11 +96,13 @@ typedef unsigned long old_sigset_t;         /* at least 32 bits */
 
 #include <asm-generic/signal-defs.h>
 
+#ifndef __KERNEL__
 struct sigaction {
        unsigned int    sa_flags;
        __sighandler_t  sa_handler;
        sigset_t        sa_mask;
 };
+#endif
 
 /* IRIX compatible stack_t  */
 typedef struct sigaltstack {
index d6f0654..288ade5 100644 (file)
@@ -33,12 +33,7 @@ struct old_sigaction {
        __sigrestore_t sa_restorer;
 };
 
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       __sigrestore_t sa_restorer;
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
+#define __ARCH_HAS_SA_RESTORER
 
 #include <asm/sigcontext.h>
 
index e42e05d..c8e4ec5 100644 (file)
@@ -24,11 +24,13 @@ typedef struct {
        unsigned long sig[_NSIG_WORDS];
 } sigset_t;
 
+#ifndef __KERNEL__
 struct sigaction {
        __sighandler_t sa_handler;
        unsigned long sa_flags;
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#endif
 
 #include <asm/sigcontext.h>
 
index a101637..fbe66c4 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _ASM_POWERPC_SIGNAL_H
 #define _ASM_POWERPC_SIGNAL_H
 
+#define __ARCH_HAS_SA_RESTORER
 #include <uapi/asm/signal.h>
 
 #endif /* _ASM_POWERPC_SIGNAL_H */
index 5c51659..2193653 100644 (file)
@@ -9,7 +9,6 @@
 
 struct pt_regs;
 struct rtas_args;
-struct sigaction;
 
 asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len,
                unsigned long prot, unsigned long flags,
index a1a6246..6defdd6 100644 (file)
@@ -97,12 +97,14 @@ struct old_sigaction {
        __sigrestore_t sa_restorer;
 };
 
+#ifndef __KERNEL__
 struct sigaction {
        __sighandler_t sa_handler;
        unsigned long sa_flags;
        __sigrestore_t sa_restorer;
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#endif
 
 typedef struct sigaltstack {
        void __user *ss_sp;
index 8985359..d26e30e 100644 (file)
@@ -28,11 +28,5 @@ struct old_sigaction {
         void (*sa_restorer)(void);
 };
 
-struct sigaction {
-        __sighandler_t sa_handler;
-        unsigned long sa_flags;
-        void (*sa_restorer)(void);
-        sigset_t sa_mask;               /* mask last for extensibility */
-};
-
+#define __ARCH_HAS_SA_RESTORER
 #endif
index e188185..c33ce3f 100644 (file)
@@ -22,6 +22,7 @@
 #define SA_STATIC_ALLOC         0x8000
 
 #define __ARCH_HAS_KA_RESTORER
+#define __ARCH_HAS_SA_RESTORER
 
 #endif /* !(__ASSEMBLY__) */
 #endif /* !(__SPARC_SIGNAL_H) */
index c4ffd6c..284836f 100644 (file)
@@ -153,12 +153,14 @@ struct sigstack {
 
 #include <asm-generic/signal-defs.h>
 
+#ifndef __KERNEL__
 struct __new_sigaction {
        __sighandler_t          sa_handler;
        unsigned long           sa_flags;
        __sigrestore_t          sa_restorer;  /* not used by Linux/SPARC yet */
        __new_sigset_t          sa_mask;
 };
+#endif
 
 struct __old_sigaction {
        __sighandler_t          sa_handler;
index 118759c..1dd89db 100644 (file)
@@ -3,8 +3,8 @@
 
 #include <linux/kernel.h>
 #include <linux/types.h>
+#include <linux/signal.h>
 #include <asm/utrap.h>
-#include <asm/signal.h>
 
 extern asmlinkage unsigned long sys_getpagesize(void);
 extern asmlinkage long sparc_pipe(struct pt_regs *regs);
index e7cf500..9bda822 100644 (file)
@@ -31,6 +31,9 @@ typedef sigset_t compat_sigset_t;
 #include <uapi/asm/signal.h>
 #ifndef __ASSEMBLY__
 extern void do_notify_resume(struct pt_regs *, void *, __u32);
+
+#define __ARCH_HAS_SA_RESTORER
+
 #ifdef __i386__
 struct old_sigaction {
        __sighandler_t sa_handler;
@@ -39,13 +42,6 @@ struct old_sigaction {
        __sigrestore_t sa_restorer;
 };
 
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       __sigrestore_t sa_restorer;
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
-
 #endif /* !__i386__ */
 #include <asm/sigcontext.h>
 
index e52443f..8264f47 100644 (file)
@@ -95,9 +95,9 @@ typedef unsigned long sigset_t;
 #ifndef __ASSEMBLY__
 
 
-#ifdef __i386__
 # ifndef __KERNEL__
 /* Here we must cater to libcs that poke about in kernel headers.  */
+#ifdef __i386__
 
 struct sigaction {
        union {
@@ -112,7 +112,6 @@ struct sigaction {
 #define sa_handler     _u._sa_handler
 #define sa_sigaction   _u._sa_sigaction
 
-# endif /* ! __KERNEL__ */
 #else /* __i386__ */
 
 struct sigaction {
@@ -123,6 +122,7 @@ struct sigaction {
 };
 
 #endif /* !__i386__ */
+# endif /* ! __KERNEL__ */
 
 typedef struct sigaltstack {
        void __user *ss_sp;
index fd63b8f..de169b4 100644 (file)
 #include <uapi/asm/signal.h>
 
 #ifndef __ASSEMBLY__
-struct sigaction {
-       __sighandler_t sa_handler;
-       unsigned long sa_flags;
-       void (*sa_restorer)(void);
-       sigset_t sa_mask;               /* mask last for extensibility */
-};
+#define __ARCH_HAS_SA_RESTORER
 
 #include <asm/sigcontext.h>
 
index 01451a1..0b6878e 100644 (file)
@@ -249,6 +249,20 @@ extern void __set_current_blocked(const sigset_t *);
 extern int show_unhandled_signals;
 extern int sigsuspend(sigset_t *);
 
+struct sigaction {
+#ifndef __ARCH_HAS_ODD_SIGACTION
+       __sighandler_t  sa_handler;
+       unsigned long   sa_flags;
+#else
+       unsigned long   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
index d2dd2f6..1c4938b 100644 (file)
@@ -68,11 +68,11 @@ struct sigaltstack;
 #include <linux/types.h>
 #include <linux/aio_abi.h>
 #include <linux/capability.h>
+#include <linux/signal.h>
 #include <linux/list.h>
 #include <linux/bug.h>
 #include <linux/sem.h>
 #include <asm/siginfo.h>
-#include <asm/signal.h>
 #include <linux/unistd.h>
 #include <linux/quota.h>
 #include <linux/key.h>
index 21e59f3..9df61f1 100644 (file)
@@ -93,6 +93,11 @@ typedef unsigned long old_sigset_t;
 
 #include <asm-generic/signal-defs.h>
 
+#ifdef SA_RESTORER
+#define __ARCH_HAS_SA_RESTORER
+#endif
+
+#ifndef __KERNEL__
 struct sigaction {
        __sighandler_t sa_handler;
        unsigned long sa_flags;
@@ -101,6 +106,7 @@ struct sigaction {
 #endif
        sigset_t sa_mask;               /* mask last for extensibility */
 };
+#endif
 
 typedef struct sigaltstack {
        void __user *ss_sp;