aboutsummaryrefslogtreecommitdiff
path: root/include/asm-x86/processor.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-09-05 09:18:39 +0200
committerIngo Molnar <mingo@elte.hu>2008-09-05 09:18:39 +0200
commitaccf0fa697eeb5ff4c2360edc4da5b10abac0b7b (patch)
treea57dc9aa4a6b83be8ac8b4528cf06db5621e62aa /include/asm-x86/processor.h
parentebd60cd64f8ab1170102c3ab072eb73042b7a33d (diff)
parentfe47784ba5cbb6b713c013e046859946789b45e4 (diff)
Merge branch 'x86/xsave' into x86/core
Diffstat (limited to 'include/asm-x86/processor.h')
-rw-r--r--include/asm-x86/processor.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/include/asm-x86/processor.h b/include/asm-x86/processor.h
index 10471cfab14..df03c98e38d 100644
--- a/include/asm-x86/processor.h
+++ b/include/asm-x86/processor.h
@@ -326,7 +326,12 @@ struct i387_fxsave_struct {
/* 16*16 bytes for each XMM-reg = 256 bytes: */
u32 xmm_space[64];
- u32 padding[24];
+ u32 padding[12];
+
+ union {
+ u32 padding1[12];
+ u32 sw_reserved[12];
+ };
} __attribute__((aligned(16)));
@@ -350,10 +355,23 @@ struct i387_soft_struct {
u32 entry_eip;
};
+struct xsave_hdr_struct {
+ u64 xstate_bv;
+ u64 reserved1[2];
+ u64 reserved2[5];
+} __attribute__((packed));
+
+struct xsave_struct {
+ struct i387_fxsave_struct i387;
+ struct xsave_hdr_struct xsave_hdr;
+ /* new processor state extensions will go here */
+} __attribute__ ((packed, aligned (64)));
+
union thread_xstate {
struct i387_fsave_struct fsave;
struct i387_fxsave_struct fxsave;
struct i387_soft_struct soft;
+ struct xsave_struct xsave;
};
#ifdef CONFIG_X86_64