diff options
author | gdkchan <gab.dark.100@gmail.com> | 2018-08-15 15:59:51 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-15 15:59:51 -0300 |
commit | c393cdf8e3775bc95850e4d8c8e4c446b286d3b4 (patch) | |
tree | 25035a244741d2daf3f7d6be8b23153ff061ea15 /Ryujinx.Tests/Cpu/CpuTest.cs | |
parent | 76d95dee05e3c51c18e1799f54cc407e0f633b4e (diff) |
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
Diffstat (limited to 'Ryujinx.Tests/Cpu/CpuTest.cs')
-rw-r--r-- | Ryujinx.Tests/Cpu/CpuTest.cs | 12 |
1 files changed, 8 insertions, 4 deletions
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; } |