#ifndef __CPU_INFO__H_ #define __CPU_INFO__H_ enum ProcessorVendors { VENDOR_INTEL = 1, VENDOR_AMD, VENDOR_OTHER, VENDOR_MAX }; enum ProcessorTypes { INTEL_ATOM = 1, INTEL_CORE2, INTEL_COREI7, AMDFAM10H, AMDFAM15H, INTEL_i386, INTEL_i486, INTEL_PENTIUM, INTEL_PENTIUM_PRO, INTEL_PENTIUM_II, INTEL_PENTIUM_III, INTEL_PENTIUM_IV, INTEL_PENTIUM_M, INTEL_CORE_DUO, INTEL_XEONPHI, INTEL_X86_64, INTEL_NOCONA, INTEL_PRESCOTT, AMD_i486, AMDPENTIUM, AMDATHLON, AMDFAM14H, AMDFAM16H, CPU_TYPE_MAX }; enum ProcessorSubtypes { INTEL_COREI7_NEHALEM = 1, INTEL_COREI7_WESTMERE, INTEL_COREI7_SANDYBRIDGE, AMDFAM10H_BARCELONA, AMDFAM10H_SHANGHAI, AMDFAM10H_ISTANBUL, AMDFAM15H_BDVER1, AMDFAM15H_BDVER2, INTEL_PENTIUM_MMX, INTEL_CORE2_65, INTEL_CORE2_45, INTEL_COREI7_IVYBRIDGE, INTEL_COREI7_HASWELL, INTEL_COREI7_BROADWELL, INTEL_COREI7_SKYLAKE, INTEL_COREI7_SKYLAKE_AVX512, INTEL_ATOM_BONNELL, INTEL_ATOM_SILVERMONT, INTEL_KNIGHTS_LANDING, AMDPENTIUM_K6, AMDPENTIUM_K62, AMDPENTIUM_K63, AMDPENTIUM_GEODE, AMDATHLON_TBIRD, AMDATHLON_MP, AMDATHLON_XP, AMDATHLON_K8SSE3, AMDATHLON_OPTERON, AMDATHLON_FX, AMDATHLON_64, AMD_BTVER1, AMD_BTVER2, AMDFAM15H_BDVER3, AMDFAM15H_BDVER4, CPU_SUBTYPE_MAX }; enum ProcessorFeatures { FEATURE_CMOV = 0, FEATURE_MMX, FEATURE_POPCNT, FEATURE_SSE, FEATURE_SSE2, FEATURE_SSE3, FEATURE_SSSE3, FEATURE_SSE4_1, FEATURE_SSE4_2, FEATURE_AVX, FEATURE_AVX2, FEATURE_AVX512, FEATURE_AVX512SAVE, FEATURE_MOVBE, FEATURE_ADX, FEATURE_EM64T }; #endif