From e5d54d53749c111152c60502032d0d6ba37460c7 Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Sat, 11 Nov 2023 20:06:56 +0000 Subject: [PATCH] rebase with upstream --- .../CodeGen/Arm64/HardwareCapabilities.cs | 2 +- .../Signal/NativeSignalHandlerGenerator.cs | 2 +- src/ARMeilleure/Translation/PTC/Ptc.cs | 12 +--------- src/LibRyujinx/Android/JniExportedMethods.cs | 4 ++-- src/LibRyujinx/Jni/Pointers/JBooleanRef.cs | 11 ++++++--- src/LibRyujinx/Jni/Values/JValue.cs | 9 ++++--- src/LibRyujinx/LibRyujinx.Graphics.cs | 4 ++-- src/LibRyujinx/LibRyujinx.csproj | 4 +++- src/Ryujinx.Common/Logging/Logger.cs | 2 +- src/Ryujinx.Common/PlatformInfo.cs | 13 ++++++++++ src/Ryujinx.Common/ReleaseInformation.cs | 4 ++-- src/Ryujinx.Cpu/Jit/MemoryManager.cs | 5 ---- .../Jit/MemoryManagerHostMapped.cs | 5 ---- src/Ryujinx.Cpu/Nce/NceThreadPal.cs | 4 ++-- src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs | 4 ++-- .../Signal/UnixSignalHandlerRegistration.cs | 8 +++---- src/Ryujinx.Graphics.Vulkan/Window.cs | 2 +- .../Nifm/StaticService/IGeneralService.cs | 4 ++-- src/Ryujinx.Memory/AddressSpaceManager.cs | 5 ---- src/Ryujinx.Memory/IVirtualMemoryManager.cs | 8 ------- src/Ryujinx.Memory/MemoryBlock.cs | 2 +- src/Ryujinx.Memory/MemoryManagement.cs | 24 +++++++++---------- src/Ryujinx.Memory/MemoryManagementUnix.cs | 2 +- src/Ryujinx.Memory/MemoryManagerUnixHelper.cs | 6 ++--- .../SystemInfo/SystemInfo.cs | 6 ----- 25 files changed, 68 insertions(+), 84 deletions(-) create mode 100644 src/Ryujinx.Common/PlatformInfo.cs diff --git a/src/ARMeilleure/CodeGen/Arm64/HardwareCapabilities.cs b/src/ARMeilleure/CodeGen/Arm64/HardwareCapabilities.cs index d2b41bc9b..86afc2b4d 100644 --- a/src/ARMeilleure/CodeGen/Arm64/HardwareCapabilities.cs +++ b/src/ARMeilleure/CodeGen/Arm64/HardwareCapabilities.cs @@ -14,7 +14,7 @@ namespace ARMeilleure.CodeGen.Arm64 return; } - if (OperatingSystem.IsLinux() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (OperatingSystem.IsLinux()) { LinuxFeatureInfoHwCap = (LinuxFeatureFlagsHwCap)getauxval(AT_HWCAP); LinuxFeatureInfoHwCap2 = (LinuxFeatureFlagsHwCap2)getauxval(AT_HWCAP2); diff --git a/src/ARMeilleure/Signal/NativeSignalHandlerGenerator.cs b/src/ARMeilleure/Signal/NativeSignalHandlerGenerator.cs index 245994fb4..c5e708e16 100644 --- a/src/ARMeilleure/Signal/NativeSignalHandlerGenerator.cs +++ b/src/ARMeilleure/Signal/NativeSignalHandlerGenerator.cs @@ -111,7 +111,7 @@ namespace ARMeilleure.Signal return context.BitwiseAnd(err, Const(2ul)); } } - else if (OperatingSystem.IsLinux() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux()) { if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64) { diff --git a/src/ARMeilleure/Translation/PTC/Ptc.cs b/src/ARMeilleure/Translation/PTC/Ptc.cs index 15d574959..e1de6d8f1 100644 --- a/src/ARMeilleure/Translation/PTC/Ptc.cs +++ b/src/ARMeilleure/Translation/PTC/Ptc.cs @@ -413,11 +413,6 @@ namespace ARMeilleure.Translation.PTC finally { ResetCarriersIfNeeded(); - - if (!OperatingSystem.IsAndroid()) - { - GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; - } } _waitEvent.Set(); @@ -793,11 +788,6 @@ namespace ARMeilleure.Translation.PTC { ResetCarriersIfNeeded(); - if (!OperatingSystem.IsAndroid()) - { - GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; - } - return; } @@ -1010,7 +1000,7 @@ namespace ARMeilleure.Translation.PTC osPlatform |= (OperatingSystem.IsLinux() ? 1u : 0u) << 1; osPlatform |= (OperatingSystem.IsMacOS() ? 1u : 0u) << 2; osPlatform |= (OperatingSystem.IsWindows() ? 1u : 0u) << 3; - osPlatform |= (Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid() ? 1u : 0u) << 4; + osPlatform |= (Ryujinx.Common.PlatformInfo.IsBionic ? 1u : 0u) << 4; #pragma warning restore IDE0055 return osPlatform; diff --git a/src/LibRyujinx/Android/JniExportedMethods.cs b/src/LibRyujinx/Android/JniExportedMethods.cs index 1d443f299..e548b5996 100644 --- a/src/LibRyujinx/Android/JniExportedMethods.cs +++ b/src/LibRyujinx/Android/JniExportedMethods.cs @@ -7,10 +7,10 @@ using LibRyujinx.Shared.Audio.Oboe; using Microsoft.Win32.SafeHandles; using Rxmxnx.PInvoke; using Ryujinx.Audio.Backends.OpenAL; +using Ryujinx.Common; using Ryujinx.Common.Configuration; using Ryujinx.Common.Logging; using Ryujinx.Common.Logging.Targets; -using Ryujinx.Common.SystemInfo; using Ryujinx.HLE.HOS.SystemState; using Ryujinx.Input; using Silk.NET.Core.Loader; @@ -87,7 +87,7 @@ namespace LibRyujinx public static JBoolean JniInitialize(JEnvRef jEnv, JObjectLocalRef jObj, JLong jpathId, JBoolean enableDebugLogs) { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); - SystemInfo.IsBionic = true; + PlatformInfo.IsBionic = true; Logger.AddTarget( new AsyncLogTargetWrapper( diff --git a/src/LibRyujinx/Jni/Pointers/JBooleanRef.cs b/src/LibRyujinx/Jni/Pointers/JBooleanRef.cs index 6ec641f3d..82c6d1767 100644 --- a/src/LibRyujinx/Jni/Pointers/JBooleanRef.cs +++ b/src/LibRyujinx/Jni/Pointers/JBooleanRef.cs @@ -9,8 +9,8 @@ namespace LibRyujinx.Jni.Pointers { public readonly struct JBooleanRef { - private const Int32 JBooleanResultFalse = 0; - private const Int32 JBooleanResultTrue = 1; + private static readonly Int32 JBooleanResultFalse = 0; + private static readonly Int32 JBooleanResultTrue = 1; #pragma warning disable IDE0052 private readonly IntPtr _value; @@ -20,6 +20,11 @@ namespace LibRyujinx.Jni.Pointers => this._value = jBoolean.HasValue ? GetJBooleanRef(jBoolean.Value) : IntPtr.Zero; private static IntPtr GetJBooleanRef(Boolean value) - => value ? Unsafe.AsRef(JBooleanResultTrue).GetUnsafeIntPtr() : Unsafe.AsRef(JBooleanResultFalse).GetUnsafeIntPtr(); + { + // Probably gonna break stuff + var t = JBooleanResultTrue; + var f = JBooleanResultFalse; + return value ? Unsafe.AsRef(ref f).GetUnsafeIntPtr() : Unsafe.AsRef(ref t).GetUnsafeIntPtr(); + } } } diff --git a/src/LibRyujinx/Jni/Values/JValue.cs b/src/LibRyujinx/Jni/Values/JValue.cs index c482b85ad..f6fadd199 100644 --- a/src/LibRyujinx/Jni/Values/JValue.cs +++ b/src/LibRyujinx/Jni/Values/JValue.cs @@ -24,7 +24,7 @@ namespace LibRyujinx.Jni.Values public Boolean IsDefault => isDefault(this); - public static JValue Create(ReadOnlySpan source) + public static JValue Create(in ReadOnlySpan source) { Byte[] result = new Byte[Size]; for (Int32 i = 0; i < source.Length; i++) @@ -38,7 +38,10 @@ namespace LibRyujinx.Jni.Values => (jValue._value1 + jValue._value2 + jValue._value3) == default && jValue._value4 == default; - private static Boolean DefaultLong(in JValue jValue) => - Unsafe.AsRef(jValue).Transform() == default; + private static Boolean DefaultLong(in JValue jValue) + { + var jv = jValue; + return Unsafe.AsRef(ref jv).Transform() == default; + } } } diff --git a/src/LibRyujinx/LibRyujinx.Graphics.cs b/src/LibRyujinx/LibRyujinx.Graphics.cs index b247a5b98..1ef5e4af5 100644 --- a/src/LibRyujinx/LibRyujinx.Graphics.cs +++ b/src/LibRyujinx/LibRyujinx.Graphics.cs @@ -37,7 +37,7 @@ namespace LibRyujinx [UnmanagedCallersOnly(EntryPoint = "graphics_initialize")] public static bool InitializeGraphicsNative(GraphicsConfiguration graphicsConfiguration) { - if(Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if(Ryujinx.Common.PlatformInfo.IsBionic) { Silk.NET.Core.Loader.SearchPathContainer.Platform = Silk.NET.Core.Loader.UnderlyingPlatform.Android; } @@ -179,7 +179,7 @@ namespace LibRyujinx debug_break(1); - if (Ryujinx.Common.SystemInfo.SystemInfo.IsBionic) + if (Ryujinx.Common.PlatformInfo.IsBionic) { setRenderingThread(); } diff --git a/src/LibRyujinx/LibRyujinx.csproj b/src/LibRyujinx/LibRyujinx.csproj index 06e2c55f1..1a3e36268 100644 --- a/src/LibRyujinx/LibRyujinx.csproj +++ b/src/LibRyujinx/LibRyujinx.csproj @@ -8,12 +8,14 @@ true + Shared true true true - Speed + true + Speed diff --git a/src/Ryujinx.Common/Logging/Logger.cs b/src/Ryujinx.Common/Logging/Logger.cs index 55cff2251..dc2399e07 100644 --- a/src/Ryujinx.Common/Logging/Logger.cs +++ b/src/Ryujinx.Common/Logging/Logger.cs @@ -126,7 +126,7 @@ namespace Ryujinx.Common.Logging _time = Stopwatch.StartNew(); - if (!Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (!Ryujinx.Common.PlatformInfo.IsBionic) { // Logger should log to console by default AddTarget(new AsyncLogTargetWrapper( diff --git a/src/Ryujinx.Common/PlatformInfo.cs b/src/Ryujinx.Common/PlatformInfo.cs new file mode 100644 index 000000000..db41a9ac1 --- /dev/null +++ b/src/Ryujinx.Common/PlatformInfo.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Ryujinx.Common +{ + public static class PlatformInfo + { + public static bool IsBionic { get; set; } + } +} diff --git a/src/Ryujinx.Common/ReleaseInformation.cs b/src/Ryujinx.Common/ReleaseInformation.cs index 4118f79a0..5de8aa568 100644 --- a/src/Ryujinx.Common/ReleaseInformation.cs +++ b/src/Ryujinx.Common/ReleaseInformation.cs @@ -35,7 +35,7 @@ namespace Ryujinx.Common return BuildVersion; } - if (SystemInfo.SystemInfo.IsBionic) + if (PlatformInfo.IsBionic) { return "Android_1.0"; } @@ -59,7 +59,7 @@ namespace Ryujinx.Common #else public static string GetBaseApplicationDirectory() { - if (IsFlatHubBuild() || OperatingSystem.IsMacOS() || SystemInfo.SystemInfo.IsBionic) + if (IsFlatHubBuild() || OperatingSystem.IsMacOS() || PlatformInfo.IsBionic) { return AppDataManager.BaseDirPath; } diff --git a/src/Ryujinx.Cpu/Jit/MemoryManager.cs b/src/Ryujinx.Cpu/Jit/MemoryManager.cs index fca12870c..da7b912c0 100644 --- a/src/Ryujinx.Cpu/Jit/MemoryManager.cs +++ b/src/Ryujinx.Cpu/Jit/MemoryManager.cs @@ -126,11 +126,6 @@ namespace Ryujinx.Cpu.Jit } } - /// - public void Reprotect(ulong va, ulong size, MemoryPermission permission) - { - } - /// public T Read(ulong va) where T : unmanaged { diff --git a/src/Ryujinx.Cpu/Jit/MemoryManagerHostMapped.cs b/src/Ryujinx.Cpu/Jit/MemoryManagerHostMapped.cs index f6adb93a1..53289fe94 100644 --- a/src/Ryujinx.Cpu/Jit/MemoryManagerHostMapped.cs +++ b/src/Ryujinx.Cpu/Jit/MemoryManagerHostMapped.cs @@ -194,11 +194,6 @@ namespace Ryujinx.Cpu.Jit } } - /// - public void Reprotect(ulong va, ulong size, MemoryPermission permission) - { - } - /// public T Read(ulong va) where T : unmanaged { diff --git a/src/Ryujinx.Cpu/Nce/NceThreadPal.cs b/src/Ryujinx.Cpu/Nce/NceThreadPal.cs index 77238b7fc..725c32022 100644 --- a/src/Ryujinx.Cpu/Nce/NceThreadPal.cs +++ b/src/Ryujinx.Cpu/Nce/NceThreadPal.cs @@ -11,7 +11,7 @@ namespace Ryujinx.Cpu.Nce public static IntPtr GetCurrentThreadHandle() { - if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsBionic) + if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { return NceThreadPalUnix.GetCurrentThreadHandle(); } @@ -23,7 +23,7 @@ namespace Ryujinx.Cpu.Nce public static void SuspendThread(IntPtr handle) { - if (Ryujinx.Common.SystemInfo.SystemInfo.IsBionic) + if (Ryujinx.Common.PlatformInfo.IsBionic) { NceThreadPalAndroid.SuspendThread(handle); } diff --git a/src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs b/src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs index 0acc07f57..83669a354 100644 --- a/src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs +++ b/src/Ryujinx.Cpu/Signal/NativeSignalHandler.cs @@ -88,11 +88,11 @@ namespace Ryujinx.Cpu.Signal ref SignalHandlerConfig config = ref GetConfigRef(); - if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || PlatformInfo.IsBionic) { _signalHandlerPtr = MapCode(NativeSignalHandlerGenerator.GenerateUnixSignalHandler(_handlerConfig, rangeStructSize, pageSize)); - if (Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (PlatformInfo.IsBionic) { config.StructAddressOffset = 16; // si_addr config.StructWriteOffset = 8; // si_code diff --git a/src/Ryujinx.Cpu/Signal/UnixSignalHandlerRegistration.cs b/src/Ryujinx.Cpu/Signal/UnixSignalHandlerRegistration.cs index 456e9d582..c20d2c696 100644 --- a/src/Ryujinx.Cpu/Signal/UnixSignalHandlerRegistration.cs +++ b/src/Ryujinx.Cpu/Signal/UnixSignalHandlerRegistration.cs @@ -68,7 +68,7 @@ namespace Ryujinx.Cpu.Signal int result; SigAction old; - if (Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (Ryujinx.Common.PlatformInfo.IsBionic) { result = sigaction(SIGSEGV, IntPtr.Zero, out SigActionBionic tmp); @@ -98,7 +98,7 @@ namespace Ryujinx.Cpu.Signal int result; SigAction old; - if (Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (Ryujinx.Common.PlatformInfo.IsBionic) { SigActionBionic sig = new() { @@ -185,7 +185,7 @@ namespace Ryujinx.Cpu.Signal { int result; - if (Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (Ryujinx.Common.PlatformInfo.IsBionic) { SigActionBionic sig = new() { @@ -233,7 +233,7 @@ namespace Ryujinx.Cpu.Signal public static bool RestoreExceptionHandler(SigAction oldAction) { - if (Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (Ryujinx.Common.PlatformInfo.IsBionic) { SigActionBionic tmp = new SigActionBionic { diff --git a/src/Ryujinx.Graphics.Vulkan/Window.cs b/src/Ryujinx.Graphics.Vulkan/Window.cs index 9347364c0..6616eeba4 100644 --- a/src/Ryujinx.Graphics.Vulkan/Window.cs +++ b/src/Ryujinx.Graphics.Vulkan/Window.cs @@ -142,7 +142,7 @@ namespace Ryujinx.Graphics.Vulkan ImageFormat = surfaceFormat.Format, ImageColorSpace = surfaceFormat.ColorSpace, ImageExtent = extent, - ImageUsage = ImageUsageFlags.ColorAttachmentBit | ImageUsageFlags.TransferDstBit | (Ryujinx.Common.SystemInfo.SystemInfo.IsBionic ? 0 : ImageUsageFlags.StorageBit), + ImageUsage = ImageUsageFlags.ColorAttachmentBit | ImageUsageFlags.TransferDstBit | (Ryujinx.Common.PlatformInfo.IsBionic ? 0 : ImageUsageFlags.StorageBit), ImageSharingMode = SharingMode.Exclusive, ImageArrayLayers = 1, PreTransform = capabilities.CurrentTransform, diff --git a/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs b/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs index dec68d28c..dc3a25b79 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs @@ -25,7 +25,7 @@ namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService IsAnyInternetRequestAccepted = true, // NOTE: Why not accept any internet request? }; - if (!Ryujinx.Common.SystemInfo.SystemInfo.IsBionic) + if (!Ryujinx.Common.PlatformInfo.IsBionic) { NetworkChange.NetworkAddressChanged += LocalInterfaceCacheHandler; } @@ -199,7 +199,7 @@ namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService { if (isDisposing) { - if (!Ryujinx.Common.SystemInfo.SystemInfo.IsBionic) + if (!Ryujinx.Common.PlatformInfo.IsBionic) { NetworkChange.NetworkAddressChanged -= LocalInterfaceCacheHandler; } diff --git a/src/Ryujinx.Memory/AddressSpaceManager.cs b/src/Ryujinx.Memory/AddressSpaceManager.cs index a6620b4f7..021d33663 100644 --- a/src/Ryujinx.Memory/AddressSpaceManager.cs +++ b/src/Ryujinx.Memory/AddressSpaceManager.cs @@ -96,11 +96,6 @@ namespace Ryujinx.Memory } } - /// - public void Reprotect(ulong va, ulong size, MemoryPermission permission) - { - } - /// public T Read(ulong va) where T : unmanaged { diff --git a/src/Ryujinx.Memory/IVirtualMemoryManager.cs b/src/Ryujinx.Memory/IVirtualMemoryManager.cs index edfeb79ad..9cf3663cf 100644 --- a/src/Ryujinx.Memory/IVirtualMemoryManager.cs +++ b/src/Ryujinx.Memory/IVirtualMemoryManager.cs @@ -44,14 +44,6 @@ namespace Ryujinx.Memory /// Size of the range to be unmapped void Unmap(ulong va, ulong size); - /// - /// Reprotects a previously mapped range of virtual memory. - /// - /// Virtual address of the range to be reprotected - /// Size of the range to be reprotected - /// New protection of the memory range - void Reprotect(ulong va, ulong size, MemoryPermission permission); - /// /// Reads data from CPU mapped memory. /// diff --git a/src/Ryujinx.Memory/MemoryBlock.cs b/src/Ryujinx.Memory/MemoryBlock.cs index f3bb5c62d..f9284ba5b 100644 --- a/src/Ryujinx.Memory/MemoryBlock.cs +++ b/src/Ryujinx.Memory/MemoryBlock.cs @@ -426,7 +426,7 @@ namespace Ryujinx.Memory return OperatingSystem.IsWindowsVersionAtLeast(10, 0, 17134); } - return OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid(); + return OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic; } return true; diff --git a/src/Ryujinx.Memory/MemoryManagement.cs b/src/Ryujinx.Memory/MemoryManagement.cs index c7683b316..0ec49849b 100644 --- a/src/Ryujinx.Memory/MemoryManagement.cs +++ b/src/Ryujinx.Memory/MemoryManagement.cs @@ -10,7 +10,7 @@ namespace Ryujinx.Memory { return MemoryManagementWindows.Allocate((IntPtr)size); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { return MemoryManagementUnix.Allocate(size, forJit); } @@ -26,7 +26,7 @@ namespace Ryujinx.Memory { return MemoryManagementWindows.Reserve((IntPtr)size, viewCompatible); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { return MemoryManagementUnix.Reserve(size, forJit); } @@ -42,7 +42,7 @@ namespace Ryujinx.Memory { MemoryManagementWindows.Commit(address, (IntPtr)size); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { MemoryManagementUnix.Commit(address, size, forJit); } @@ -58,7 +58,7 @@ namespace Ryujinx.Memory { MemoryManagementWindows.Decommit(address, (IntPtr)size); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { MemoryManagementUnix.Decommit(address, size); } @@ -74,7 +74,7 @@ namespace Ryujinx.Memory { MemoryManagementWindows.MapView(sharedMemory, srcOffset, address, (IntPtr)size, owner); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { MemoryManagementUnix.MapView(sharedMemory, srcOffset, address, size); } @@ -90,7 +90,7 @@ namespace Ryujinx.Memory { MemoryManagementWindows.UnmapView(sharedMemory, address, (IntPtr)size, owner); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { MemoryManagementUnix.UnmapView(address, size); } @@ -108,7 +108,7 @@ namespace Ryujinx.Memory { result = MemoryManagementWindows.Reprotect(address, (IntPtr)size, permission, forView); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { result = MemoryManagementUnix.Reprotect(address, size, permission); } @@ -129,7 +129,7 @@ namespace Ryujinx.Memory { return MemoryManagementWindows.Free(address, (IntPtr)size); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { return MemoryManagementUnix.Free(address); } @@ -145,7 +145,7 @@ namespace Ryujinx.Memory { return MemoryManagementWindows.CreateSharedMemory((IntPtr)size, reserve); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { return MemoryManagementUnix.CreateSharedMemory(size, reserve); } @@ -161,7 +161,7 @@ namespace Ryujinx.Memory { MemoryManagementWindows.DestroySharedMemory(handle); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { MemoryManagementUnix.DestroySharedMemory(handle); } @@ -177,7 +177,7 @@ namespace Ryujinx.Memory { return MemoryManagementWindows.MapSharedMemory(handle); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { return MemoryManagementUnix.MapSharedMemory(handle, size); } @@ -193,7 +193,7 @@ namespace Ryujinx.Memory { MemoryManagementWindows.UnmapSharedMemory(address); } - else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS() || Ryujinx.Common.PlatformInfo.IsBionic) { MemoryManagementUnix.UnmapSharedMemory(address, size); } diff --git a/src/Ryujinx.Memory/MemoryManagementUnix.cs b/src/Ryujinx.Memory/MemoryManagementUnix.cs index ac008e697..a4020c026 100644 --- a/src/Ryujinx.Memory/MemoryManagementUnix.cs +++ b/src/Ryujinx.Memory/MemoryManagementUnix.cs @@ -159,7 +159,7 @@ namespace Ryujinx.Memory } } } - else if (Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + else if (Ryujinx.Common.PlatformInfo.IsBionic) { byte[] memName = "Ryujinx-XXXXXX"u8.ToArray(); diff --git a/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs b/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs index a876a6016..a0d943d35 100644 --- a/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs +++ b/src/Ryujinx.Memory/MemoryManagerUnixHelper.cs @@ -113,7 +113,7 @@ namespace Ryujinx.Memory if (flags.HasFlag(MmapFlags.MAP_ANONYMOUS)) { - if (OperatingSystem.IsLinux() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (OperatingSystem.IsLinux() || Ryujinx.Common.PlatformInfo.IsBionic) { result |= MAP_ANONYMOUS_LINUX_GENERIC; } @@ -129,7 +129,7 @@ namespace Ryujinx.Memory if (flags.HasFlag(MmapFlags.MAP_NORESERVE)) { - if (OperatingSystem.IsLinux() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (OperatingSystem.IsLinux() || Ryujinx.Common.PlatformInfo.IsBionic) { result |= MAP_NORESERVE_LINUX_GENERIC; } @@ -145,7 +145,7 @@ namespace Ryujinx.Memory if (flags.HasFlag(MmapFlags.MAP_UNLOCKED)) { - if (OperatingSystem.IsLinux() || Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid()) + if (OperatingSystem.IsLinux() || Ryujinx.Common.PlatformInfo.IsBionic) { result |= MAP_UNLOCKED_LINUX_GENERIC; } diff --git a/src/Ryujinx.Ui.Common/SystemInfo/SystemInfo.cs b/src/Ryujinx.Ui.Common/SystemInfo/SystemInfo.cs index c9c47dcd9..e78db8af7 100644 --- a/src/Ryujinx.Ui.Common/SystemInfo/SystemInfo.cs +++ b/src/Ryujinx.Ui.Common/SystemInfo/SystemInfo.cs @@ -9,7 +9,6 @@ namespace Ryujinx.Ui.Common.SystemInfo { public class SystemInfo { - public static bool IsBionic { get; set; } public string OsDescription { get; protected set; } public string CpuName { get; protected set; } public ulong RamTotal { get; protected set; } @@ -76,10 +75,5 @@ namespace Ryujinx.Ui.Common.SystemInfo return string.IsNullOrEmpty(name) ? null : name; } - - public static bool IsAndroid() - { - return OperatingSystem.IsAndroid() || IsBionic; - } } }