JitMemoryBlock.cs
1 using ARMeilleure.Memory; 2 using Ryujinx.Memory; 3 using System; 4 5 namespace Ryujinx.Cpu.Jit 6 { 7 public class JitMemoryBlock : IJitMemoryBlock 8 { 9 private readonly MemoryBlock _impl; 10 11 public IntPtr Pointer => _impl.Pointer; 12 13 public JitMemoryBlock(ulong size, MemoryAllocationFlags flags) 14 { 15 _impl = new MemoryBlock(size, flags); 16 } 17 18 public void Commit(ulong offset, ulong size) => _impl.Commit(offset, size); 19 public void MapAsRw(ulong offset, ulong size) => _impl.Reprotect(offset, size, MemoryPermission.ReadAndWrite); 20 public void MapAsRx(ulong offset, ulong size) => _impl.Reprotect(offset, size, MemoryPermission.ReadAndExecute); 21 public void MapAsRwx(ulong offset, ulong size) => _impl.Reprotect(offset, size, MemoryPermission.ReadWriteExecute); 22 23 public void Dispose() 24 { 25 GC.SuppressFinalize(this); 26 _impl.Dispose(); 27 } 28 } 29 }