Refactor MMU for multi-paging support and add 5-Level paging #16

已合并
harraiken 2025-08-23 20:03:56 +02:00 将 35 次代码提交从 harraiken_mm合并至 master
共有 3 个文件被更改,包括 4 次插入13 次删除
仅显示提交 6a330e38f2 的更改 - 显示所有提交

查看文件

@@ -75,9 +75,6 @@ EXTERN ULONG MmNumberOfPhysicalPages;
/* Old biggest free memory descriptor */ /* Old biggest free memory descriptor */
EXTERN LOADER_MEMORY_DESCRIPTOR MmOldFreeDescriptor; EXTERN LOADER_MEMORY_DESCRIPTOR MmOldFreeDescriptor;
/* Page Map Level */
EXTERN ULONG MmPageMapLevel;
/* Processor structures data (THIS IS A TEMPORARY HACK) */ /* Processor structures data (THIS IS A TEMPORARY HACK) */
EXTERN UCHAR MmProcessorStructuresData[MAXIMUM_PROCESSORS][KPROCESSOR_STRUCTURES_SIZE]; EXTERN UCHAR MmProcessorStructuresData[MAXIMUM_PROCESSORS][KPROCESSOR_STRUCTURES_SIZE];
@@ -87,8 +84,8 @@ EXTERN LOADER_MEMORY_DESCRIPTOR MmpHardwareAllocationDescriptors[MM_HARDWARE_ALL
/* Live address of kernel's hardware heap */ /* Live address of kernel's hardware heap */
EXTERN PVOID MmpHardwareHeapStart; EXTERN PVOID MmpHardwareHeapStart;
/* Architecture-specific memory extension */ /* Information about the current page map */
EXTERN BOOLEAN MmpMemoryExtension; EXTERN MMPAGEMAP_INFO MmpPageMapInfo;
/* Number of used hardware allocation descriptors */ /* Number of used hardware allocation descriptors */
EXTERN ULONG MmpUsedHardwareAllocationDescriptors; EXTERN ULONG MmpUsedHardwareAllocationDescriptors;

查看文件

@@ -24,9 +24,6 @@ ULONG MmNumberOfPhysicalPages;
/* Old biggest free memory descriptor */ /* Old biggest free memory descriptor */
LOADER_MEMORY_DESCRIPTOR MmOldFreeDescriptor; LOADER_MEMORY_DESCRIPTOR MmOldFreeDescriptor;
/* Page Map Level */
ULONG MmPageMapLevel;
/* Processor structures data (THIS IS A TEMPORARY HACK) */ /* Processor structures data (THIS IS A TEMPORARY HACK) */
UCHAR MmProcessorStructuresData[MAXIMUM_PROCESSORS][KPROCESSOR_STRUCTURES_SIZE] = {0}; UCHAR MmProcessorStructuresData[MAXIMUM_PROCESSORS][KPROCESSOR_STRUCTURES_SIZE] = {0};
@@ -36,8 +33,8 @@ LOADER_MEMORY_DESCRIPTOR MmpHardwareAllocationDescriptors[MM_HARDWARE_ALLOCATION
/* Live address of kernel's hardware heap */ /* Live address of kernel's hardware heap */
PVOID MmpHardwareHeapStart = MM_HARDWARE_HEAP_START_ADDRESS; PVOID MmpHardwareHeapStart = MM_HARDWARE_HEAP_START_ADDRESS;
/* Architecture-specific memory extension */ /* Information about the current page map */
BOOLEAN MmpMemoryExtension; MMPAGEMAP_INFO MmpPageMapInfo;
/* Number of used hardware allocation descriptors */ /* Number of used hardware allocation descriptors */
ULONG MmpUsedHardwareAllocationDescriptors = 0; ULONG MmpUsedHardwareAllocationDescriptors = 0;

查看文件

@@ -31,9 +31,6 @@ MmInitializeMemoryManager(VOID)
KePanic(0); KePanic(0);
} }
/* Store Page Map Level */
MmPageMapLevel = KeInitializationBlock->LoaderInformation.PageMapLevel;
/* Proceed with architecture specific initialization */ /* Proceed with architecture specific initialization */
MmpInitializeArchitecture(); MmpInitializeArchitecture();
} }