1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2dd78b973SKees Cook #ifndef BOOT_CPUFLAGS_H 3dd78b973SKees Cook #define BOOT_CPUFLAGS_H 4dd78b973SKees Cook 5cd4d09ecSBorislav Petkov #include <asm/cpufeatures.h> 6dd78b973SKees Cook #include <asm/processor-flags.h> 7dd78b973SKees Cook 8dd78b973SKees Cook struct cpu_features { 9dd78b973SKees Cook int level; /* Family, or 64 for x86-64 */ 10e4a84be6SDave Hansen int family; /* Family, always */ 11dd78b973SKees Cook int model; 12dd78b973SKees Cook u32 flags[NCAPINTS]; 13dd78b973SKees Cook }; 14dd78b973SKees Cook 15dd78b973SKees Cook extern struct cpu_features cpu; 16dd78b973SKees Cook extern u32 cpu_vendor[3]; 17dd78b973SKees Cook 18dd78b973SKees Cook int has_eflag(unsigned long mask); 196e6a4932SH. Peter Anvin void get_cpuflags(void); 20*4b05f815SKuppuswamy Sathyanarayanan void cpuid_count(u32 id, u32 count, u32 *a, u32 *b, u32 *c, u32 *d); 21dd78b973SKees Cook 22dd78b973SKees Cook #endif 23