Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: #ifndef _ASM_X86_REQUIRED_FEATURES_H 2: #define _ASM_X86_REQUIRED_FEATURES_H 3: 4: /* Define minimum CPUID feature set for kernel These bits are checked 5: really early to actually display a visible error message before the 6: kernel dies. Make sure to assign features to the proper mask! 7: 8: Some requirements that are not in CPUID yet are also in the 9: CONFIG_X86_MINIMUM_CPU_FAMILY which is checked too. 10: 11: The real information is in arch/x86/Kconfig.cpu, this just converts 12: the CONFIGs into a bitmask */ 13: 14: #ifndef CONFIG_MATH_EMULATION 15: # define NEED_FPU (1<<(X86_FEATURE_FPU & 31)) 16: #else 17: # define NEED_FPU 0 18: #endif 19: 20: #if defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64) 21: # define NEED_PAE (1<<(X86_FEATURE_PAE & 31)) 22: #else 23: # define NEED_PAE 0 24: #endif 25: 26: #ifdef CONFIG_X86_CMPXCHG64 27: # define NEED_CX8 (1<<(X86_FEATURE_CX8 & 31)) 28: #else 29: # define NEED_CX8 0 30: #endif 31: 32: #if defined(CONFIG_X86_CMOV) || defined(CONFIG_X86_64) 33: # define NEED_CMOV (1<<(X86_FEATURE_CMOV & 31)) 34: #else 35: # define NEED_CMOV 0 36: #endif 37: 38: #ifdef CONFIG_X86_USE_3DNOW 39: # define NEED_3DNOW (1<<(X86_FEATURE_3DNOW & 31)) 40: #else 41: # define NEED_3DNOW 0 42: #endif 43: 44: #if defined(CONFIG_X86_P6_NOP) || defined(CONFIG_X86_64) 45: # define NEED_NOPL (1<<(X86_FEATURE_NOPL & 31)) 46: #else 47: # define NEED_NOPL 0 48: #endif 49: 50: #ifdef CONFIG_MATOM 51: # define NEED_MOVBE (1<<(X86_FEATURE_MOVBE & 31)) 52: #else 53: # define NEED_MOVBE 0 54: #endif 55: 56: #ifdef CONFIG_X86_64 57: #ifdef CONFIG_PARAVIRT 58: /* Paravirtualized systems may not have PSE or PGE available */ 59: #define NEED_PSE 0 60: #define NEED_PGE 0 61: #else 62: #define NEED_PSE (1<<(X86_FEATURE_PSE) & 31) 63: #define NEED_PGE (1<<(X86_FEATURE_PGE) & 31) 64: #endif 65: #define NEED_MSR (1<<(X86_FEATURE_MSR & 31)) 66: #define NEED_FXSR (1<<(X86_FEATURE_FXSR & 31)) 67: #define NEED_XMM (1<<(X86_FEATURE_XMM & 31)) 68: #define NEED_XMM2 (1<<(X86_FEATURE_XMM2 & 31)) 69: #define NEED_LM (1<<(X86_FEATURE_LM & 31)) 70: #else 71: #define NEED_PSE 0 72: #define NEED_MSR 0 73: #define NEED_PGE 0 74: #define NEED_FXSR 0 75: #define NEED_XMM 0 76: #define NEED_XMM2 0 77: #define NEED_LM 0 78: #endif 79: 80: #define REQUIRED_MASK0 (NEED_FPU|NEED_PSE|NEED_MSR|NEED_PAE|\ NEED_CX8|NEED_PGE|NEED_FXSR|NEED_CMOV|\ NEED_XMM|NEED_XMM2) 83: #define SSE_MASK (NEED_XMM|NEED_XMM2) 84: 85: #define REQUIRED_MASK1 (NEED_LM|NEED_3DNOW) 86: 87: #define REQUIRED_MASK2 0 88: #define REQUIRED_MASK3 (NEED_NOPL) 89: #define REQUIRED_MASK4 (NEED_MOVBE) 90: #define REQUIRED_MASK5 0 91: #define REQUIRED_MASK6 0 92: #define REQUIRED_MASK7 0 93: #define REQUIRED_MASK8 0 94: #define REQUIRED_MASK9 0 95: 96: #endif /* _ASM_X86_REQUIRED_FEATURES_H */ 97: