|
|
|
@ -14,7 +14,8 @@
|
|
|
|
|
namespace Kernel {
|
|
|
|
|
|
|
|
|
|
enum KMemoryRegionType : u32 {
|
|
|
|
|
KMemoryRegionAttr_CarveoutProtected = 0x04000000,
|
|
|
|
|
KMemoryRegionAttr_CarveoutProtected = 0x02000000,
|
|
|
|
|
KMemoryRegionAttr_Uncached = 0x04000000,
|
|
|
|
|
KMemoryRegionAttr_DidKernelMap = 0x08000000,
|
|
|
|
|
KMemoryRegionAttr_ShouldKernelMap = 0x10000000,
|
|
|
|
|
KMemoryRegionAttr_UserReadOnly = 0x20000000,
|
|
|
|
@ -239,6 +240,11 @@ static_assert(KMemoryRegionType_VirtualDramHeapBase.GetValue() == 0x1A);
|
|
|
|
|
static_assert(KMemoryRegionType_VirtualDramKernelPtHeap.GetValue() == 0x2A);
|
|
|
|
|
static_assert(KMemoryRegionType_VirtualDramKernelTraceBuffer.GetValue() == 0x4A);
|
|
|
|
|
|
|
|
|
|
// UNUSED: .DeriveSparse(2, 2, 0);
|
|
|
|
|
constexpr auto KMemoryRegionType_VirtualDramUnknownDebug =
|
|
|
|
|
KMemoryRegionType_Dram.DeriveSparse(2, 2, 1);
|
|
|
|
|
static_assert(KMemoryRegionType_VirtualDramUnknownDebug.GetValue() == (0x52));
|
|
|
|
|
|
|
|
|
|
constexpr auto KMemoryRegionType_VirtualDramKernelInitPt =
|
|
|
|
|
KMemoryRegionType_VirtualDramHeapBase.Derive(3, 0);
|
|
|
|
|
constexpr auto KMemoryRegionType_VirtualDramPoolManagement =
|
|
|
|
@ -330,6 +336,8 @@ constexpr KMemoryRegionType GetTypeForVirtualLinearMapping(u32 type_id) {
|
|
|
|
|
return KMemoryRegionType_VirtualDramKernelTraceBuffer;
|
|
|
|
|
} else if (KMemoryRegionType_DramKernelPtHeap.IsAncestorOf(type_id)) {
|
|
|
|
|
return KMemoryRegionType_VirtualDramKernelPtHeap;
|
|
|
|
|
} else if ((type_id | KMemoryRegionAttr_ShouldKernelMap) == type_id) {
|
|
|
|
|
return KMemoryRegionType_VirtualDramUnknownDebug;
|
|
|
|
|
} else {
|
|
|
|
|
return KMemoryRegionType_Dram;
|
|
|
|
|
}
|
|
|
|
|