Back to home page

OSCL-LXR

 
 

    


0001 #ifndef _ASM_X86_DISABLED_FEATURES_H
0002 #define _ASM_X86_DISABLED_FEATURES_H
0003 
0004 /* These features, although they might be available in a CPU
0005  * will not be used because the compile options to support
0006  * them are not present.
0007  *
0008  * This code allows them to be checked and disabled at
0009  * compile time without an explicit #ifdef.  Use
0010  * cpu_feature_enabled().
0011  */
0012 
0013 #ifdef CONFIG_X86_UMIP
0014 # define DISABLE_UMIP   0
0015 #else
0016 # define DISABLE_UMIP   (1<<(X86_FEATURE_UMIP & 31))
0017 #endif
0018 
0019 #ifdef CONFIG_X86_64
0020 # define DISABLE_VME        (1<<(X86_FEATURE_VME & 31))
0021 # define DISABLE_K6_MTRR    (1<<(X86_FEATURE_K6_MTRR & 31))
0022 # define DISABLE_CYRIX_ARR  (1<<(X86_FEATURE_CYRIX_ARR & 31))
0023 # define DISABLE_CENTAUR_MCR    (1<<(X86_FEATURE_CENTAUR_MCR & 31))
0024 # define DISABLE_PCID       0
0025 #else
0026 # define DISABLE_VME        0
0027 # define DISABLE_K6_MTRR    0
0028 # define DISABLE_CYRIX_ARR  0
0029 # define DISABLE_CENTAUR_MCR    0
0030 # define DISABLE_PCID       (1<<(X86_FEATURE_PCID & 31))
0031 #endif /* CONFIG_X86_64 */
0032 
0033 #ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
0034 # define DISABLE_PKU        0
0035 # define DISABLE_OSPKE      0
0036 #else
0037 # define DISABLE_PKU        (1<<(X86_FEATURE_PKU & 31))
0038 # define DISABLE_OSPKE      (1<<(X86_FEATURE_OSPKE & 31))
0039 #endif /* CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS */
0040 
0041 #ifdef CONFIG_X86_5LEVEL
0042 # define DISABLE_LA57   0
0043 #else
0044 # define DISABLE_LA57   (1<<(X86_FEATURE_LA57 & 31))
0045 #endif
0046 
0047 #ifdef CONFIG_PAGE_TABLE_ISOLATION
0048 # define DISABLE_PTI        0
0049 #else
0050 # define DISABLE_PTI        (1 << (X86_FEATURE_PTI & 31))
0051 #endif
0052 
0053 #ifdef CONFIG_RETPOLINE
0054 # define DISABLE_RETPOLINE  0
0055 #else
0056 # define DISABLE_RETPOLINE  ((1 << (X86_FEATURE_RETPOLINE & 31)) | \
0057                  (1 << (X86_FEATURE_RETPOLINE_LFENCE & 31)))
0058 #endif
0059 
0060 #ifdef CONFIG_RETHUNK
0061 # define DISABLE_RETHUNK    0
0062 #else
0063 # define DISABLE_RETHUNK    (1 << (X86_FEATURE_RETHUNK & 31))
0064 #endif
0065 
0066 #ifdef CONFIG_CPU_UNRET_ENTRY
0067 # define DISABLE_UNRET      0
0068 #else
0069 # define DISABLE_UNRET      (1 << (X86_FEATURE_UNRET & 31))
0070 #endif
0071 
0072 #ifdef CONFIG_INTEL_IOMMU_SVM
0073 # define DISABLE_ENQCMD     0
0074 #else
0075 # define DISABLE_ENQCMD     (1 << (X86_FEATURE_ENQCMD & 31))
0076 #endif
0077 
0078 #ifdef CONFIG_X86_SGX
0079 # define DISABLE_SGX    0
0080 #else
0081 # define DISABLE_SGX    (1 << (X86_FEATURE_SGX & 31))
0082 #endif
0083 
0084 #ifdef CONFIG_INTEL_TDX_GUEST
0085 # define DISABLE_TDX_GUEST  0
0086 #else
0087 # define DISABLE_TDX_GUEST  (1 << (X86_FEATURE_TDX_GUEST & 31))
0088 #endif
0089 
0090 /*
0091  * Make sure to add features to the correct mask
0092  */
0093 #define DISABLED_MASK0  (DISABLE_VME)
0094 #define DISABLED_MASK1  0
0095 #define DISABLED_MASK2  0
0096 #define DISABLED_MASK3  (DISABLE_CYRIX_ARR|DISABLE_CENTAUR_MCR|DISABLE_K6_MTRR)
0097 #define DISABLED_MASK4  (DISABLE_PCID)
0098 #define DISABLED_MASK5  0
0099 #define DISABLED_MASK6  0
0100 #define DISABLED_MASK7  (DISABLE_PTI)
0101 #define DISABLED_MASK8  (DISABLE_TDX_GUEST)
0102 #define DISABLED_MASK9  (DISABLE_SGX)
0103 #define DISABLED_MASK10 0
0104 #define DISABLED_MASK11 (DISABLE_RETPOLINE|DISABLE_RETHUNK|DISABLE_UNRET)
0105 #define DISABLED_MASK12 0
0106 #define DISABLED_MASK13 0
0107 #define DISABLED_MASK14 0
0108 #define DISABLED_MASK15 0
0109 #define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57|DISABLE_UMIP| \
0110              DISABLE_ENQCMD)
0111 #define DISABLED_MASK17 0
0112 #define DISABLED_MASK18 0
0113 #define DISABLED_MASK19 0
0114 #define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 20)
0115 
0116 #endif /* _ASM_X86_DISABLED_FEATURES_H */