aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/processor.h
diff options
context:
space:
mode:
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 10471cfab145..df03c98e38d4 100644
--- a/include/asm-x86/processor.h
+++ b/include/asm-x86/processor.h
@@ -326,7 +326,12 @@ struct i387_fxsave_struct {
326 /* 16*16 bytes for each XMM-reg = 256 bytes: */ 326 /* 16*16 bytes for each XMM-reg = 256 bytes: */
327 u32 xmm_space[64]; 327 u32 xmm_space[64];
328 328
329 u32 padding[24]; 329 u32 padding[12];
330
331 union {
332 u32 padding1[12];
333 u32 sw_reserved[12];
334 };
330 335
331} __attribute__((aligned(16))); 336} __attribute__((aligned(16)));
332 337
@@ -350,10 +355,23 @@ struct i387_soft_struct {
350 u32 entry_eip; 355 u32 entry_eip;
351}; 356};
352 357
358struct xsave_hdr_struct {
359 u64 xstate_bv;
360 u64 reserved1[2];
361 u64 reserved2[5];
362} __attribute__((packed));
363
364struct xsave_struct {
365 struct i387_fxsave_struct i387;
366 struct xsave_hdr_struct xsave_hdr;
367 /* new processor state extensions will go here */
368} __attribute__ ((packed, aligned (64)));
369
353union thread_xstate { 370union thread_xstate {
354 struct i387_fsave_struct fsave; 371 struct i387_fsave_struct fsave;
355 struct i387_fxsave_struct fxsave; 372 struct i387_fxsave_struct fxsave;
356 struct i387_soft_struct soft; 373 struct i387_soft_struct soft;
374 struct xsave_struct xsave;
357}; 375};
358 376
359#ifdef CONFIG_X86_64 377#ifdef CONFIG_X86_64