162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef BOOT_CPUFLAGS_H 362306a36Sopenharmony_ci#define BOOT_CPUFLAGS_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <asm/cpufeatures.h> 662306a36Sopenharmony_ci#include <asm/processor-flags.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_cistruct cpu_features { 962306a36Sopenharmony_ci int level; /* Family, or 64 for x86-64 */ 1062306a36Sopenharmony_ci int family; /* Family, always */ 1162306a36Sopenharmony_ci int model; 1262306a36Sopenharmony_ci u32 flags[NCAPINTS]; 1362306a36Sopenharmony_ci}; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciextern struct cpu_features cpu; 1662306a36Sopenharmony_ciextern u32 cpu_vendor[3]; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciint has_eflag(unsigned long mask); 1962306a36Sopenharmony_civoid get_cpuflags(void); 2062306a36Sopenharmony_civoid cpuid_count(u32 id, u32 count, u32 *a, u32 *b, u32 *c, u32 *d); 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#endif 23