aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/ArmProcessContextFactory.cs
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /Ryujinx.HLE/HOS/ArmProcessContextFactory.cs
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'Ryujinx.HLE/HOS/ArmProcessContextFactory.cs')
-rw-r--r--Ryujinx.HLE/HOS/ArmProcessContextFactory.cs89
1 files changed, 0 insertions, 89 deletions
diff --git a/Ryujinx.HLE/HOS/ArmProcessContextFactory.cs b/Ryujinx.HLE/HOS/ArmProcessContextFactory.cs
deleted file mode 100644
index 1b0d66ac..00000000
--- a/Ryujinx.HLE/HOS/ArmProcessContextFactory.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using Ryujinx.Common.Configuration;
-using Ryujinx.Cpu;
-using Ryujinx.Cpu.AppleHv;
-using Ryujinx.Cpu.Jit;
-using Ryujinx.Graphics.Gpu;
-using Ryujinx.HLE.HOS.Kernel;
-using Ryujinx.HLE.HOS.Kernel.Process;
-using Ryujinx.Memory;
-using System;
-using System.Runtime.InteropServices;
-
-namespace Ryujinx.HLE.HOS
-{
- class ArmProcessContextFactory : IProcessContextFactory
- {
- private readonly ITickSource _tickSource;
- private readonly GpuContext _gpu;
- private readonly string _titleIdText;
- private readonly string _displayVersion;
- private readonly bool _diskCacheEnabled;
- private readonly ulong _codeAddress;
- private readonly ulong _codeSize;
-
- public IDiskCacheLoadState DiskCacheLoadState { get; private set; }
-
- public ArmProcessContextFactory(
- ITickSource tickSource,
- GpuContext gpu,
- string titleIdText,
- string displayVersion,
- bool diskCacheEnabled,
- ulong codeAddress,
- ulong codeSize)
- {
- _tickSource = tickSource;
- _gpu = gpu;
- _titleIdText = titleIdText;
- _displayVersion = displayVersion;
- _diskCacheEnabled = diskCacheEnabled;
- _codeAddress = codeAddress;
- _codeSize = codeSize;
- }
-
- public IProcessContext Create(KernelContext context, ulong pid, ulong addressSpaceSize, InvalidAccessHandler invalidAccessHandler, bool for64Bit)
- {
- IArmProcessContext processContext;
-
- if (OperatingSystem.IsMacOS() && RuntimeInformation.ProcessArchitecture == Architecture.Arm64 && for64Bit && context.Device.Configuration.UseHypervisor)
- {
- var cpuEngine = new HvEngine(_tickSource);
- var memoryManager = new HvMemoryManager(context.Memory, addressSpaceSize, invalidAccessHandler);
- processContext = new ArmProcessContext<HvMemoryManager>(pid, cpuEngine, _gpu, memoryManager, for64Bit);
- }
- else
- {
- MemoryManagerMode mode = context.Device.Configuration.MemoryManagerMode;
-
- if (!MemoryBlock.SupportsFlags(MemoryAllocationFlags.ViewCompatible))
- {
- mode = MemoryManagerMode.SoftwarePageTable;
- }
-
- var cpuEngine = new JitEngine(_tickSource);
-
- switch (mode)
- {
- case MemoryManagerMode.SoftwarePageTable:
- var memoryManager = new MemoryManager(context.Memory, addressSpaceSize, invalidAccessHandler);
- processContext = new ArmProcessContext<MemoryManager>(pid, cpuEngine, _gpu, memoryManager, for64Bit);
- break;
-
- case MemoryManagerMode.HostMapped:
- case MemoryManagerMode.HostMappedUnsafe:
- bool unsafeMode = mode == MemoryManagerMode.HostMappedUnsafe;
- var memoryManagerHostMapped = new MemoryManagerHostMapped(context.Memory, addressSpaceSize, unsafeMode, invalidAccessHandler);
- processContext = new ArmProcessContext<MemoryManagerHostMapped>(pid, cpuEngine, _gpu, memoryManagerHostMapped, for64Bit);
- break;
-
- default:
- throw new ArgumentOutOfRangeException();
- }
- }
-
- DiskCacheLoadState = processContext.Initialize(_titleIdText, _displayVersion, _diskCacheEnabled, _codeAddress, _codeSize);
-
- return processContext;
- }
- }
-}