blob: 6dd7e2b70a4b8d8e0994760698025e384058c68e [file] [log] [blame]
Harvey Harrison123a6342008-02-08 12:10:00 -08001#ifdef CONFIG_X86_32
2struct sigframe {
viro@ZenIV.linux.org.ukfc0b1af2005-09-09 17:18:14 +01003 char __user *pretcode;
Linus Torvalds1da177e2005-04-16 15:20:36 -07004 int sig;
5 struct sigcontext sc;
Suresh Siddha3c1c7f12008-07-29 10:29:21 -07006 /*
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;
Linus Torvalds1da177e2005-04-16 15:20:36 -070015 unsigned long extramask[_NSIG_WORDS-1];
16 char retcode[8];
Suresh Siddha3c1c7f12008-07-29 10:29:21 -070017 /* fp state follows here */
Linus Torvalds1da177e2005-04-16 15:20:36 -070018};
19
Harvey Harrison123a6342008-02-08 12:10:00 -080020struct rt_sigframe {
viro@ZenIV.linux.org.ukfc0b1af2005-09-09 17:18:14 +010021 char __user *pretcode;
Linus Torvalds1da177e2005-04-16 15:20:36 -070022 int sig;
viro@ZenIV.linux.org.ukfc0b1af2005-09-09 17:18:14 +010023 struct siginfo __user *pinfo;
24 void __user *puc;
Linus Torvalds1da177e2005-04-16 15:20:36 -070025 struct siginfo info;
26 struct ucontext uc;
Linus Torvalds1da177e2005-04-16 15:20:36 -070027 char retcode[8];
Suresh Siddha3c1c7f12008-07-29 10:29:21 -070028 /* fp state follows here */
Linus Torvalds1da177e2005-04-16 15:20:36 -070029};
Harvey Harrison123a6342008-02-08 12:10:00 -080030#else
31struct rt_sigframe {
32 char __user *pretcode;
33 struct ucontext uc;
34 struct siginfo info;
Suresh Siddha3c1c7f12008-07-29 10:29:21 -070035 /* fp state follows here */
Harvey Harrison123a6342008-02-08 12:10:00 -080036};
37#endif