Initialize PTE template dynamically to resolve build warnings
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 23s
Builds / ExectOS (i686, debug) (push) Successful in 26s
Builds / ExectOS (amd64, release) (push) Successful in 45s
Builds / ExectOS (i686, release) (push) Successful in 42s

This commit is contained in:
2025-12-29 23:49:29 +01:00
parent aced62e790
commit dbda6bbb29
6 changed files with 34 additions and 1 deletions

View File

@@ -31,6 +31,7 @@ namespace MM
STATIC XTAPI PMMPTE GetSystemPteBaseAddress(VOID);
STATIC XTAPI PMMPTE GetValidPte(VOID);
STATIC XTAPI VOID InitializePageTable(VOID);
STATIC XTAPI VOID InitializePteTemplate(VOID);
STATIC XTAPI VOID InitializeSystemPteSpace(VOID);
STATIC XTAPI VOID MapP5E(PVOID StartAddress,
PVOID EndAddress,

View File

@@ -31,6 +31,7 @@ namespace MM
STATIC XTAPI PMMPTE GetSystemPteBaseAddress(VOID);
STATIC XTAPI PMMPTE GetValidPte(VOID);
STATIC XTAPI VOID InitializePageTable(VOID);
STATIC XTAPI VOID InitializePteTemplate(VOID);
STATIC XTAPI VOID InitializeSystemPteSpace(VOID);
STATIC XTAPI VOID MapPDE(PVOID StartAddress,
PVOID EndAddress,

View File

@@ -153,6 +153,20 @@ MM::Pte::InitializePageTable(VOID)
MM::Paging::SetPte(MM::Paging::GetPteAddress((PVOID)MemoryLayout->HyperSpaceStart), MM_HYPERSPACE_PAGE_COUNT, 0);
}
/**
* Initializes the PTE template.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTAPI
VOID
MM::Pte::InitializePteTemplate(VOID)
{
ValidPte = {MM_PTE_VALID|MM_PTE_EXECUTE_READWRITE|MM_PTE_DIRTY|MM_PTE_ACCESSED};
}
/**
* Maps a range of virtual addresses at the P5E (PML5) level.
*

View File

@@ -104,4 +104,4 @@ PMMPTE MM::Pte::SystemPtesStart[MaximumPtePoolTypes];
ULONG MM::Pte::TotalSystemFreePtes[MaximumPtePoolTypes];
/* Template PTE entry containing standard flags for a valid, present kernel page */
MMPTE MM::Pte::ValidPte = {MM_PTE_VALID|MM_PTE_EXECUTE_READWRITE|MM_PTE_DIRTY|MM_PTE_ACCESSED};
MMPTE MM::Pte::ValidPte;

View File

@@ -112,6 +112,20 @@ MM::Pte::InitializePageTable(VOID)
MM::Pte::MapPDE(MemoryLayout->SystemSpaceStart, (PVOID)MM_HIGHEST_SYSTEM_ADDRESS, &TemplatePte);
}
/**
* Initializes the PTE template.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTAPI
VOID
MM::Pte::InitializePteTemplate(VOID)
{
ValidPte = {{MM_PTE_VALID|MM_PTE_EXECUTE_READWRITE|MM_PTE_DIRTY|MM_PTE_ACCESSED}};
}
/**
* Maps a range of virtual addresses at the PPE (Page Directory Pointer Entry) level.
*

View File

@@ -63,6 +63,9 @@ MM::Manager::InitializeMemoryManager(VOID)
/* Initialize memory layout */
InitializeMemoryLayout();
/* Initialize PTE template */
MM::Pte::InitializePteTemplate();
/* Initialize page table */
MM::Pte::InitializePageTable();