summaryrefslogtreecommitdiffstats
path: root/include/asm-x86/ucontext.h
diff options
context:
space:
mode:
authorSuresh Siddha <suresh.b.siddha@intel.com>2008-07-29 19:29:25 +0200
committerIngo Molnar <mingo@elte.hu>2008-07-30 19:49:27 +0200
commitc37b5efea43f9e500363f9973dd00e3d2cdcc685 (patch)
tree9ce635f1672099dafcd78e535b4ea18d80235d8f /include/asm-x86/ucontext.h
parentx86, xsave: struct _fpstate extensions to include extended state information (diff)
downloadlinux-c37b5efea43f9e500363f9973dd00e3d2cdcc685.tar.xz
linux-c37b5efea43f9e500363f9973dd00e3d2cdcc685.zip
x86, xsave: save/restore the extended state context in sigframe
On cpu's supporting xsave/xrstor, fpstate pointer in the sigcontext, will include the extended state information along with fpstate information. Presence of extended state information is indicated by the presence of FP_XSTATE_MAGIC1 at fpstate.sw_reserved.magic1 and FP_XSTATE_MAGIC2 at fpstate + (fpstate.sw_reserved.extended_size - FP_XSTATE_MAGIC2_SIZE). Extended feature bit mask that is saved in the memory layout is represented by the fpstate.sw_reserved.xstate_bv For RT signal frames, UC_FP_XSTATE in the uc_flags also indicate the presence of extended state information in the sigcontext's fpstate pointer. 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/asm-x86/ucontext.h')
-rw-r--r--include/asm-x86/ucontext.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/asm-x86/ucontext.h b/include/asm-x86/ucontext.h
index 9948dd328084..89eaa5456a7e 100644
--- a/include/asm-x86/ucontext.h
+++ b/include/asm-x86/ucontext.h
@@ -1,6 +1,12 @@
#ifndef ASM_X86__UCONTEXT_H
#define ASM_X86__UCONTEXT_H
+#define UC_FP_XSTATE 0x1 /* indicates the presence of extended state
+ * information in the memory layout pointed
+ * by the fpstate pointer in the ucontext's
+ * sigcontext struct (uc_mcontext).
+ */
+
struct ucontext {
unsigned long uc_flags;
struct ucontext *uc_link;