Initialize PTE template dynamically to resolve build warnings
This commit is contained in:
@@ -31,6 +31,7 @@ namespace MM
|
|||||||
STATIC XTAPI PMMPTE GetSystemPteBaseAddress(VOID);
|
STATIC XTAPI PMMPTE GetSystemPteBaseAddress(VOID);
|
||||||
STATIC XTAPI PMMPTE GetValidPte(VOID);
|
STATIC XTAPI PMMPTE GetValidPte(VOID);
|
||||||
STATIC XTAPI VOID InitializePageTable(VOID);
|
STATIC XTAPI VOID InitializePageTable(VOID);
|
||||||
|
STATIC XTAPI VOID InitializePteTemplate(VOID);
|
||||||
STATIC XTAPI VOID InitializeSystemPteSpace(VOID);
|
STATIC XTAPI VOID InitializeSystemPteSpace(VOID);
|
||||||
STATIC XTAPI VOID MapP5E(PVOID StartAddress,
|
STATIC XTAPI VOID MapP5E(PVOID StartAddress,
|
||||||
PVOID EndAddress,
|
PVOID EndAddress,
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ namespace MM
|
|||||||
STATIC XTAPI PMMPTE GetSystemPteBaseAddress(VOID);
|
STATIC XTAPI PMMPTE GetSystemPteBaseAddress(VOID);
|
||||||
STATIC XTAPI PMMPTE GetValidPte(VOID);
|
STATIC XTAPI PMMPTE GetValidPte(VOID);
|
||||||
STATIC XTAPI VOID InitializePageTable(VOID);
|
STATIC XTAPI VOID InitializePageTable(VOID);
|
||||||
|
STATIC XTAPI VOID InitializePteTemplate(VOID);
|
||||||
STATIC XTAPI VOID InitializeSystemPteSpace(VOID);
|
STATIC XTAPI VOID InitializeSystemPteSpace(VOID);
|
||||||
STATIC XTAPI VOID MapPDE(PVOID StartAddress,
|
STATIC XTAPI VOID MapPDE(PVOID StartAddress,
|
||||||
PVOID EndAddress,
|
PVOID EndAddress,
|
||||||
|
|||||||
@@ -153,6 +153,20 @@ MM::Pte::InitializePageTable(VOID)
|
|||||||
MM::Paging::SetPte(MM::Paging::GetPteAddress((PVOID)MemoryLayout->HyperSpaceStart), MM_HYPERSPACE_PAGE_COUNT, 0);
|
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.
|
* Maps a range of virtual addresses at the P5E (PML5) level.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -104,4 +104,4 @@ PMMPTE MM::Pte::SystemPtesStart[MaximumPtePoolTypes];
|
|||||||
ULONG MM::Pte::TotalSystemFreePtes[MaximumPtePoolTypes];
|
ULONG MM::Pte::TotalSystemFreePtes[MaximumPtePoolTypes];
|
||||||
|
|
||||||
/* Template PTE entry containing standard flags for a valid, present kernel page */
|
/* 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;
|
||||||
|
|||||||
@@ -112,6 +112,20 @@ MM::Pte::InitializePageTable(VOID)
|
|||||||
MM::Pte::MapPDE(MemoryLayout->SystemSpaceStart, (PVOID)MM_HIGHEST_SYSTEM_ADDRESS, &TemplatePte);
|
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.
|
* Maps a range of virtual addresses at the PPE (Page Directory Pointer Entry) level.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -63,6 +63,9 @@ MM::Manager::InitializeMemoryManager(VOID)
|
|||||||
/* Initialize memory layout */
|
/* Initialize memory layout */
|
||||||
InitializeMemoryLayout();
|
InitializeMemoryLayout();
|
||||||
|
|
||||||
|
/* Initialize PTE template */
|
||||||
|
MM::Pte::InitializePteTemplate();
|
||||||
|
|
||||||
/* Initialize page table */
|
/* Initialize page table */
|
||||||
MM::Pte::InitializePageTable();
|
MM::Pte::InitializePageTable();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user