diff options
26 files changed, 48 insertions, 81 deletions
diff --git a/arch/alpha/include/asm/signal.h b/arch/alpha/include/asm/signal.h index 8c06bd1dfffc..963f0494dca7 100644 --- a/arch/alpha/include/asm/signal.h +++ b/arch/alpha/include/asm/signal.h | |||
@@ -22,12 +22,6 @@ struct osf_sigaction { | |||
22 | int sa_flags; | 22 | int sa_flags; |
23 | }; | 23 | }; |
24 | 24 | ||
25 | struct sigaction { | ||
26 | __sighandler_t sa_handler; | ||
27 | unsigned long sa_flags; | ||
28 | sigset_t sa_mask; /* mask last for extensibility */ | ||
29 | }; | ||
30 | |||
31 | #define __ARCH_HAS_KA_RESTORER | 25 | #define __ARCH_HAS_KA_RESTORER |
32 | #include <asm/sigcontext.h> | 26 | #include <asm/sigcontext.h> |
33 | #endif | 27 | #endif |
diff --git a/arch/arm/include/asm/signal.h b/arch/arm/include/asm/signal.h index 58057023ff60..a5076b9bd463 100644 --- a/arch/arm/include/asm/signal.h +++ b/arch/arm/include/asm/signal.h | |||
@@ -23,12 +23,7 @@ struct old_sigaction { | |||
23 | __sigrestore_t sa_restorer; | 23 | __sigrestore_t sa_restorer; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | struct sigaction { | 26 | #define __ARCH_HAS_SA_RESTORER |
27 | __sighandler_t sa_handler; | ||
28 | unsigned long sa_flags; | ||
29 | __sigrestore_t sa_restorer; | ||
30 | sigset_t sa_mask; /* mask last for extensibility */ | ||
31 | }; | ||
32 | 27 | ||
33 | #include <asm/sigcontext.h> | 28 | #include <asm/sigcontext.h> |
34 | #endif | 29 | #endif |
diff --git a/arch/avr32/include/asm/signal.h b/arch/avr32/include/asm/signal.h index c8858f0cef3d..d875eb6a3f3c 100644 --- a/arch/avr32/include/asm/signal.h +++ b/arch/avr32/include/asm/signal.h | |||
@@ -23,12 +23,7 @@ typedef struct { | |||
23 | unsigned long sig[_NSIG_WORDS]; | 23 | unsigned long sig[_NSIG_WORDS]; |
24 | } sigset_t; | 24 | } sigset_t; |
25 | 25 | ||
26 | struct sigaction { | 26 | #define __ARCH_HAS_SA_RESTORER |
27 | __sighandler_t sa_handler; | ||
28 | unsigned long sa_flags; | ||
29 | __sigrestore_t sa_restorer; | ||
30 | sigset_t sa_mask; /* mask last for extensibility */ | ||
31 | }; | ||
32 | 27 | ||
33 | #include <asm/sigcontext.h> | 28 | #include <asm/sigcontext.h> |
34 | #undef __HAVE_ARCH_SIG_BITOPS | 29 | #undef __HAVE_ARCH_SIG_BITOPS |
diff --git a/arch/cris/include/asm/signal.h b/arch/cris/include/asm/signal.h index b0cd904ecd8a..b3650ab2c320 100644 --- a/arch/cris/include/asm/signal.h +++ b/arch/cris/include/asm/signal.h | |||
@@ -23,12 +23,7 @@ struct old_sigaction { | |||
23 | void (*sa_restorer)(void); | 23 | void (*sa_restorer)(void); |
24 | }; | 24 | }; |
25 | 25 | ||
26 | struct sigaction { | 26 | #define __ARCH_HAS_SA_RESTORER |
27 | __sighandler_t sa_handler; | ||
28 | unsigned long sa_flags; | ||
29 | void (*sa_restorer)(void); | ||
30 | sigset_t sa_mask; /* mask last for extensibility */ | ||
31 | }; | ||
32 | 27 | ||
33 | #include <asm/sigcontext.h> | 28 | #include <asm/sigcontext.h> |
34 | 29 | ||
diff --git a/arch/h8300/include/asm/signal.h b/arch/h8300/include/asm/signal.h index c05f937bb492..9b18a0959461 100644 --- a/arch/h8300/include/asm/signal.h +++ b/arch/h8300/include/asm/signal.h | |||
@@ -23,12 +23,7 @@ struct old_sigaction { | |||
23 | void (*sa_restorer)(void); | 23 | void (*sa_restorer)(void); |
24 | }; | 24 | }; |
25 | 25 | ||
26 | struct sigaction { | 26 | #define __ARCH_HAS_SA_RESTORER |
27 | __sighandler_t sa_handler; | ||
28 | unsigned long sa_flags; | ||
29 | void (*sa_restorer)(void); | ||
30 | sigset_t sa_mask; /* mask last for extensibility */ | ||
31 | }; | ||
32 | 27 | ||
33 | #include <asm/sigcontext.h> | 28 | #include <asm/sigcontext.h> |
34 | #undef __HAVE_ARCH_SIG_BITOPS | 29 | #undef __HAVE_ARCH_SIG_BITOPS |
diff --git a/arch/ia64/include/asm/signal.h b/arch/ia64/include/asm/signal.h index a0d5f00ec8db..c62afa4a0dc2 100644 --- a/arch/ia64/include/asm/signal.h +++ b/arch/ia64/include/asm/signal.h | |||
@@ -26,12 +26,6 @@ typedef struct { | |||
26 | unsigned long sig[_NSIG_WORDS]; | 26 | unsigned long sig[_NSIG_WORDS]; |
27 | } sigset_t; | 27 | } sigset_t; |
28 | 28 | ||
29 | struct sigaction { | ||
30 | __sighandler_t sa_handler; | ||
31 | unsigned long sa_flags; | ||
32 | sigset_t sa_mask; /* mask last for extensibility */ | ||
33 | }; | ||
34 | |||
35 | # include <asm/sigcontext.h> | 29 | # include <asm/sigcontext.h> |
36 | 30 | ||
37 | # endif /* !__ASSEMBLY__ */ | 31 | # endif /* !__ASSEMBLY__ */ |
diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h index bfbb109458be..c827049eb62c 100644 --- a/arch/ia64/include/asm/unistd.h +++ b/arch/ia64/include/asm/unistd.h | |||
@@ -47,7 +47,6 @@ asmlinkage unsigned long sys_mmap2( | |||
47 | int prot, int flags, | 47 | int prot, int flags, |
48 | int fd, long pgoff); | 48 | int fd, long pgoff); |
49 | struct pt_regs; | 49 | struct pt_regs; |
50 | struct sigaction; | ||
51 | asmlinkage long sys_ia64_pipe(void); | 50 | asmlinkage long sys_ia64_pipe(void); |
52 | 51 | ||
53 | /* | 52 | /* |
diff --git a/arch/m32r/include/asm/signal.h b/arch/m32r/include/asm/signal.h index 4699405f9f82..ed3ded6601e8 100644 --- a/arch/m32r/include/asm/signal.h +++ b/arch/m32r/include/asm/signal.h | |||
@@ -16,13 +16,7 @@ typedef struct { | |||
16 | unsigned long sig[_NSIG_WORDS]; | 16 | unsigned long sig[_NSIG_WORDS]; |
17 | } sigset_t; | 17 | } sigset_t; |
18 | 18 | ||
19 | struct sigaction { | 19 | #define __ARCH_HAS_SA_RESTORER |
20 | __sighandler_t sa_handler; | ||
21 | unsigned long sa_flags; | ||
22 | __sigrestore_t sa_restorer; | ||
23 | sigset_t sa_mask; /* mask last for extensibility */ | ||
24 | }; | ||
25 | |||
26 | #include <asm/sigcontext.h> | 20 | #include <asm/sigcontext.h> |
27 | 21 | ||
28 | #undef __HAVE_ARCH_SIG_BITOPS | 22 | #undef __HAVE_ARCH_SIG_BITOPS |
diff --git a/arch/m68k/include/asm/signal.h b/arch/m68k/include/asm/signal.h index 1edd5f358c0f..c7b4fb1fa14d 100644 --- a/arch/m68k/include/asm/signal.h +++ b/arch/m68k/include/asm/signal.h | |||
@@ -23,12 +23,7 @@ struct old_sigaction { | |||
23 | __sigrestore_t sa_restorer; | 23 | __sigrestore_t sa_restorer; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | struct sigaction { | 26 | #define __ARCH_HAS_SA_RESTORER |
27 | __sighandler_t sa_handler; | ||
28 | unsigned long sa_flags; | ||
29 | __sigrestore_t sa_restorer; | ||
30 | sigset_t sa_mask; /* mask last for extensibility */ | ||
31 | }; | ||
32 | 27 | ||
33 | #include <asm/sigcontext.h> | 28 | #include <asm/sigcontext.h> |
34 | 29 | ||
diff --git a/arch/mips/include/asm/signal.h b/arch/mips/include/asm/signal.h index cf4a08062d1d..197f6367c201 100644 --- a/arch/mips/include/asm/signal.h +++ b/arch/mips/include/asm/signal.h | |||
@@ -21,4 +21,6 @@ | |||
21 | #include <asm/sigcontext.h> | 21 | #include <asm/sigcontext.h> |
22 | #include <asm/siginfo.h> | 22 | #include <asm/siginfo.h> |
23 | 23 | ||
24 | #define __ARCH_HAS_ODD_SIGACTION | ||
25 | |||
24 | #endif /* _ASM_SIGNAL_H */ | 26 | #endif /* _ASM_SIGNAL_H */ |
diff --git a/arch/mips/include/uapi/asm/signal.h b/arch/mips/include/uapi/asm/signal.h index 3c85fa07b3d3..6783c887a678 100644 --- a/arch/mips/include/uapi/asm/signal.h +++ b/arch/mips/include/uapi/asm/signal.h | |||
@@ -96,11 +96,13 @@ typedef unsigned long old_sigset_t; /* at least 32 bits */ | |||
96 | 96 | ||
97 | #include <asm-generic/signal-defs.h> | 97 | #include <asm-generic/signal-defs.h> |
98 | 98 | ||
99 | #ifndef __KERNEL__ | ||
99 | struct sigaction { | 100 | struct sigaction { |
100 | unsigned int sa_flags; | 101 | unsigned int sa_flags; |
101 | __sighandler_t sa_handler; | 102 | __sighandler_t sa_handler; |
102 | sigset_t sa_mask; | 103 | sigset_t sa_mask; |
103 | }; | 104 | }; |
105 | #endif | ||
104 | 106 | ||
105 | /* IRIX compatible stack_t */ | 107 | /* IRIX compatible stack_t */ |
106 | typedef struct sigaltstack { | 108 | typedef struct sigaltstack { |
diff --git a/arch/mn10300/include/asm/signal.h b/arch/mn10300/include/asm/signal.h index d6f06540acb0..288ade5ec94e 100644 --- a/arch/mn10300/include/asm/signal.h +++ b/arch/mn10300/include/asm/signal.h | |||
@@ -33,12 +33,7 @@ struct old_sigaction { | |||
33 | __sigrestore_t sa_restorer; | 33 | __sigrestore_t sa_restorer; |
34 | }; | 34 | }; |
35 | 35 | ||
36 | struct sigaction { | 36 | #define __ARCH_HAS_SA_RESTORER |
37 | __sighandler_t sa_handler; | ||
38 | unsigned long sa_flags; | ||
39 | __sigrestore_t sa_restorer; | ||
40 | sigset_t sa_mask; /* mask last for extensibility */ | ||
41 | }; | ||
42 | 37 | ||
43 | #include <asm/sigcontext.h> | 38 | #include <asm/sigcontext.h> |
44 | 39 | ||
diff --git a/arch/parisc/include/asm/signal.h b/arch/parisc/include/asm/signal.h index e42e05d69a1d..c8e4ec5a6582 100644 --- a/arch/parisc/include/asm/signal.h +++ b/arch/parisc/include/asm/signal.h | |||
@@ -24,11 +24,13 @@ typedef struct { | |||
24 | unsigned long sig[_NSIG_WORDS]; | 24 | unsigned long sig[_NSIG_WORDS]; |
25 | } sigset_t; | 25 | } sigset_t; |
26 | 26 | ||
27 | #ifndef __KERNEL__ | ||
27 | struct sigaction { | 28 | struct sigaction { |
28 | __sighandler_t sa_handler; | 29 | __sighandler_t sa_handler; |
29 | unsigned long sa_flags; | 30 | unsigned long sa_flags; |
30 | sigset_t sa_mask; /* mask last for extensibility */ | 31 | sigset_t sa_mask; /* mask last for extensibility */ |
31 | }; | 32 | }; |
33 | #endif | ||
32 | 34 | ||
33 | #include <asm/sigcontext.h> | 35 | #include <asm/sigcontext.h> |
34 | 36 | ||
diff --git a/arch/powerpc/include/asm/signal.h b/arch/powerpc/include/asm/signal.h index a101637725a2..fbe66c463891 100644 --- a/arch/powerpc/include/asm/signal.h +++ b/arch/powerpc/include/asm/signal.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _ASM_POWERPC_SIGNAL_H | 1 | #ifndef _ASM_POWERPC_SIGNAL_H |
2 | #define _ASM_POWERPC_SIGNAL_H | 2 | #define _ASM_POWERPC_SIGNAL_H |
3 | 3 | ||
4 | #define __ARCH_HAS_SA_RESTORER | ||
4 | #include <uapi/asm/signal.h> | 5 | #include <uapi/asm/signal.h> |
5 | 6 | ||
6 | #endif /* _ASM_POWERPC_SIGNAL_H */ | 7 | #endif /* _ASM_POWERPC_SIGNAL_H */ |
diff --git a/arch/powerpc/include/asm/syscalls.h b/arch/powerpc/include/asm/syscalls.h index 5c51659e61d5..21936530df08 100644 --- a/arch/powerpc/include/asm/syscalls.h +++ b/arch/powerpc/include/asm/syscalls.h | |||
@@ -9,7 +9,6 @@ | |||
9 | 9 | ||
10 | struct pt_regs; | 10 | struct pt_regs; |
11 | struct rtas_args; | 11 | struct rtas_args; |
12 | struct sigaction; | ||
13 | 12 | ||
14 | asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len, | 13 | asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len, |
15 | unsigned long prot, unsigned long flags, | 14 | unsigned long prot, unsigned long flags, |
diff --git a/arch/powerpc/include/uapi/asm/signal.h b/arch/powerpc/include/uapi/asm/signal.h index a1a624699292..6defdd65594e 100644 --- a/arch/powerpc/include/uapi/asm/signal.h +++ b/arch/powerpc/include/uapi/asm/signal.h | |||
@@ -97,12 +97,14 @@ struct old_sigaction { | |||
97 | __sigrestore_t sa_restorer; | 97 | __sigrestore_t sa_restorer; |
98 | }; | 98 | }; |
99 | 99 | ||
100 | #ifndef __KERNEL__ | ||
100 | struct sigaction { | 101 | struct sigaction { |
101 | __sighandler_t sa_handler; | 102 | __sighandler_t sa_handler; |
102 | unsigned long sa_flags; | 103 | unsigned long sa_flags; |
103 | __sigrestore_t sa_restorer; | 104 | __sigrestore_t sa_restorer; |
104 | sigset_t sa_mask; /* mask last for extensibility */ | 105 | sigset_t sa_mask; /* mask last for extensibility */ |
105 | }; | 106 | }; |
107 | #endif | ||
106 | 108 | ||
107 | typedef struct sigaltstack { | 109 | typedef struct sigaltstack { |
108 | void __user *ss_sp; | 110 | void __user *ss_sp; |
diff --git a/arch/s390/include/asm/signal.h b/arch/s390/include/asm/signal.h index 89853592e492..d26e30e31656 100644 --- a/arch/s390/include/asm/signal.h +++ b/arch/s390/include/asm/signal.h | |||
@@ -28,11 +28,5 @@ struct old_sigaction { | |||
28 | void (*sa_restorer)(void); | 28 | void (*sa_restorer)(void); |
29 | }; | 29 | }; |
30 | 30 | ||
31 | struct sigaction { | 31 | #define __ARCH_HAS_SA_RESTORER |
32 | __sighandler_t sa_handler; | ||
33 | unsigned long sa_flags; | ||
34 | void (*sa_restorer)(void); | ||
35 | sigset_t sa_mask; /* mask last for extensibility */ | ||
36 | }; | ||
37 | |||
38 | #endif | 32 | #endif |
diff --git a/arch/sparc/include/asm/signal.h b/arch/sparc/include/asm/signal.h index e1881856a55c..c33ce3f2ba84 100644 --- a/arch/sparc/include/asm/signal.h +++ b/arch/sparc/include/asm/signal.h | |||
@@ -22,6 +22,7 @@ | |||
22 | #define SA_STATIC_ALLOC 0x8000 | 22 | #define SA_STATIC_ALLOC 0x8000 |
23 | 23 | ||
24 | #define __ARCH_HAS_KA_RESTORER | 24 | #define __ARCH_HAS_KA_RESTORER |
25 | #define __ARCH_HAS_SA_RESTORER | ||
25 | 26 | ||
26 | #endif /* !(__ASSEMBLY__) */ | 27 | #endif /* !(__ASSEMBLY__) */ |
27 | #endif /* !(__SPARC_SIGNAL_H) */ | 28 | #endif /* !(__SPARC_SIGNAL_H) */ |
diff --git a/arch/sparc/include/uapi/asm/signal.h b/arch/sparc/include/uapi/asm/signal.h index c4ffd6c97106..284836f0b7dc 100644 --- a/arch/sparc/include/uapi/asm/signal.h +++ b/arch/sparc/include/uapi/asm/signal.h | |||
@@ -153,12 +153,14 @@ struct sigstack { | |||
153 | 153 | ||
154 | #include <asm-generic/signal-defs.h> | 154 | #include <asm-generic/signal-defs.h> |
155 | 155 | ||
156 | #ifndef __KERNEL__ | ||
156 | struct __new_sigaction { | 157 | struct __new_sigaction { |
157 | __sighandler_t sa_handler; | 158 | __sighandler_t sa_handler; |
158 | unsigned long sa_flags; | 159 | unsigned long sa_flags; |
159 | __sigrestore_t sa_restorer; /* not used by Linux/SPARC yet */ | 160 | __sigrestore_t sa_restorer; /* not used by Linux/SPARC yet */ |
160 | __new_sigset_t sa_mask; | 161 | __new_sigset_t sa_mask; |
161 | }; | 162 | }; |
163 | #endif | ||
162 | 164 | ||
163 | struct __old_sigaction { | 165 | struct __old_sigaction { |
164 | __sighandler_t sa_handler; | 166 | __sighandler_t sa_handler; |
diff --git a/arch/sparc/kernel/systbls.h b/arch/sparc/kernel/systbls.h index 118759cd7342..1dd89dbac8d8 100644 --- a/arch/sparc/kernel/systbls.h +++ b/arch/sparc/kernel/systbls.h | |||
@@ -3,8 +3,8 @@ | |||
3 | 3 | ||
4 | #include <linux/kernel.h> | 4 | #include <linux/kernel.h> |
5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
6 | #include <linux/signal.h> | ||
6 | #include <asm/utrap.h> | 7 | #include <asm/utrap.h> |
7 | #include <asm/signal.h> | ||
8 | 8 | ||
9 | extern asmlinkage unsigned long sys_getpagesize(void); | 9 | extern asmlinkage unsigned long sys_getpagesize(void); |
10 | extern asmlinkage long sparc_pipe(struct pt_regs *regs); | 10 | extern asmlinkage long sparc_pipe(struct pt_regs *regs); |
diff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h index e7cf5005931a..9bda8224f3d5 100644 --- a/arch/x86/include/asm/signal.h +++ b/arch/x86/include/asm/signal.h | |||
@@ -31,6 +31,9 @@ typedef sigset_t compat_sigset_t; | |||
31 | #include <uapi/asm/signal.h> | 31 | #include <uapi/asm/signal.h> |
32 | #ifndef __ASSEMBLY__ | 32 | #ifndef __ASSEMBLY__ |
33 | extern void do_notify_resume(struct pt_regs *, void *, __u32); | 33 | extern void do_notify_resume(struct pt_regs *, void *, __u32); |
34 | |||
35 | #define __ARCH_HAS_SA_RESTORER | ||
36 | |||
34 | #ifdef __i386__ | 37 | #ifdef __i386__ |
35 | struct old_sigaction { | 38 | struct old_sigaction { |
36 | __sighandler_t sa_handler; | 39 | __sighandler_t sa_handler; |
@@ -39,13 +42,6 @@ struct old_sigaction { | |||
39 | __sigrestore_t sa_restorer; | 42 | __sigrestore_t sa_restorer; |
40 | }; | 43 | }; |
41 | 44 | ||
42 | struct sigaction { | ||
43 | __sighandler_t sa_handler; | ||
44 | unsigned long sa_flags; | ||
45 | __sigrestore_t sa_restorer; | ||
46 | sigset_t sa_mask; /* mask last for extensibility */ | ||
47 | }; | ||
48 | |||
49 | #endif /* !__i386__ */ | 45 | #endif /* !__i386__ */ |
50 | #include <asm/sigcontext.h> | 46 | #include <asm/sigcontext.h> |
51 | 47 | ||
diff --git a/arch/x86/include/uapi/asm/signal.h b/arch/x86/include/uapi/asm/signal.h index e52443fc026b..8264f47cf53e 100644 --- a/arch/x86/include/uapi/asm/signal.h +++ b/arch/x86/include/uapi/asm/signal.h | |||
@@ -95,9 +95,9 @@ typedef unsigned long sigset_t; | |||
95 | #ifndef __ASSEMBLY__ | 95 | #ifndef __ASSEMBLY__ |
96 | 96 | ||
97 | 97 | ||
98 | #ifdef __i386__ | ||
99 | # ifndef __KERNEL__ | 98 | # ifndef __KERNEL__ |
100 | /* Here we must cater to libcs that poke about in kernel headers. */ | 99 | /* Here we must cater to libcs that poke about in kernel headers. */ |
100 | #ifdef __i386__ | ||
101 | 101 | ||
102 | struct sigaction { | 102 | struct sigaction { |
103 | union { | 103 | union { |
@@ -112,7 +112,6 @@ struct sigaction { | |||
112 | #define sa_handler _u._sa_handler | 112 | #define sa_handler _u._sa_handler |
113 | #define sa_sigaction _u._sa_sigaction | 113 | #define sa_sigaction _u._sa_sigaction |
114 | 114 | ||
115 | # endif /* ! __KERNEL__ */ | ||
116 | #else /* __i386__ */ | 115 | #else /* __i386__ */ |
117 | 116 | ||
118 | struct sigaction { | 117 | struct sigaction { |
@@ -123,6 +122,7 @@ struct sigaction { | |||
123 | }; | 122 | }; |
124 | 123 | ||
125 | #endif /* !__i386__ */ | 124 | #endif /* !__i386__ */ |
125 | # endif /* ! __KERNEL__ */ | ||
126 | 126 | ||
127 | typedef struct sigaltstack { | 127 | typedef struct sigaltstack { |
128 | void __user *ss_sp; | 128 | void __user *ss_sp; |
diff --git a/arch/xtensa/include/asm/signal.h b/arch/xtensa/include/asm/signal.h index fd63b8f46a4b..de169b4eaeef 100644 --- a/arch/xtensa/include/asm/signal.h +++ b/arch/xtensa/include/asm/signal.h | |||
@@ -15,12 +15,7 @@ | |||
15 | #include <uapi/asm/signal.h> | 15 | #include <uapi/asm/signal.h> |
16 | 16 | ||
17 | #ifndef __ASSEMBLY__ | 17 | #ifndef __ASSEMBLY__ |
18 | struct sigaction { | 18 | #define __ARCH_HAS_SA_RESTORER |
19 | __sighandler_t sa_handler; | ||
20 | unsigned long sa_flags; | ||
21 | void (*sa_restorer)(void); | ||
22 | sigset_t sa_mask; /* mask last for extensibility */ | ||
23 | }; | ||
24 | 19 | ||
25 | #include <asm/sigcontext.h> | 20 | #include <asm/sigcontext.h> |
26 | 21 | ||
diff --git a/include/linux/signal.h b/include/linux/signal.h index 01451a156ff7..0b6878e882da 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h | |||
@@ -249,6 +249,20 @@ extern void __set_current_blocked(const sigset_t *); | |||
249 | extern int show_unhandled_signals; | 249 | extern int show_unhandled_signals; |
250 | extern int sigsuspend(sigset_t *); | 250 | extern int sigsuspend(sigset_t *); |
251 | 251 | ||
252 | struct sigaction { | ||
253 | #ifndef __ARCH_HAS_ODD_SIGACTION | ||
254 | __sighandler_t sa_handler; | ||
255 | unsigned long sa_flags; | ||
256 | #else | ||
257 | unsigned long sa_flags; | ||
258 | __sighandler_t sa_handler; | ||
259 | #endif | ||
260 | #ifdef __ARCH_HAS_SA_RESTORER | ||
261 | __sigrestore_t sa_restorer; | ||
262 | #endif | ||
263 | sigset_t sa_mask; /* mask last for extensibility */ | ||
264 | }; | ||
265 | |||
252 | struct k_sigaction { | 266 | struct k_sigaction { |
253 | struct sigaction sa; | 267 | struct sigaction sa; |
254 | #ifdef __ARCH_HAS_KA_RESTORER | 268 | #ifdef __ARCH_HAS_KA_RESTORER |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index d2dd2f63d220..1c4938bf901e 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -68,11 +68,11 @@ struct sigaltstack; | |||
68 | #include <linux/types.h> | 68 | #include <linux/types.h> |
69 | #include <linux/aio_abi.h> | 69 | #include <linux/aio_abi.h> |
70 | #include <linux/capability.h> | 70 | #include <linux/capability.h> |
71 | #include <linux/signal.h> | ||
71 | #include <linux/list.h> | 72 | #include <linux/list.h> |
72 | #include <linux/bug.h> | 73 | #include <linux/bug.h> |
73 | #include <linux/sem.h> | 74 | #include <linux/sem.h> |
74 | #include <asm/siginfo.h> | 75 | #include <asm/siginfo.h> |
75 | #include <asm/signal.h> | ||
76 | #include <linux/unistd.h> | 76 | #include <linux/unistd.h> |
77 | #include <linux/quota.h> | 77 | #include <linux/quota.h> |
78 | #include <linux/key.h> | 78 | #include <linux/key.h> |
diff --git a/include/uapi/asm-generic/signal.h b/include/uapi/asm-generic/signal.h index 21e59f36c61b..9df61f1edb0f 100644 --- a/include/uapi/asm-generic/signal.h +++ b/include/uapi/asm-generic/signal.h | |||
@@ -93,6 +93,11 @@ typedef unsigned long old_sigset_t; | |||
93 | 93 | ||
94 | #include <asm-generic/signal-defs.h> | 94 | #include <asm-generic/signal-defs.h> |
95 | 95 | ||
96 | #ifdef SA_RESTORER | ||
97 | #define __ARCH_HAS_SA_RESTORER | ||
98 | #endif | ||
99 | |||
100 | #ifndef __KERNEL__ | ||
96 | struct sigaction { | 101 | struct sigaction { |
97 | __sighandler_t sa_handler; | 102 | __sighandler_t sa_handler; |
98 | unsigned long sa_flags; | 103 | unsigned long sa_flags; |
@@ -101,6 +106,7 @@ struct sigaction { | |||
101 | #endif | 106 | #endif |
102 | sigset_t sa_mask; /* mask last for extensibility */ | 107 | sigset_t sa_mask; /* mask last for extensibility */ |
103 | }; | 108 | }; |
109 | #endif | ||
104 | 110 | ||
105 | typedef struct sigaltstack { | 111 | typedef struct sigaltstack { |
106 | void __user *ss_sp; | 112 | void __user *ss_sp; |