From c393cdf8e3775bc95850e4d8c8e4c446b286d3b4 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Wed, 15 Aug 2018 15:59:51 -0300 Subject: More flexible memory manager (#307) * Keep track mapped buffers with fixed offsets * Started rewriting the memory manager * Initial support for MapPhysicalMemory and UnmapPhysicalMemory, other tweaks * MapPhysicalMemory/UnmapPhysicalMemory support, other tweaks * Rebased * Optimize the map/unmap physical memory svcs * Integrate shared font support * Fix address space reserve alignment * Some fixes related to gpu memory mapping * Some cleanup * Only try uploading const buffers that are really used * Check if memory region is contiguous * Rebased * Add missing count increment on IsRegionModified * Check for reads/writes outside of the address space, optimize translation with a tail call --- Ryujinx.Tests/Cpu/CpuTest.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'Ryujinx.Tests/Cpu') diff --git a/Ryujinx.Tests/Cpu/CpuTest.cs b/Ryujinx.Tests/Cpu/CpuTest.cs index 70a8e192..e6a02379 100644 --- a/Ryujinx.Tests/Cpu/CpuTest.cs +++ b/Ryujinx.Tests/Cpu/CpuTest.cs @@ -5,6 +5,7 @@ using ChocolArm64.State; using NUnit.Framework; using System; +using System.Runtime.InteropServices; using System.Runtime.Intrinsics; using System.Runtime.Intrinsics.X86; using System.Threading; @@ -19,6 +20,8 @@ namespace Ryujinx.Tests.Cpu private long EntryPoint; + private IntPtr RamPointer; + private AMemory Memory; private AThread Thread; @@ -31,15 +34,16 @@ namespace Ryujinx.Tests.Cpu EntryPoint = Position; ATranslator Translator = new ATranslator(); - Memory = new AMemory(); - Memory.Manager.Map(Position, Size, 2, AMemoryPerm.Read | AMemoryPerm.Write | AMemoryPerm.Execute); + RamPointer = Marshal.AllocHGlobal(new IntPtr(Size)); + Memory = new AMemory(RamPointer); + Memory.Map(Position, 0, Size); Thread = new AThread(Translator, Memory, EntryPoint); } [TearDown] public void Teardown() { - Memory.Dispose(); + Marshal.FreeHGlobal(RamPointer); Memory = null; Thread = null; } @@ -52,7 +56,7 @@ namespace Ryujinx.Tests.Cpu protected void Opcode(uint Opcode) { - Thread.Memory.WriteUInt32Unchecked(Position, Opcode); + Thread.Memory.WriteUInt32(Position, Opcode); Position += 4; } -- cgit v1.2.3