Introduce architecture-specific page map routines

This commit is contained in:
2025-08-17 00:23:19 +02:00
parent 0ed59f223c
commit f77f2bbf92
9 changed files with 82 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/mm/amd64/globals.c
* DESCRIPTION: AMD64-specific global variables for the Memory Manager
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#include <xtos.h>
/* Page mapping routines for systems using 4-level paging (PML4) */
CMMPAGEMAP_ROUTINES MmpPml4Routines = {
// .ClearPte = MmpClearPte,
// .PteValid = MmpPml2PteValid,
// .SetPteCaching = MmpSetPml2PteCaching,
// .SetPte = MmpSetPml2Pte,
};
/* Page mapping routines for systems using 5-level paging (PML5) */
CMMPAGEMAP_ROUTINES MmpPml5Routines = {
// .ClearPte = MmpClearPte,
// .PteValid = MmpPml3PteValid,
// .SetPteCaching = MmpSetPml3PteCaching,
// .SetPte = MmpSetPml3Pte,
};

View File

@@ -36,5 +36,8 @@ PVOID MmpHardwareHeapStart = MM_HARDWARE_HEAP_START_ADDRESS;
/* Information about the current page map */
MMPAGEMAP_INFO MmpPageMapInfo;
/* Pointers to page map routines for the current paging mode */
PCMMPAGEMAP_ROUTINES MmpPageMapRoutines;
/* Number of used hardware allocation descriptors */
ULONG MmpUsedHardwareAllocationDescriptors = 0;

View File

@@ -0,0 +1,26 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/mm/i686/globals.c
* DESCRIPTION: i686-specific global variables for the Memory Manager
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#include <xtos.h>
/* Page mapping routines for systems using 2-level paging (PML2) */
CMMPAGEMAP_ROUTINES MmpPml2Routines = {
.ClearPte = MmpClearPte,
.PteValid = MmpPml2PteValid,
.SetPteCaching = MmpSetPml2PteCaching,
.SetPte = MmpSetPml2Pte,
};
/* Page mapping routines for systems using 3-level paging (PML3) */
CMMPAGEMAP_ROUTINES MmpPml3Routines = {
.ClearPte = MmpClearPte,
.PteValid = MmpPml3PteValid,
.SetPteCaching = MmpSetPml3PteCaching,
.SetPte = MmpSetPml3Pte,
};