Unify PTE pointer types across MM subsystem
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 29s
Builds / ExectOS (amd64, release) (push) Successful in 27s
Builds / ExectOS (i686, debug) (push) Successful in 31s
Builds / ExectOS (i686, release) (push) Successful in 29s

This commit is contained in:
2025-11-03 22:13:32 +01:00
parent fd13091476
commit cb2da54956
7 changed files with 62 additions and 66 deletions

View File

@@ -23,7 +23,7 @@ namespace MM
public: public:
XTAPI PMMPTE AdvancePte(IN PMMPTE Pte, XTAPI PMMPTE AdvancePte(IN PMMPTE Pte,
IN ULONG Count); IN ULONG Count);
XTAPI VOID ClearPte(IN PHARDWARE_PTE PtePointer); XTAPI VOID ClearPte(IN PMMPTE PtePointer);
XTAPI ULONGLONG GetEmptyPteList(VOID); XTAPI ULONGLONG GetEmptyPteList(VOID);
XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte); XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte);
XTAPI PMMPTE GetNextPte(IN PMMPTE Pte); XTAPI PMMPTE GetNextPte(IN PMMPTE Pte);
@@ -45,15 +45,15 @@ namespace MM
XTAPI ULONG GetPxeIndex(IN PVOID Address); XTAPI ULONG GetPxeIndex(IN PVOID Address);
XTAPI PVOID GetPxeVirtualAddress(IN PMMPXE PxePointer); XTAPI PVOID GetPxeVirtualAddress(IN PMMPXE PxePointer);
VIRTUAL XTAPI VOID InitializePageMapInfo(VOID) = 0; VIRTUAL XTAPI VOID InitializePageMapInfo(VOID) = 0;
XTAPI BOOLEAN PteValid(IN PHARDWARE_PTE PtePointer); XTAPI BOOLEAN PteValid(IN PMMPTE PtePointer);
XTAPI VOID SetNextEntry(IN PMMPTE Pte, XTAPI VOID SetNextEntry(IN PMMPTE Pte,
IN ULONG_PTR Value); IN ULONG_PTR Value);
XTAPI VOID SetOneEntry(IN PMMPTE Pte, XTAPI VOID SetOneEntry(IN PMMPTE Pte,
IN BOOLEAN Value); IN BOOLEAN Value);
XTAPI VOID SetPte(IN PHARDWARE_PTE PtePointer, XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber, IN PFN_NUMBER PageFrameNumber,
IN BOOLEAN Writable); IN BOOLEAN Writable);
XTAPI VOID SetPteCaching(IN PHARDWARE_PTE PtePointer, XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable, IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough); IN BOOLEAN WriteThrough);
} PAGEMAP, *PPAGEMAP; } PAGEMAP, *PPAGEMAP;

View File

@@ -23,7 +23,7 @@ namespace MM
public: public:
VIRTUAL XTAPI PMMPTE AdvancePte(IN PMMPTE Pte, VIRTUAL XTAPI PMMPTE AdvancePte(IN PMMPTE Pte,
IN ULONG Count) = 0; IN ULONG Count) = 0;
XTAPI VOID ClearPte(IN PHARDWARE_PTE PtePointer); XTAPI VOID ClearPte(IN PMMPTE PtePointer);
XTAPI ULONG GetEmptyPteList(VOID); XTAPI ULONG GetEmptyPteList(VOID);
VIRTUAL XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte) = 0; VIRTUAL XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte) = 0;
VIRTUAL XTAPI PMMPTE GetNextPte(IN PMMPTE Pte) = 0; VIRTUAL XTAPI PMMPTE GetNextPte(IN PMMPTE Pte) = 0;
@@ -39,15 +39,15 @@ namespace MM
VIRTUAL XTAPI ULONG GetPteSize(VOID) = 0; VIRTUAL XTAPI ULONG GetPteSize(VOID) = 0;
XTAPI PVOID GetPteVirtualAddress(IN PMMPTE PtePointer); XTAPI PVOID GetPteVirtualAddress(IN PMMPTE PtePointer);
VIRTUAL XTAPI VOID InitializePageMapInfo(VOID) = 0; VIRTUAL XTAPI VOID InitializePageMapInfo(VOID) = 0;
VIRTUAL XTAPI BOOLEAN PteValid(IN PHARDWARE_PTE PtePointer) = 0; VIRTUAL XTAPI BOOLEAN PteValid(IN PMMPTE PtePointer) = 0;
VIRTUAL XTAPI VOID SetNextEntry(IN PMMPTE Pte, VIRTUAL XTAPI VOID SetNextEntry(IN PMMPTE Pte,
IN ULONG_PTR Value) = 0; IN ULONG_PTR Value) = 0;
VIRTUAL XTAPI VOID SetOneEntry(IN PMMPTE Pte, VIRTUAL XTAPI VOID SetOneEntry(IN PMMPTE Pte,
IN BOOLEAN Value) = 0; IN BOOLEAN Value) = 0;
VIRTUAL XTAPI VOID SetPte(IN PHARDWARE_PTE PtePointer, VIRTUAL XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber, IN PFN_NUMBER PageFrameNumber,
IN BOOLEAN Writable) = 0; IN BOOLEAN Writable) = 0;
VIRTUAL XTAPI VOID SetPteCaching(IN PHARDWARE_PTE PtePointer, VIRTUAL XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable, IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough) = 0; IN BOOLEAN WriteThrough) = 0;
} PAGEMAP, *PPAGEMAP; } PAGEMAP, *PPAGEMAP;
@@ -62,15 +62,15 @@ namespace MM
XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte); XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte);
XTAPI ULONG GetPteSize(VOID); XTAPI ULONG GetPteSize(VOID);
XTAPI VOID InitializePageMapInfo(VOID); XTAPI VOID InitializePageMapInfo(VOID);
XTAPI BOOLEAN PteValid(IN PHARDWARE_PTE PtePointer); XTAPI BOOLEAN PteValid(IN PMMPTE PtePointer);
XTAPI VOID SetNextEntry(IN PMMPTE Pte, XTAPI VOID SetNextEntry(IN PMMPTE Pte,
IN ULONG_PTR Value); IN ULONG_PTR Value);
XTAPI VOID SetOneEntry(IN PMMPTE Pte, XTAPI VOID SetOneEntry(IN PMMPTE Pte,
IN BOOLEAN Value); IN BOOLEAN Value);
XTAPI VOID SetPte(IN PHARDWARE_PTE PtePointer, XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber, IN PFN_NUMBER PageFrameNumber,
IN BOOLEAN Writable); IN BOOLEAN Writable);
XTAPI VOID SetPteCaching(IN PHARDWARE_PTE PtePointer, XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable, IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough); IN BOOLEAN WriteThrough);
}; };
@@ -85,15 +85,15 @@ namespace MM
XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte); XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte);
XTAPI ULONG GetPteSize(VOID); XTAPI ULONG GetPteSize(VOID);
XTAPI VOID InitializePageMapInfo(VOID); XTAPI VOID InitializePageMapInfo(VOID);
XTAPI BOOLEAN PteValid(IN PHARDWARE_PTE PtePointer); XTAPI BOOLEAN PteValid(IN PMMPTE PtePointer);
XTAPI VOID SetNextEntry(IN PMMPTE Pte, XTAPI VOID SetNextEntry(IN PMMPTE Pte,
IN ULONG_PTR Value); IN ULONG_PTR Value);
XTAPI VOID SetOneEntry(IN PMMPTE Pte, XTAPI VOID SetOneEntry(IN PMMPTE Pte,
IN BOOLEAN Value); IN BOOLEAN Value);
XTAPI VOID SetPte(IN PHARDWARE_PTE PtePointer, XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber, IN PFN_NUMBER PageFrameNumber,
IN BOOLEAN Writable); IN BOOLEAN Writable);
XTAPI VOID SetPteCaching(IN PHARDWARE_PTE PtePointer, XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable, IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough); IN BOOLEAN WriteThrough);
}; };

View File

@@ -23,7 +23,7 @@ namespace MM
public: public:
STATIC XTAPI PMMPTE AdvancePte(IN PMMPTE Pte, STATIC XTAPI PMMPTE AdvancePte(IN PMMPTE Pte,
IN ULONG Count); IN ULONG Count);
STATIC XTAPI VOID ClearPte(IN PHARDWARE_PTE PtePointer); STATIC XTAPI VOID ClearPte(IN PMMPTE PtePointer);
STATIC XTAPI VOID FlushTlb(VOID); STATIC XTAPI VOID FlushTlb(VOID);
STATIC XTAPI ULONG_PTR GetEmptyPteList(VOID); STATIC XTAPI ULONG_PTR GetEmptyPteList(VOID);
STATIC XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte); STATIC XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte);
@@ -34,15 +34,15 @@ namespace MM
STATIC XTAPI PMMPTE GetPteAddress(IN PVOID Address); STATIC XTAPI PMMPTE GetPteAddress(IN PVOID Address);
STATIC XTAPI ULONG GetPteSize(VOID); STATIC XTAPI ULONG GetPteSize(VOID);
STATIC XTAPI VOID InitializePageMapSupport(VOID); STATIC XTAPI VOID InitializePageMapSupport(VOID);
STATIC XTAPI BOOLEAN PteValid(IN PHARDWARE_PTE PtePointer); STATIC XTAPI BOOLEAN PteValid(IN PMMPTE PtePointer);
STATIC XTAPI VOID SetNextEntry(IN PMMPTE Pte, STATIC XTAPI VOID SetNextEntry(IN PMMPTE Pte,
IN ULONG_PTR Value); IN ULONG_PTR Value);
STATIC XTAPI VOID SetOneEntry(IN PMMPTE Pte, STATIC XTAPI VOID SetOneEntry(IN PMMPTE Pte,
IN BOOLEAN Value); IN BOOLEAN Value);
STATIC XTAPI VOID SetPte(IN PHARDWARE_PTE PtePointer, STATIC XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber, IN PFN_NUMBER PageFrameNumber,
IN BOOLEAN Writable); IN BOOLEAN Writable);
STATIC XTAPI VOID SetPteCaching(IN PHARDWARE_PTE PtePointer, STATIC XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable, IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough); IN BOOLEAN WriteThrough);
STATIC XTFASTCALL VOID ZeroPages(IN PVOID Address, STATIC XTFASTCALL VOID ZeroPages(IN PVOID Address,

View File

@@ -43,14 +43,10 @@ MM::PageMap::AdvancePte(IN PMMPTE Pte,
*/ */
XTAPI XTAPI
VOID VOID
MM::PageMap::ClearPte(IN PHARDWARE_PTE PtePointer) MM::PageMap::ClearPte(IN PMMPTE PtePointer)
{ {
/* Clear PTE */ /* Clear PTE */
PtePointer->CacheDisable = 0; PtePointer->Long = 0;
PtePointer->PageFrameNumber = 0;
PtePointer->Valid = 0;
PtePointer->Writable = 0;
PtePointer->WriteThrough = 0;
} }
/** /**
@@ -432,10 +428,10 @@ MM::PageMap::GetPxeVirtualAddress(IN PMMPXE PxePointer)
*/ */
XTAPI XTAPI
BOOLEAN BOOLEAN
MM::PageMap::PteValid(IN PHARDWARE_PTE PtePointer) MM::PageMap::PteValid(IN PMMPTE PtePointer)
{ {
/* Check if PTE is valid */ /* Check if PTE is valid */
return (BOOLEAN)PtePointer->Valid; return (BOOLEAN)PtePointer->Hardware.Valid;
} }
/** /**
@@ -500,14 +496,14 @@ MM::PageMap::SetOneEntry(IN PMMPTE Pte,
*/ */
XTAPI XTAPI
VOID VOID
MM::PageMap::SetPte(IN PHARDWARE_PTE PtePointer, MM::PageMap::SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber, IN PFN_NUMBER PageFrameNumber,
IN BOOLEAN Writable) IN BOOLEAN Writable)
{ {
/* Set PTE */ /* Set PTE */
PtePointer->PageFrameNumber = PageFrameNumber; PtePointer->Hardware.PageFrameNumber = PageFrameNumber;
PtePointer->Valid = 1; PtePointer->Hardware.Valid = 1;
PtePointer->Writable = Writable; PtePointer->Hardware.Writable = Writable;
} }
/** /**
@@ -528,13 +524,13 @@ MM::PageMap::SetPte(IN PHARDWARE_PTE PtePointer,
*/ */
XTAPI XTAPI
VOID VOID
MM::PageMap::SetPteCaching(IN PHARDWARE_PTE PtePointer, MM::PageMap::SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable, IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough) IN BOOLEAN WriteThrough)
{ {
/* Set caching attributes */ /* Set caching attributes */
PtePointer->CacheDisable = CacheDisable; PtePointer->Hardware.CacheDisable = CacheDisable;
PtePointer->WriteThrough = WriteThrough; PtePointer->Hardware.WriteThrough = WriteThrough;
} }
/** /**

View File

@@ -170,7 +170,7 @@ MM::HardwarePool::MapHardwareMemory(IN PHYSICAL_ADDRESS PhysicalAddress,
{ {
PVOID BaseAddress, ReturnAddress; PVOID BaseAddress, ReturnAddress;
PFN_NUMBER MappedPages; PFN_NUMBER MappedPages;
PHARDWARE_PTE PtePointer; PMMPTE PtePointer;
/* Initialize variables */ /* Initialize variables */
BaseAddress = HardwareHeapStart; BaseAddress = HardwareHeapStart;
@@ -189,7 +189,7 @@ MM::HardwarePool::MapHardwareMemory(IN PHYSICAL_ADDRESS PhysicalAddress,
} }
/* Get PTE pointer and advance to next page */ /* Get PTE pointer and advance to next page */
PtePointer = (PHARDWARE_PTE)MM::Paging::GetPteAddress(ReturnAddress); PtePointer = MM::Paging::GetPteAddress(ReturnAddress);
ReturnAddress = (PVOID)((ULONG_PTR)ReturnAddress + MM_PAGE_SIZE); ReturnAddress = (PVOID)((ULONG_PTR)ReturnAddress + MM_PAGE_SIZE);
/* Check if PTE is valid */ /* Check if PTE is valid */
@@ -219,7 +219,7 @@ MM::HardwarePool::MapHardwareMemory(IN PHYSICAL_ADDRESS PhysicalAddress,
while(MappedPages--) while(MappedPages--)
{ {
/* Get PTE pointer */ /* Get PTE pointer */
PtePointer = (PHARDWARE_PTE)MM::Paging::GetPteAddress(BaseAddress); PtePointer = MM::Paging::GetPteAddress(BaseAddress);
/* Fill the PTE */ /* Fill the PTE */
MM::Paging::SetPte(PtePointer, (PFN_NUMBER)(PhysicalAddress.QuadPart >> MM_PAGE_SHIFT), TRUE); MM::Paging::SetPte(PtePointer, (PFN_NUMBER)(PhysicalAddress.QuadPart >> MM_PAGE_SHIFT), TRUE);
@@ -259,18 +259,18 @@ VOID
MM::HardwarePool::MarkHardwareMemoryWriteThrough(IN PVOID VirtualAddress, MM::HardwarePool::MarkHardwareMemoryWriteThrough(IN PVOID VirtualAddress,
IN PFN_NUMBER PageCount) IN PFN_NUMBER PageCount)
{ {
PHARDWARE_PTE PtePointer; PMMPTE PtePointer;
PFN_NUMBER Page; PFN_NUMBER Page;
/* Get PTE address from virtual address */ /* Get PTE address from virtual address */
PtePointer = (PHARDWARE_PTE)MM::Paging::GetPteAddress(VirtualAddress); PtePointer = MM::Paging::GetPteAddress(VirtualAddress);
/* Iterate through mapped pages */ /* Iterate through mapped pages */
for(Page = 0; Page < PageCount; Page++) for(Page = 0; Page < PageCount; Page++)
{ {
/* Mark pages as CD/WT */ /* Mark pages as CD/WT */
MM::Paging::SetPteCaching(PtePointer, TRUE, TRUE); MM::Paging::SetPteCaching(PtePointer, TRUE, TRUE);
PtePointer++; MM::Paging::GetNextEntry(PtePointer);
} }
} }
@@ -296,10 +296,10 @@ MM::HardwarePool::RemapHardwareMemory(IN PVOID VirtualAddress,
IN PHYSICAL_ADDRESS PhysicalAddress, IN PHYSICAL_ADDRESS PhysicalAddress,
IN BOOLEAN FlushTlb) IN BOOLEAN FlushTlb)
{ {
PHARDWARE_PTE PtePointer; PMMPTE PtePointer;
/* Get PTE address from virtual address */ /* Get PTE address from virtual address */
PtePointer = (PHARDWARE_PTE)MM::Paging::GetPteAddress(VirtualAddress); PtePointer = MM::Paging::GetPteAddress(VirtualAddress);
/* Remap the PTE */ /* Remap the PTE */
MM::Paging::SetPte(PtePointer, (PFN_NUMBER)(PhysicalAddress.QuadPart >> MM_PAGE_SHIFT), TRUE); MM::Paging::SetPte(PtePointer, (PFN_NUMBER)(PhysicalAddress.QuadPart >> MM_PAGE_SHIFT), TRUE);
@@ -334,7 +334,7 @@ MM::HardwarePool::UnmapHardwareMemory(IN PVOID VirtualAddress,
IN PFN_NUMBER PageCount, IN PFN_NUMBER PageCount,
IN BOOLEAN FlushTlb) IN BOOLEAN FlushTlb)
{ {
PHARDWARE_PTE PtePointer; PMMPTE PtePointer;
PFN_NUMBER Page; PFN_NUMBER Page;
/* Check if address is valid hardware memory */ /* Check if address is valid hardware memory */
@@ -348,7 +348,7 @@ MM::HardwarePool::UnmapHardwareMemory(IN PVOID VirtualAddress,
VirtualAddress = (PVOID)((ULONG_PTR)VirtualAddress & ~(MM_PAGE_SIZE - 1)); VirtualAddress = (PVOID)((ULONG_PTR)VirtualAddress & ~(MM_PAGE_SIZE - 1));
/* Get PTE address from virtual address */ /* Get PTE address from virtual address */
PtePointer = (PHARDWARE_PTE)MM::Paging::GetPteAddress(VirtualAddress); PtePointer = MM::Paging::GetPteAddress(VirtualAddress);
/* Iterate through mapped pages */ /* Iterate through mapped pages */
for(Page = 0; Page < PageCount; Page++) for(Page = 0; Page < PageCount; Page++)

View File

@@ -21,7 +21,7 @@
*/ */
XTAPI XTAPI
VOID VOID
MM::PageMap::ClearPte(IN PHARDWARE_PTE PtePointer) MM::PageMap::ClearPte(IN PMMPTE PtePointer)
{ {
/* Clear PTE */ /* Clear PTE */
PtePointer->Long = 0; PtePointer->Long = 0;
@@ -339,10 +339,10 @@ MM::PageMapBasic::InitializePageMapInfo(VOID)
*/ */
XTAPI XTAPI
BOOLEAN BOOLEAN
MM::PageMapBasic::PteValid(IN PHARDWARE_PTE PtePointer) MM::PageMapBasic::PteValid(IN PMMPTE PtePointer)
{ {
/* Check if PTE is valid */ /* Check if PTE is valid */
return (BOOLEAN)PtePointer->Pml2.Valid; return (BOOLEAN)PtePointer->Pml2.Hardware.Valid;
} }
/** /**
@@ -407,14 +407,14 @@ MM::PageMapBasic::SetOneEntry(IN PMMPTE Pte,
*/ */
XTAPI XTAPI
VOID VOID
MM::PageMapBasic::SetPte(IN PHARDWARE_PTE PtePointer, MM::PageMapBasic::SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber, IN PFN_NUMBER PageFrameNumber,
IN BOOLEAN Writable) IN BOOLEAN Writable)
{ {
/* Set PTE */ /* Set PTE */
PtePointer->Pml2.PageFrameNumber = PageFrameNumber; PtePointer->Pml2.Hardware.PageFrameNumber = PageFrameNumber;
PtePointer->Pml2.Valid = 1; PtePointer->Pml2.Hardware.Valid = 1;
PtePointer->Pml2.Writable = Writable; PtePointer->Pml2.Hardware.Writable = Writable;
} }
/** /**
@@ -435,13 +435,13 @@ MM::PageMapBasic::SetPte(IN PHARDWARE_PTE PtePointer,
*/ */
XTAPI XTAPI
VOID VOID
MM::PageMapBasic::SetPteCaching(IN PHARDWARE_PTE PtePointer, MM::PageMapBasic::SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable, IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough) IN BOOLEAN WriteThrough)
{ {
/* Set caching attributes */ /* Set caching attributes */
PtePointer->Pml2.CacheDisable = CacheDisable; PtePointer->Pml2.Hardware.CacheDisable = CacheDisable;
PtePointer->Pml2.WriteThrough = WriteThrough; PtePointer->Pml2.Hardware.WriteThrough = WriteThrough;
} }
/** /**
@@ -573,9 +573,9 @@ MM::PageMapXpa::InitializePageMapInfo(VOID)
*/ */
XTAPI XTAPI
BOOLEAN BOOLEAN
MM::PageMapXpa::PteValid(IN PHARDWARE_PTE PtePointer) MM::PageMapXpa::PteValid(IN PMMPTE PtePointer)
{ {
return (BOOLEAN)PtePointer->Pml3.Valid; return (BOOLEAN)PtePointer->Pml3.Hardware.Valid;
} }
/** /**
@@ -640,14 +640,14 @@ MM::PageMapXpa::SetOneEntry(IN PMMPTE Pte,
*/ */
XTAPI XTAPI
VOID VOID
MM::PageMapXpa::SetPte(IN PHARDWARE_PTE PtePointer, MM::PageMapXpa::SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber, IN PFN_NUMBER PageFrameNumber,
IN BOOLEAN Writable) IN BOOLEAN Writable)
{ {
/* Set PTE */ /* Set PTE */
PtePointer->Pml3.PageFrameNumber = PageFrameNumber; PtePointer->Pml3.Hardware.PageFrameNumber = PageFrameNumber;
PtePointer->Pml3.Valid = 1; PtePointer->Pml3.Hardware.Valid = 1;
PtePointer->Pml3.Writable = Writable; PtePointer->Pml3.Hardware.Writable = Writable;
} }
/** /**
@@ -668,11 +668,11 @@ MM::PageMapXpa::SetPte(IN PHARDWARE_PTE PtePointer,
*/ */
XTAPI XTAPI
VOID VOID
MM::PageMapXpa::SetPteCaching(IN PHARDWARE_PTE PtePointer, MM::PageMapXpa::SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable, IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough) IN BOOLEAN WriteThrough)
{ {
/* Set caching attributes */ /* Set caching attributes */
PtePointer->Pml3.CacheDisable = CacheDisable; PtePointer->Pml3.Hardware.CacheDisable = CacheDisable;
PtePointer->Pml3.WriteThrough = WriteThrough; PtePointer->Pml3.Hardware.WriteThrough = WriteThrough;
} }

View File

@@ -43,7 +43,7 @@ MM::Paging::AdvancePte(IN PMMPTE Pte,
*/ */
XTAPI XTAPI
VOID VOID
MM::Paging::ClearPte(IN PHARDWARE_PTE PtePointer) MM::Paging::ClearPte(IN PMMPTE PtePointer)
{ {
/* Clear PTE */ /* Clear PTE */
PmlRoutines->ClearPte(PtePointer); PmlRoutines->ClearPte(PtePointer);
@@ -312,7 +312,7 @@ MM::Paging::InitializePageMapSupport(VOID)
*/ */
XTAPI XTAPI
BOOLEAN BOOLEAN
MM::Paging::PteValid(IN PHARDWARE_PTE PtePointer) MM::Paging::PteValid(IN PMMPTE PtePointer)
{ {
/* Check if PTE is valid */ /* Check if PTE is valid */
return PmlRoutines->PteValid(PtePointer); return PmlRoutines->PteValid(PtePointer);
@@ -380,7 +380,7 @@ MM::Paging::SetOneEntry(IN PMMPTE Pte,
*/ */
XTAPI XTAPI
VOID VOID
MM::Paging::SetPte(IN PHARDWARE_PTE PtePointer, MM::Paging::SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber, IN PFN_NUMBER PageFrameNumber,
IN BOOLEAN Writable) IN BOOLEAN Writable)
{ {
@@ -406,7 +406,7 @@ MM::Paging::SetPte(IN PHARDWARE_PTE PtePointer,
*/ */
XTAPI XTAPI
VOID VOID
MM::Paging::SetPteCaching(IN PHARDWARE_PTE PtePointer, MM::Paging::SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable, IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough) IN BOOLEAN WriteThrough)
{ {