aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Common/SystemInfo/SystemInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Common/SystemInfo/SystemInfo.cs')
-rw-r--r--src/Ryujinx.Common/SystemInfo/SystemInfo.cs78
1 files changed, 0 insertions, 78 deletions
diff --git a/src/Ryujinx.Common/SystemInfo/SystemInfo.cs b/src/Ryujinx.Common/SystemInfo/SystemInfo.cs
deleted file mode 100644
index 55ec0127..00000000
--- a/src/Ryujinx.Common/SystemInfo/SystemInfo.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-using Ryujinx.Common.Logging;
-using System;
-using System.Runtime.InteropServices;
-using System.Runtime.Intrinsics.X86;
-using System.Text;
-
-namespace Ryujinx.Common.SystemInfo
-{
- public class SystemInfo
- {
- public string OsDescription { get; protected set; }
- public string CpuName { get; protected set; }
- public ulong RamTotal { get; protected set; }
- public ulong RamAvailable { get; protected set; }
- protected static int LogicalCoreCount => Environment.ProcessorCount;
-
- protected SystemInfo()
- {
- OsDescription = $"{RuntimeInformation.OSDescription} ({RuntimeInformation.OSArchitecture})";
- CpuName = "Unknown";
- }
-
- private static string ToMiBString(ulong bytesValue) => (bytesValue == 0) ? "Unknown" : $"{bytesValue / 1024 / 1024} MiB";
-
- public void Print()
- {
- Logger.Notice.Print(LogClass.Application, $"Operating System: {OsDescription}");
- Logger.Notice.Print(LogClass.Application, $"CPU: {CpuName}");
- Logger.Notice.Print(LogClass.Application, $"RAM: Total {ToMiBString(RamTotal)} ; Available {ToMiBString(RamAvailable)}");
- }
-
- public static SystemInfo Gather()
- {
- if (OperatingSystem.IsWindows())
- {
- return new WindowsSystemInfo();
- }
- else if (OperatingSystem.IsLinux())
- {
- return new LinuxSystemInfo();
- }
- else if (OperatingSystem.IsMacOS())
- {
- return new MacOSSystemInfo();
- }
-
- Logger.Error?.Print(LogClass.Application, "SystemInfo unsupported on this platform");
-
- return new SystemInfo();
- }
-
- // x86 exposes a 48 byte ASCII "CPU brand" string via CPUID leaves 0x80000002-0x80000004.
- internal static string GetCpuidCpuName()
- {
- if (!X86Base.IsSupported)
- {
- return null;
- }
-
- // Check if CPU supports the query
- if ((uint)X86Base.CpuId(unchecked((int)0x80000000), 0).Eax < 0x80000004)
- {
- return null;
- }
-
- int[] regs = new int[12];
-
- for (uint i = 0; i < 3; ++i)
- {
- (regs[4 * i], regs[4 * i + 1], regs[4 * i + 2], regs[4 * i + 3]) = X86Base.CpuId((int)(0x80000002 + i), 0);
- }
-
- string name = Encoding.ASCII.GetString(MemoryMarshal.Cast<int, byte>(regs)).Replace('\0', ' ').Trim();
-
- return string.IsNullOrEmpty(name) ? null : name;
- }
- }
-}