aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Cpu/VirtualMemoryManagerRefCountedBase.cs
diff options
context:
space:
mode:
authorjhorv <38920027+jhorv@users.noreply.github.com>2024-04-04 21:23:03 -0400
committerGitHub <noreply@github.com>2024-04-04 22:23:03 -0300
commit5def0429f82c795d820b2307a0301b78dfb1e6b7 (patch)
tree8495abf3183132aa411d6b46eb7609d69cd7a335 /src/Ryujinx.Cpu/VirtualMemoryManagerRefCountedBase.cs
parent8e74fa34560c4a8c3de234eb3488e1d0fb6f8f6c (diff)
Add support to IVirtualMemoryManager for zero-copy reads (#6251)1.1.1251
* - WritableRegion: enable wrapping IMemoryOwner<byte> - IVirtualMemoryManager impls of GetWritableRegion() use pooled memory when region is non-contiguous. - IVirtualMemoryManager: add GetReadOnlySequence() and impls - ByteMemoryPool: add new method RentCopy() - ByteMemoryPool: make class static, remove ctor and singleton field from earlier impl * - BytesReadOnlySequenceSegment: move from Ryujinx.Common.Memory to Ryujinx.Memory - BytesReadOnlySequenceSegment: add IsContiguousWith() and Replace() methods - VirtualMemoryManagerBase: - remove generic type parameters, instead use ulong for virtual addresses and nuint for host/physical addresses - implement IWritableBlock - add virtual GetReadOnlySequence() with coalescing of contiguous segments - add virtual GetSpan() - add virtual GetWritableRegion() - add abstract IsMapped() - add virtual MapForeign(ulong, nuint, ulong) - add virtual Read<T>() - add virtual Read(ulong, Span<byte>) - add virtual ReadTracked<T>() - add virtual SignalMemoryTracking() - add virtual Write() - add virtual Write<T>() - add virtual WriteUntracked() - add virtual WriteWithRedundancyCheck() - VirtualMemoryManagerRefCountedBase: remove generic type parameters - AddressSpaceManager: remove redundant methods, add required overrides - HvMemoryManager: remove redundant methods, add required overrides, add overrides for _invalidAccessHandler handling - MemoryManager: remove redundant methods, add required overrides, add overrides for _invalidAccessHandler handling - MemoryManagerHostMapped: remove redundant methods, add required overrides, add overrides for _invalidAccessHandler handling - NativeMemoryManager: add get properties for Pointer and Length - throughout: removed invalid <inheritdoc/> comments * make HvMemoryManager class sealed * remove unused method * adjust MemoryManagerHostTracked * let MemoryManagerHostTracked override WriteImpl()
Diffstat (limited to 'src/Ryujinx.Cpu/VirtualMemoryManagerRefCountedBase.cs')
-rw-r--r--src/Ryujinx.Cpu/VirtualMemoryManagerRefCountedBase.cs5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/Ryujinx.Cpu/VirtualMemoryManagerRefCountedBase.cs b/src/Ryujinx.Cpu/VirtualMemoryManagerRefCountedBase.cs
index c2d8cfb1..3c7b3380 100644
--- a/src/Ryujinx.Cpu/VirtualMemoryManagerRefCountedBase.cs
+++ b/src/Ryujinx.Cpu/VirtualMemoryManagerRefCountedBase.cs
@@ -1,13 +1,10 @@
using Ryujinx.Memory;
using System.Diagnostics;
-using System.Numerics;
using System.Threading;
namespace Ryujinx.Cpu
{
- public abstract class VirtualMemoryManagerRefCountedBase<TVirtual, TPhysical> : VirtualMemoryManagerBase<TVirtual, TPhysical>, IRefCounted
- where TVirtual : IBinaryInteger<TVirtual>
- where TPhysical : IBinaryInteger<TPhysical>
+ public abstract class VirtualMemoryManagerRefCountedBase : VirtualMemoryManagerBase, IRefCounted
{
private int _referenceCount;