diff options
author | Wunkolo <Wunkolo@gmail.com> | 2022-02-23 19:41:27 -0800 |
---|---|---|
committer | Wunkolo <Wunkolo@gmail.com> | 2022-03-09 13:57:47 -0800 |
commit | ec5f3351b69b6427d1e411fcc849e98705a044c3 (patch) | |
tree | c137667f61e31588ef1b07298a7e2c8a0d1a49be /src/common/x64/cpu_detect.h | |
parent | 86e9e60f07d59d6e3bf5d3a9cabf7db3fedb40c7 (diff) |
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(!)
Diffstat (limited to 'src/common/x64/cpu_detect.h')
-rw-r--r-- | src/common/x64/cpu_detect.h | 25 |
1 files changed, 16 insertions, 9 deletions
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 <string_view> #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; |