aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Kernel/KernelContext.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/KernelContext.cs')
-rw-r--r--Ryujinx.HLE/HOS/Kernel/KernelContext.cs14
1 files changed, 8 insertions, 6 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/KernelContext.cs b/Ryujinx.HLE/HOS/Kernel/KernelContext.cs
index b57b9504..4f18faca 100644
--- a/Ryujinx.HLE/HOS/Kernel/KernelContext.cs
+++ b/Ryujinx.HLE/HOS/Kernel/KernelContext.cs
@@ -28,10 +28,10 @@ namespace Ryujinx.HLE.HOS.Kernel
public KResourceLimit ResourceLimit { get; }
- public KMemoryRegionManager[] MemoryRegions { get; }
+ public KMemoryManager MemoryManager { get; }
- public KMemoryBlockAllocator LargeMemoryBlockAllocator { get; }
- public KMemoryBlockAllocator SmallMemoryBlockAllocator { get; }
+ public KMemoryBlockSlabManager LargeMemoryBlockSlabManager { get; }
+ public KMemoryBlockSlabManager SmallMemoryBlockSlabManager { get; }
public KSlabHeap UserSlabHeapPages { get; }
@@ -70,16 +70,18 @@ namespace Ryujinx.HLE.HOS.Kernel
KernelInit.InitializeResourceLimit(ResourceLimit, memorySize);
- MemoryRegions = KernelInit.GetMemoryRegions(memorySize, memoryArrange);
+ MemoryManager = new KMemoryManager(memorySize, memoryArrange);
- LargeMemoryBlockAllocator = new KMemoryBlockAllocator(KernelConstants.MemoryBlockAllocatorSize * 2);
- SmallMemoryBlockAllocator = new KMemoryBlockAllocator(KernelConstants.MemoryBlockAllocatorSize);
+ LargeMemoryBlockSlabManager = new KMemoryBlockSlabManager(KernelConstants.MemoryBlockAllocatorSize * 2);
+ SmallMemoryBlockSlabManager = new KMemoryBlockSlabManager(KernelConstants.MemoryBlockAllocatorSize);
UserSlabHeapPages = new KSlabHeap(
KernelConstants.UserSlabHeapBase,
KernelConstants.UserSlabHeapItemSize,
KernelConstants.UserSlabHeapSize);
+ memory.Commit(KernelConstants.UserSlabHeapBase - DramMemoryMap.DramBase, KernelConstants.UserSlabHeapSize);
+
CriticalSection = new KCriticalSection(this);
Schedulers = new KScheduler[KScheduler.CpuCoresCount];
PriorityQueue = new KPriorityQueue();