|
|
|
@ -60,10 +60,12 @@ constexpr std::size_t KernelSlabHeapGapsSizeMax = 2_MiB - 64_KiB; |
|
|
|
constexpr std::size_t KernelSlabHeapSize = KernelSlabHeapDataSize + KernelSlabHeapGapsSizeMax; |
|
|
|
|
|
|
|
// NOTE: This is calculated from KThread slab counts, assuming KThread size <= 0x860. |
|
|
|
constexpr std::size_t KernelSlabHeapAdditionalSize = 0x68000; |
|
|
|
constexpr size_t KernelPageBufferHeapSize = 0x3E0000; |
|
|
|
constexpr size_t KernelSlabHeapAdditionalSize = 0x148000; |
|
|
|
constexpr size_t KernelPageBufferAdditionalSize = 0x33C000; |
|
|
|
|
|
|
|
constexpr std::size_t KernelResourceSize = |
|
|
|
KernelPageTableHeapSize + KernelInitialPageHeapSize + KernelSlabHeapSize; |
|
|
|
constexpr std::size_t KernelResourceSize = KernelPageTableHeapSize + KernelInitialPageHeapSize + |
|
|
|
KernelSlabHeapSize + KernelPageBufferHeapSize; |
|
|
|
|
|
|
|
constexpr bool IsKernelAddressKey(VAddr key) { |
|
|
|
return KernelVirtualAddressSpaceBase <= key && key <= KernelVirtualAddressSpaceLast; |
|
|
|
@ -168,6 +170,11 @@ public: |
|
|
|
KMemoryRegionType_VirtualDramKernelTraceBuffer)); |
|
|
|
} |
|
|
|
|
|
|
|
const KMemoryRegion& GetSecureAppletMemoryRegion() { |
|
|
|
return Dereference(GetVirtualMemoryRegionTree().FindByType( |
|
|
|
KMemoryRegionType_VirtualDramKernelSecureAppletMemory)); |
|
|
|
} |
|
|
|
|
|
|
|
const KMemoryRegion& GetVirtualLinearRegion(VAddr address) const { |
|
|
|
return Dereference(FindVirtualLinear(address)); |
|
|
|
} |
|
|
|
@ -229,7 +236,7 @@ public: |
|
|
|
|
|
|
|
void InitializeLinearMemoryRegionTrees(PAddr aligned_linear_phys_start, |
|
|
|
VAddr linear_virtual_start); |
|
|
|
static size_t GetResourceRegionSizeForInit(); |
|
|
|
static size_t GetResourceRegionSizeForInit(bool use_extra_resource); |
|
|
|
|
|
|
|
auto GetKernelRegionExtents() const { |
|
|
|
return GetVirtualMemoryRegionTree().GetDerivedRegionExtents(KMemoryRegionType_Kernel); |
|
|
|
@ -279,6 +286,10 @@ public: |
|
|
|
return GetPhysicalMemoryRegionTree().GetDerivedRegionExtents( |
|
|
|
KMemoryRegionType_DramKernelSlab); |
|
|
|
} |
|
|
|
auto GetKernelSecureAppletMemoryRegionPhysicalExtents() { |
|
|
|
return GetPhysicalMemoryRegionTree().GetDerivedRegionExtents( |
|
|
|
KMemoryRegionType_DramKernelSecureAppletMemory); |
|
|
|
} |
|
|
|
auto GetKernelPageTableHeapRegionPhysicalExtents() const { |
|
|
|
return GetPhysicalMemoryRegionTree().GetDerivedRegionExtents( |
|
|
|
KMemoryRegionType_DramKernelPtHeap); |
|
|
|
|