#ifdef CONFIG_X86_32 struct sigframe { char __user *pretcode; int sig; struct sigcontext sc; /* * fpstate is unused. fpstate is moved/allocated after * retcode[] below. This movement allows to have the FP state and the * future state extensions (xsave) stay together. * And at the same time retaining the unused fpstate, prevents changing * the offset of extramask[] in the sigframe and thus prevent any * legacy application accessing/modifying it. */ struct _fpstate fpstate_unused; unsigned long extramask[_NSIG_WORDS-1]; char retcode[8]; /* fp state follows here */ }; struct rt_sigframe { char __user *pretcode; int sig; struct siginfo __user *pinfo; void __user *puc; struct siginfo info; struct ucontext uc; char retcode[8]; /* fp state follows here */ }; #else struct rt_sigframe { char __user *pretcode; struct ucontext uc; struct siginfo info; /* fp state follows here */ }; int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, sigset_t *set, struct pt_regs *regs); int ia32_setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, struct pt_regs *regs); #endif