Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / arch / x86 / kernel / sigframe.h
1 #ifdef CONFIG_X86_32
2 struct sigframe {
3         char __user *pretcode;
4         int sig;
5         struct sigcontext sc;
6         /*
7          * fpstate is unused. fpstate is moved/allocated after
8          * retcode[] below. This movement allows to have the FP state and the
9          * future state extensions (xsave) stay together.
10          * And at the same time retaining the unused fpstate, prevents changing
11          * the offset of extramask[] in the sigframe and thus prevent any
12          * legacy application accessing/modifying it.
13          */
14         struct _fpstate fpstate_unused;
15         unsigned long extramask[_NSIG_WORDS-1];
16         char retcode[8];
17         /* fp state follows here */
18 };
19
20 struct rt_sigframe {
21         char __user *pretcode;
22         int sig;
23         struct siginfo __user *pinfo;
24         void __user *puc;
25         struct siginfo info;
26         struct ucontext uc;
27         char retcode[8];
28         /* fp state follows here */
29 };
30 #else
31 struct rt_sigframe {
32         char __user *pretcode;
33         struct ucontext uc;
34         struct siginfo info;
35         /* fp state follows here */
36 };
37
38 int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
39                 sigset_t *set, struct pt_regs *regs);
40 int ia32_setup_frame(int sig, struct k_sigaction *ka,
41                 sigset_t *set, struct pt_regs *regs);
42 #endif