From f4a8b12921876f79a275e822057bcfdcc4626939 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Fri, 29 Dec 2023 12:21:01 +0000 Subject: [PATCH] Add Architecture files.. --- src/Architecture.cpp | 16 ++++++++++++++++ src/Architecture.h | 21 +++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/Architecture.cpp create mode 100644 src/Architecture.h diff --git a/src/Architecture.cpp b/src/Architecture.cpp new file mode 100644 index 0000000..5eae959 --- /dev/null +++ b/src/Architecture.cpp @@ -0,0 +1,16 @@ +#include "Architecture.h" + +std::wstring Architecture::AsString(const Value& arch) +{ + switch (arch) { + case X64: + return L"x64"; + case ARM64: + return L"arm64"; + case X86: + return L"x86"; + case UNKNOWN: + default: + return L"unknown"; + } +} diff --git a/src/Architecture.h b/src/Architecture.h new file mode 100644 index 0000000..6e5ccfa --- /dev/null +++ b/src/Architecture.h @@ -0,0 +1,21 @@ +#pragma once + +#include + +namespace Architecture +{ + // Ordered to ensure that we only check for JVMs that will run on the host arch. + // On an x64 host only check for x64 and x86 as arm will never run. + // On x86 there is no need to try any other arch as it wont run. + enum Value { + UNKNOWN, + ARM64, + X64, + X86, + }; + + constexpr Value VALUES[] = { UNKNOWN, ARM64, X64, X86 }; + + std::wstring AsString(const Value& arch); +}; +