From ec5f3351b69b6427d1e411fcc849e98705a044c3 Mon Sep 17 00:00:00 2001 From: Wunkolo Date: Wed, 23 Feb 2022 19:41:27 -0800 Subject: cpu_detect: Refactor cpu/manufacturer identification Set the zero-enum value to Unknown Move the Manufacterer enum into the CPUCaps structure namespace Add "ParseManufacturer" utility-function Fix cpu/brand string buffer sizes(!) --- src/common/x64/cpu_detect.h | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'src/common/x64/cpu_detect.h') diff --git a/src/common/x64/cpu_detect.h b/src/common/x64/cpu_detect.h index e4f90bee1..3e6d808f3 100644 --- a/src/common/x64/cpu_detect.h +++ b/src/common/x64/cpu_detect.h @@ -3,25 +3,32 @@ #pragma once +#include #include "common/common_types.h" namespace Common { -enum class Manufacturer : u8 { - Intel = 0, - AMD = 1, - Hygon = 2, - Unknown = 3, -}; - /// x86/x64 CPU capabilities that may be detected by this module struct CPUCaps { + + enum class Manufacturer : u8 { + Unknown = 0, + Intel = 1, + AMD = 2, + Hygon = 3, + }; + + static Manufacturer ParseManufacturer(std::string_view brand_string); + Manufacturer manufacturer; - char cpu_string[0x21]; - char brand_string[0x41]; + char brand_string[13]; + + char cpu_string[48]; + u32 base_frequency; u32 max_frequency; u32 bus_frequency; + bool sse : 1; bool sse2 : 1; bool sse3 : 1; -- cgit v1.2.3