Rewrite kernel memory allocator (#3316)

* Rewrite kernel memory allocator

* Remove unused using

* Adjust private static field naming

* Change UlongBitSize to UInt64BitSize

* Fix unused argument, change argument order to be inline with official code and disable random allocation
This commit is contained in:
gdkchan 2022-06-22 12:28:14 -03:00 committed by GitHub
parent c881cd2d14
commit f2a41b7a1c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 676 additions and 480 deletions

View file

@ -555,7 +555,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
{
KMemoryRegionManager region = GetMemoryRegionManager();
KernelResult result = region.AllocatePages(pagesCount, _aslrDisabled, out KPageList pageList);
KernelResult result = region.AllocatePages(out KPageList pageList, pagesCount);
if (result != KernelResult.Success)
{
@ -712,7 +712,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
KMemoryRegionManager region = GetMemoryRegionManager();
KernelResult result = region.AllocatePages(pagesCount, _aslrDisabled, out KPageList pageList);
KernelResult result = region.AllocatePages(out KPageList pageList, pagesCount);
using var _ = new OnScopeExit(() => pageList.DecrementPagesReferenceCount(Context.MemoryManager));
@ -1276,7 +1276,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory
KMemoryRegionManager region = GetMemoryRegionManager();
KernelResult result = region.AllocatePages(remainingPages, _aslrDisabled, out KPageList pageList);
KernelResult result = region.AllocatePages(out KPageList pageList, remainingPages);
using var _ = new OnScopeExit(() => pageList.DecrementPagesReferenceCount(Context.MemoryManager));