aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSuresh Siddha <suresh.b.siddha@intel.com>2008-07-29 13:29:22 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-30 13:49:26 -0400
commitab5137015fed9b948fe835a2d99a4cfbd50a0c40 (patch)
tree229771c4f5606d56945941c8ada9ae6cf08d1c80 /include
parent3c1c7f101426cb2ecc79d817a8a65928965fc860 (diff)
x86, xsave: reorganization of signal save/restore fpstate code layout
move 64bit routines that saves/restores fpstate in/from user stack from signal_64.c to xsave.c restore_i387_xstate() now handles the condition when user passes NULL fpstate. Other misc changes for prepartion of xsave/xrstor sigcontext support. Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86/i387.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/include/asm-x86/i387.h b/include/asm-x86/i387.h
index 36dca8db1660..dc3745e8040a 100644
--- a/include/asm-x86/i387.h
+++ b/include/asm-x86/i387.h
@@ -34,8 +34,9 @@ extern user_regset_set_fn fpregs_set, xfpregs_set, fpregs_soft_set;
34#ifdef CONFIG_IA32_EMULATION 34#ifdef CONFIG_IA32_EMULATION
35extern unsigned int sig_xstate_ia32_size; 35extern unsigned int sig_xstate_ia32_size;
36struct _fpstate_ia32; 36struct _fpstate_ia32;
37extern int save_i387_ia32(struct _fpstate_ia32 __user *buf); 37struct _xstate_ia32;
38extern int restore_i387_ia32(struct _fpstate_ia32 __user *buf); 38extern int save_i387_xstate_ia32(void __user *buf);
39extern int restore_i387_xstate_ia32(void __user *buf);
39#endif 40#endif
40 41
41#define X87_FSW_ES (1 << 7) /* Exception Summary */ 42#define X87_FSW_ES (1 << 7) /* Exception Summary */
@@ -249,13 +250,13 @@ end:
249 task_thread_info(tsk)->status &= ~TS_USEDFPU; 250 task_thread_info(tsk)->status &= ~TS_USEDFPU;
250} 251}
251 252
253#endif /* CONFIG_X86_64 */
254
252/* 255/*
253 * Signal frame handlers... 256 * Signal frame handlers...
254 */ 257 */
255extern int save_i387(struct _fpstate __user *buf); 258extern int save_i387_xstate(void __user *buf);
256extern int restore_i387(struct _fpstate __user *buf); 259extern int restore_i387_xstate(void __user *buf);
257
258#endif /* CONFIG_X86_64 */
259 260
260static inline void __unlazy_fpu(struct task_struct *tsk) 261static inline void __unlazy_fpu(struct task_struct *tsk)
261{ 262{