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

Open
harraiken wants to merge 35 commits from harraiken_mm into master
2 changed files with 14 additions and 0 deletions
Showing only changes of commit 720d525b95 - Show all commits

View File

@ -4,6 +4,7 @@
* FILE: xtoskrnl/mm/amd64/init.c
* DESCRIPTION: Architecture specific Memory Manager initialization routines
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
* Aiken Harris <harraiken91@gmail.com>
*/
#include <xtos.h>
@ -23,6 +24,9 @@ MmInitializePageMapSupport(VOID)
/* Check if XPA is enabled */
if(MmpGetExtendedPhysicalAddressingStatus())
{
/* XPA enabled, use LA57 paging (PML5) */
MmpPageMapRoutines = &MmpPml5Routines;
/* Set PML5 page map information */
MmpPageMapInfo.Xpa = TRUE;
@ -35,6 +39,9 @@ MmInitializePageMapSupport(VOID)
}
else
{
/* XPA disabled, use LA48 paging (PML4) */
MmpPageMapRoutines = &MmpPml4Routines;
/* Set PML4 page map information */
MmpPageMapInfo.Xpa = FALSE;

View File

@ -4,6 +4,7 @@
* FILE: xtoskrnl/mm/i686/init.c
* DESCRIPTION: Architecture specific Memory Manager initialization routines
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
* Aiken Harris <harraiken91@gmail.com>
*/
#include <xtos.h>
@ -23,6 +24,9 @@ MmInitializePageMapSupport(VOID)
/* Check if XPA is enabled */
if(MmpGetExtendedPhysicalAddressingStatus())
{
/* XPA enabled, use modern PAE paging (PML3) */
MmpPageMapRoutines = &MmpPml3Routines;
/* Set PML3 page map information */
MmpPageMapInfo.Xpa = TRUE;
@ -36,6 +40,9 @@ MmInitializePageMapSupport(VOID)
}
else
{
/* XPA disabled, use legacy i386 paging (PML2) */
MmpPageMapRoutines = &MmpPml2Routines;
/* Set PML2 page map information */
MmpPageMapInfo.Xpa = FALSE;