summaryrefslogtreecommitdiff
path: root/src/common/x64/cpu_detect.h
diff options
context:
space:
mode:
authorWunkolo <Wunkolo@gmail.com>2022-02-23 19:41:27 -0800
committerWunkolo <Wunkolo@gmail.com>2022-03-09 13:57:47 -0800
commitec5f3351b69b6427d1e411fcc849e98705a044c3 (patch)
treec137667f61e31588ef1b07298a7e2c8a0d1a49be /src/common/x64/cpu_detect.h
parent86e9e60f07d59d6e3bf5d3a9cabf7db3fedb40c7 (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.h25
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;