x86/fpu: Move xfeature type enumeration to fpu/types.h
So xsave.h is an internal header that FPU using drivers commonly include, to get access to the xstate feature names, amongst other things. Move these type definitions to fpu/fpu.h to allow simplification of FPU using driver code. Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@alien8.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
677b98bdd5
commit
91969d690f
|
@ -78,6 +78,34 @@ struct i387_soft_struct {
|
||||||
u32 entry_eip;
|
u32 entry_eip;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* List of XSAVE features Linux knows about:
|
||||||
|
*/
|
||||||
|
enum xfeature_bit {
|
||||||
|
XSTATE_BIT_FP,
|
||||||
|
XSTATE_BIT_SSE,
|
||||||
|
XSTATE_BIT_YMM,
|
||||||
|
XSTATE_BIT_BNDREGS,
|
||||||
|
XSTATE_BIT_BNDCSR,
|
||||||
|
XSTATE_BIT_OPMASK,
|
||||||
|
XSTATE_BIT_ZMM_Hi256,
|
||||||
|
XSTATE_BIT_Hi16_ZMM,
|
||||||
|
|
||||||
|
XFEATURES_NR_MAX,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define XSTATE_FP (1 << XSTATE_BIT_FP)
|
||||||
|
#define XSTATE_SSE (1 << XSTATE_BIT_SSE)
|
||||||
|
#define XSTATE_YMM (1 << XSTATE_BIT_YMM)
|
||||||
|
#define XSTATE_BNDREGS (1 << XSTATE_BIT_BNDREGS)
|
||||||
|
#define XSTATE_BNDCSR (1 << XSTATE_BIT_BNDCSR)
|
||||||
|
#define XSTATE_OPMASK (1 << XSTATE_BIT_OPMASK)
|
||||||
|
#define XSTATE_ZMM_Hi256 (1 << XSTATE_BIT_ZMM_Hi256)
|
||||||
|
#define XSTATE_Hi16_ZMM (1 << XSTATE_BIT_Hi16_ZMM)
|
||||||
|
|
||||||
|
#define XSTATE_FPSSE (XSTATE_FP | XSTATE_SSE)
|
||||||
|
#define XSTATE_AVX512 (XSTATE_OPMASK | XSTATE_ZMM_Hi256 | XSTATE_Hi16_ZMM)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* There are 16x 256-bit AVX registers named YMM0-YMM15.
|
* There are 16x 256-bit AVX registers named YMM0-YMM15.
|
||||||
* The low 128 bits are aliased to the 16 SSE registers (XMM0-XMM15)
|
* The low 128 bits are aliased to the 16 SSE registers (XMM0-XMM15)
|
||||||
|
|
|
@ -4,34 +4,6 @@
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* List of XSAVE features Linux knows about:
|
|
||||||
*/
|
|
||||||
enum xfeature_bit {
|
|
||||||
XSTATE_BIT_FP,
|
|
||||||
XSTATE_BIT_SSE,
|
|
||||||
XSTATE_BIT_YMM,
|
|
||||||
XSTATE_BIT_BNDREGS,
|
|
||||||
XSTATE_BIT_BNDCSR,
|
|
||||||
XSTATE_BIT_OPMASK,
|
|
||||||
XSTATE_BIT_ZMM_Hi256,
|
|
||||||
XSTATE_BIT_Hi16_ZMM,
|
|
||||||
|
|
||||||
XFEATURES_NR_MAX,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define XSTATE_FP (1 << XSTATE_BIT_FP)
|
|
||||||
#define XSTATE_SSE (1 << XSTATE_BIT_SSE)
|
|
||||||
#define XSTATE_YMM (1 << XSTATE_BIT_YMM)
|
|
||||||
#define XSTATE_BNDREGS (1 << XSTATE_BIT_BNDREGS)
|
|
||||||
#define XSTATE_BNDCSR (1 << XSTATE_BIT_BNDCSR)
|
|
||||||
#define XSTATE_OPMASK (1 << XSTATE_BIT_OPMASK)
|
|
||||||
#define XSTATE_ZMM_Hi256 (1 << XSTATE_BIT_ZMM_Hi256)
|
|
||||||
#define XSTATE_Hi16_ZMM (1 << XSTATE_BIT_Hi16_ZMM)
|
|
||||||
|
|
||||||
|
|
||||||
#define XSTATE_FPSSE (XSTATE_FP | XSTATE_SSE)
|
|
||||||
#define XSTATE_AVX512 (XSTATE_OPMASK | XSTATE_ZMM_Hi256 | XSTATE_Hi16_ZMM)
|
|
||||||
/* Bit 63 of XCR0 is reserved for future expansion */
|
/* Bit 63 of XCR0 is reserved for future expansion */
|
||||||
#define XSTATE_EXTEND_MASK (~(XSTATE_FPSSE | (1ULL << 63)))
|
#define XSTATE_EXTEND_MASK (~(XSTATE_FPSSE | (1ULL << 63)))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue