summaryrefslogtreecommitdiff
path: root/Source/Core/Common/ArmCPUDetect.cpp
diff options
context:
space:
mode:
authorShawn Hoffman <godisgovernment@gmail.com>2023-01-17 01:23:44 -0800
committerShawn Hoffman <godisgovernment@gmail.com>2023-01-17 01:38:00 -0800
commitdff7f20f9db6210c4b9fe1f0bdd6332abde9f7d9 (patch)
tree990e7794ee72d6163c0860a4f90828f7bc494a68 /Source/Core/Common/ArmCPUDetect.cpp
parent10fd76889854e2367c39d902d70abf70e1d920f6 (diff)
windows: prefer os version from registry
this value is not modified by compatibility mode drop reporting service pack numbers. no longer used
Diffstat (limited to 'Source/Core/Common/ArmCPUDetect.cpp')
-rw-r--r--Source/Core/Common/ArmCPUDetect.cpp24
1 files changed, 3 insertions, 21 deletions
diff --git a/Source/Core/Common/ArmCPUDetect.cpp b/Source/Core/Common/ArmCPUDetect.cpp
index 7fe2d14220..43c0063f78 100644
--- a/Source/Core/Common/ArmCPUDetect.cpp
+++ b/Source/Core/Common/ArmCPUDetect.cpp
@@ -14,6 +14,7 @@
#elif defined(_WIN32)
#include <Windows.h>
#include <arm64intr.h>
+#include "Common/WindowsRegistry.h"
#else
#ifndef __FreeBSD__
#include <asm/hwcap.h>
@@ -55,33 +56,14 @@ static constexpr char SUBKEY_CORE0[] = R"(HARDWARE\DESCRIPTION\System\CentralPro
// There are some other maybe-interesting values nearby, BIOS info etc.
static bool ReadProcessorString(std::string* value, const std::string& name)
{
- const DWORD flags = RRF_RT_REG_SZ | RRF_NOEXPAND;
- DWORD value_len = 0;
- auto status = RegGetValueA(HKEY_LOCAL_MACHINE, SUBKEY_CORE0, name.c_str(), flags, nullptr,
- nullptr, &value_len);
- if (status != ERROR_SUCCESS && status != ERROR_MORE_DATA)
- return false;
-
- value->resize(value_len);
- status = RegGetValueA(HKEY_LOCAL_MACHINE, SUBKEY_CORE0, name.c_str(), flags, nullptr,
- value->data(), &value_len);
- if (status != ERROR_SUCCESS)
- {
- value->clear();
- return false;
- }
-
- TruncateToCString(value);
- return true;
+ return WindowsRegistry::ReadValue(value, SUBKEY_CORE0, name);
}
// Read cached register values from the registry
static bool ReadPrivilegedCPReg(u64* value, u32 reg)
{
- DWORD value_len = sizeof(*value);
// Not sure if the value name is padded or not
- return RegGetValueA(HKEY_LOCAL_MACHINE, SUBKEY_CORE0, fmt::format("CP {:x}", reg).c_str(),
- RRF_RT_REG_QWORD, nullptr, value, &value_len) == ERROR_SUCCESS;
+ return WindowsRegistry::ReadValue(value, SUBKEY_CORE0, fmt::format("CP {:x}", reg).c_str());
}
static bool Read_MIDR_EL1(u64* value)