mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-08-18 14:48:44 +02:00
* Initial Apple Hypervisor based CPU emulation implementation * Add UseHypervisor Setting * Add basic MacOS support to Avalonia * Fix initialization * Fix GTK build * Fix/silence warnings * Change exceptions to asserts on HvAddressSpaceRange * Replace DllImport with LibraryImport * Fix LibraryImport * Remove unneeded usings * Revert outdated change * Set DiskCacheLoadState when using hypervisor too * Fix HvExecutionContext PC value * Address PR feedback * Use existing entitlements.xml file on distribution folder --------- Co-authored-by: riperiperi <rhy3756547@hotmail.com>
35 lines
871 B
C#
35 lines
871 B
C#
using Ryujinx.Memory;
|
|
using System;
|
|
|
|
namespace Ryujinx.Cpu.AppleHv
|
|
{
|
|
struct HvMemoryBlockAllocation : IDisposable
|
|
{
|
|
private readonly HvMemoryBlockAllocator _owner;
|
|
private readonly HvMemoryBlockAllocator.Block _block;
|
|
|
|
public bool IsValid => _owner != null;
|
|
public MemoryBlock Memory => _block.Memory;
|
|
public ulong Ipa => _block.Ipa;
|
|
public ulong Offset { get; }
|
|
public ulong Size { get; }
|
|
|
|
public HvMemoryBlockAllocation(
|
|
HvMemoryBlockAllocator owner,
|
|
HvMemoryBlockAllocator.Block block,
|
|
ulong offset,
|
|
ulong size)
|
|
{
|
|
_owner = owner;
|
|
_block = block;
|
|
Offset = offset;
|
|
Size = size;
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
_owner.Free(_block, Offset, Size);
|
|
}
|
|
}
|
|
}
|