[PATCH 04/15] x86/xsaves: Change compacted format xsave area header

From: Fenghua Yu
Date: Mon May 26 2014 - 13:01:46 EST


From: Fenghua Yu <fenghua.yu@xxxxxxxxx>

With compacted format xsave area supported, the xsave area header is changed
to support both compacted format and standard format xsave area.

The XSAVE header of an XSAVE area comprises the 64 bytes starting at offset
512 from the area\u2019s base address:
- Bytes 7:0 of the XSAVE header is a state-component bitmap called
XSTATE_BV. It identifies the state components in the XSAVE area.
- Bytes 15:8 of the XSAVE header is a state-component bitmap called
XCOMP_BV. It is used as follows:
- XCOMP_BV[63] indicates the format of the extended region of
the XSAVE area. If it is clear, the standard format is used. If it is set,
the compacted format is used; XCOMP_BV[62:0] provide format specifics.
- XCOMP_BV[63] determines which form of the XRSTOR instruction
is used. If the bit is set, the compacted form is used; otherwise, the standard
form is used. See Section 13.7.
- All bits in XCOMP_BV should be 0 if the processor does not support
the compaction extensions to the XSAVE feature set.
- Bytes 63:16 of the XSAVE header are reserved.

Signed-off-by: Fenghua Yu <fenghua.yu@xxxxxxxxx>
---
arch/x86/include/asm/processor.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index a4ea023..2c8d3b8 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -386,8 +386,8 @@ struct bndcsr_struct {

struct xsave_hdr_struct {
u64 xstate_bv;
- u64 reserved1[2];
- u64 reserved2[5];
+ u64 xcomp_bv;
+ u64 reserved[6];
} __attribute__((packed));

struct xsave_struct {
--
1.8.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/