A later commit will introduce a pure-assembly INVPCID invocation, allow assembly files to get the type definitions. Signed-off-by: Valentin Schneider --- arch/x86/include/asm/invpcid.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/arch/x86/include/asm/invpcid.h b/arch/x86/include/asm/invpcid.h index 734482afbf81d..27ae75c2d7fed 100644 --- a/arch/x86/include/asm/invpcid.h +++ b/arch/x86/include/asm/invpcid.h @@ -2,6 +2,13 @@ #ifndef _ASM_X86_INVPCID #define _ASM_X86_INVPCID +#define INVPCID_TYPE_INDIV_ADDR 0 +#define INVPCID_TYPE_SINGLE_CTXT 1 +#define INVPCID_TYPE_ALL_INCL_GLOBAL 2 +#define INVPCID_TYPE_ALL_NON_GLOBAL 3 + +#ifndef __ASSEMBLER__ + static inline void __invpcid(unsigned long pcid, unsigned long addr, unsigned long type) { @@ -17,11 +24,6 @@ static inline void __invpcid(unsigned long pcid, unsigned long addr, :: [desc] "m" (desc), [type] "r" (type) : "memory"); } -#define INVPCID_TYPE_INDIV_ADDR 0 -#define INVPCID_TYPE_SINGLE_CTXT 1 -#define INVPCID_TYPE_ALL_INCL_GLOBAL 2 -#define INVPCID_TYPE_ALL_NON_GLOBAL 3 - /* Flush all mappings for a given pcid and addr, not including globals. */ static inline void invpcid_flush_one(unsigned long pcid, unsigned long addr) @@ -47,4 +49,6 @@ static inline void invpcid_flush_all_nonglobals(void) __invpcid(0, 0, INVPCID_TYPE_ALL_NON_GLOBAL); } +#endif /* __ASSEMBLER__ */ + #endif /* _ASM_X86_INVPCID */ -- 2.51.0