diff options
Diffstat (limited to 'src/Ryujinx.Cpu/AppleHv/HvAddressSpaceRange.cs')
-rw-r--r-- | src/Ryujinx.Cpu/AppleHv/HvAddressSpaceRange.cs | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/Ryujinx.Cpu/AppleHv/HvAddressSpaceRange.cs b/src/Ryujinx.Cpu/AppleHv/HvAddressSpaceRange.cs index ca30bb68..87633430 100644 --- a/src/Ryujinx.Cpu/AppleHv/HvAddressSpaceRange.cs +++ b/src/Ryujinx.Cpu/AppleHv/HvAddressSpaceRange.cs @@ -34,7 +34,7 @@ namespace Ryujinx.Cpu.AppleHv ulong size = (ulong)count * sizeof(ulong); Allocation = blockAllocator.Allocate(size, PageSize); - AsSpan().Fill(0UL); + AsSpan().Clear(); if (hasNext) { @@ -42,7 +42,7 @@ namespace Ryujinx.Cpu.AppleHv } } - public unsafe Span<ulong> AsSpan() + public Span<ulong> AsSpan() { return MemoryMarshal.Cast<byte, ulong>(Allocation.Memory.GetSpan(Allocation.Offset, (int)Allocation.Size)); } @@ -52,12 +52,10 @@ namespace Ryujinx.Cpu.AppleHv private int _tlbInvalidationPending; - private readonly HvIpaAllocator _ipaAllocator; private readonly HvMemoryBlockAllocator _blockAllocator; public HvAddressSpaceRange(HvIpaAllocator ipaAllocator) { - _ipaAllocator = ipaAllocator; _blockAllocator = new HvMemoryBlockAllocator(ipaAllocator, (int)AllocationGranule); } @@ -129,7 +127,7 @@ namespace Ryujinx.Cpu.AppleHv ulong endVa = (va + size + PageMask) & ~((ulong)PageMask); va &= ~((ulong)PageMask); - (ulong blockSize, int blockShift) = GetBlockSizeAndShift(depth); + (ulong blockSize, _) = GetBlockSizeAndShift(depth); while (va < endVa) { @@ -138,7 +136,7 @@ namespace Ryujinx.Cpu.AppleHv int l = (int)(va >> (PageBits + (2 - depth) * LevelBits)) & LevelMask; - PtLevel nextTable = level.Next != null ? level.Next[l] : null; + PtLevel nextTable = level.Next?[l]; if (nextTable != null) { @@ -190,7 +188,7 @@ namespace Ryujinx.Cpu.AppleHv ulong endVa = (va + size + PageSize - 1) & ~((ulong)PageSize - 1); va &= ~((ulong)PageSize - 1); - (ulong blockSize, int blockShift) = GetBlockSizeAndShift(depth); + (ulong blockSize, _) = GetBlockSizeAndShift(depth); while (va < endVa) { @@ -204,7 +202,7 @@ namespace Ryujinx.Cpu.AppleHv // First check if the region is mapped. if ((pte & 3) != 0) { - PtLevel nextTable = level.Next != null ? level.Next[l] : null; + PtLevel nextTable = level.Next?[l]; if (nextTable != null) { @@ -240,10 +238,10 @@ namespace Ryujinx.Cpu.AppleHv pte &= ~3UL; pte |= (depth == 2 ? 3UL : 1UL); - PtLevel level = new PtLevel(_blockAllocator, LevelCount, depth < 2); + PtLevel level = new(_blockAllocator, LevelCount, depth < 2); Span<ulong> currentLevel = level.AsSpan(); - (ulong blockSize, int blockShift) = GetBlockSizeAndShift(depth); + (_, int blockShift) = GetBlockSizeAndShift(depth); // Fill in the blocks. for (int i = 0; i < LevelCount; i++) @@ -334,7 +332,7 @@ namespace Ryujinx.Cpu.AppleHv if ((currentTable[index] & 1) == 0) { - PtLevel nextLevel = new PtLevel(_blockAllocator, LevelCount, hasNext); + PtLevel nextLevel = new(_blockAllocator, LevelCount, hasNext); currentTable[index] = (nextLevel.Address & ~(ulong)PageMask) | 3UL; level.Next[index] = nextLevel; @@ -347,7 +345,7 @@ namespace Ryujinx.Cpu.AppleHv } } - private void WriteBlock(PtLevel level, int index, int depth, ulong pa, ulong attr) + private static void WriteBlock(PtLevel level, int index, int depth, ulong pa, ulong attr) { Span<ulong> currentTable = level.AsSpan(); @@ -367,4 +365,4 @@ namespace Ryujinx.Cpu.AppleHv _blockAllocator.Dispose(); } } -}
\ No newline at end of file +} |