disabled-features.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #ifndef _ASM_X86_DISABLED_FEATURES_H
  2. #define _ASM_X86_DISABLED_FEATURES_H
  3. /* These features, although they might be available in a CPU
  4. * will not be used because the compile options to support
  5. * them are not present.
  6. *
  7. * This code allows them to be checked and disabled at
  8. * compile time without an explicit #ifdef. Use
  9. * cpu_feature_enabled().
  10. */
  11. #ifdef CONFIG_X86_UMIP
  12. # define DISABLE_UMIP 0
  13. #else
  14. # define DISABLE_UMIP (1<<(X86_FEATURE_UMIP & 31))
  15. #endif
  16. #ifdef CONFIG_X86_64
  17. # define DISABLE_VME (1<<(X86_FEATURE_VME & 31))
  18. # define DISABLE_K6_MTRR (1<<(X86_FEATURE_K6_MTRR & 31))
  19. # define DISABLE_CYRIX_ARR (1<<(X86_FEATURE_CYRIX_ARR & 31))
  20. # define DISABLE_CENTAUR_MCR (1<<(X86_FEATURE_CENTAUR_MCR & 31))
  21. # define DISABLE_PCID 0
  22. #else
  23. # define DISABLE_VME 0
  24. # define DISABLE_K6_MTRR 0
  25. # define DISABLE_CYRIX_ARR 0
  26. # define DISABLE_CENTAUR_MCR 0
  27. # define DISABLE_PCID (1<<(X86_FEATURE_PCID & 31))
  28. #endif /* CONFIG_X86_64 */
  29. #ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
  30. # define DISABLE_PKU 0
  31. # define DISABLE_OSPKE 0
  32. #else
  33. # define DISABLE_PKU (1<<(X86_FEATURE_PKU & 31))
  34. # define DISABLE_OSPKE (1<<(X86_FEATURE_OSPKE & 31))
  35. #endif /* CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS */
  36. #ifdef CONFIG_X86_5LEVEL
  37. # define DISABLE_LA57 0
  38. #else
  39. # define DISABLE_LA57 (1<<(X86_FEATURE_LA57 & 31))
  40. #endif
  41. #ifdef CONFIG_PAGE_TABLE_ISOLATION
  42. # define DISABLE_PTI 0
  43. #else
  44. # define DISABLE_PTI (1 << (X86_FEATURE_PTI & 31))
  45. #endif
  46. #ifdef CONFIG_RETPOLINE
  47. # define DISABLE_RETPOLINE 0
  48. #else
  49. # define DISABLE_RETPOLINE ((1 << (X86_FEATURE_RETPOLINE & 31)) | \
  50. (1 << (X86_FEATURE_RETPOLINE_LFENCE & 31)))
  51. #endif
  52. #ifdef CONFIG_RETHUNK
  53. # define DISABLE_RETHUNK 0
  54. #else
  55. # define DISABLE_RETHUNK (1 << (X86_FEATURE_RETHUNK & 31))
  56. #endif
  57. #ifdef CONFIG_CPU_UNRET_ENTRY
  58. # define DISABLE_UNRET 0
  59. #else
  60. # define DISABLE_UNRET (1 << (X86_FEATURE_UNRET & 31))
  61. #endif
  62. #ifdef CONFIG_INTEL_IOMMU_SVM
  63. # define DISABLE_ENQCMD 0
  64. #else
  65. # define DISABLE_ENQCMD (1 << (X86_FEATURE_ENQCMD & 31))
  66. #endif
  67. #ifdef CONFIG_X86_SGX
  68. # define DISABLE_SGX 0
  69. #else
  70. # define DISABLE_SGX (1 << (X86_FEATURE_SGX & 31))
  71. #endif
  72. #ifdef CONFIG_INTEL_TDX_GUEST
  73. # define DISABLE_TDX_GUEST 0
  74. #else
  75. # define DISABLE_TDX_GUEST (1 << (X86_FEATURE_TDX_GUEST & 31))
  76. #endif
  77. /*
  78. * Make sure to add features to the correct mask
  79. */
  80. #define DISABLED_MASK0 (DISABLE_VME)
  81. #define DISABLED_MASK1 0
  82. #define DISABLED_MASK2 0
  83. #define DISABLED_MASK3 (DISABLE_CYRIX_ARR|DISABLE_CENTAUR_MCR|DISABLE_K6_MTRR)
  84. #define DISABLED_MASK4 (DISABLE_PCID)
  85. #define DISABLED_MASK5 0
  86. #define DISABLED_MASK6 0
  87. #define DISABLED_MASK7 (DISABLE_PTI)
  88. #define DISABLED_MASK8 (DISABLE_TDX_GUEST)
  89. #define DISABLED_MASK9 (DISABLE_SGX)
  90. #define DISABLED_MASK10 0
  91. #define DISABLED_MASK11 (DISABLE_RETPOLINE|DISABLE_RETHUNK|DISABLE_UNRET)
  92. #define DISABLED_MASK12 0
  93. #define DISABLED_MASK13 0
  94. #define DISABLED_MASK14 0
  95. #define DISABLED_MASK15 0
  96. #define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57|DISABLE_UMIP| \
  97. DISABLE_ENQCMD)
  98. #define DISABLED_MASK17 0
  99. #define DISABLED_MASK18 0
  100. #define DISABLED_MASK19 0
  101. #define DISABLED_MASK20 0
  102. #define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21)
  103. #endif /* _ASM_X86_DISABLED_FEATURES_H */