Unify PTE type definitions across architectures
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 23s
Builds / ExectOS (i686, debug) (push) Successful in 27s
Builds / ExectOS (i686, release) (push) Successful in 37s
Builds / ExectOS (amd64, release) (push) Successful in 40s

This commit is contained in:
2026-03-15 20:23:44 +01:00
parent d263f17831
commit 42525e5993
7 changed files with 40 additions and 41 deletions

View File

@@ -39,7 +39,7 @@ namespace MM
XTAPI PMMPPE GetPpeAddress(IN PVOID Address);
XTAPI ULONG GetPpeOffset(IN PVOID Address);
VIRTUAL XTAPI PVOID GetPpeVirtualAddress(IN PMMPPE PpePointer) = 0;
XTAPI ULONG_PTR GetPte(IN PMMPTE PtePointer);
XTAPI ULONGLONG GetPte(IN PMMPTE PtePointer);
XTAPI PMMPTE GetPteAddress(IN PVOID Address);
XTAPI LONG GetPteDistance(PMMPTE EndPte,
PMMPTE StartPte);
@@ -61,9 +61,9 @@ namespace MM
IN BOOLEAN Value);
XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask);
IN ULONGLONG AttributesMask);
XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes);
IN ULONGLONG Attributes);
XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough);

View File

@@ -37,7 +37,7 @@ namespace MM
STATIC XTAPI PVOID GetPdeVirtualAddress(IN PMMPDE PdePointer);
STATIC XTAPI PMMPPE GetPpeAddress(IN PVOID Address);
STATIC XTAPI PVOID GetPpeVirtualAddress(IN PMMPPE PpePointer);
STATIC XTAPI ULONG_PTR GetPte(IN PMMPTE PtePointer);
STATIC XTAPI ULONGLONG GetPte(IN PMMPTE PtePointer);
STATIC XTAPI PMMPTE GetPteAddress(IN PVOID Address);
STATIC XTAPI LONG GetPteDistance(PMMPTE EndPte,
PMMPTE StartPte);
@@ -57,9 +57,9 @@ namespace MM
IN BOOLEAN Value);
STATIC XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask);
IN ULONGLONG AttributesMask);
STATIC XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes);
IN ULONGLONG Attributes);
STATIC XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough);

View File

@@ -36,7 +36,7 @@ namespace MM
XTAPI PMMPPE GetPpeAddress(IN PVOID Address);
XTAPI ULONG GetPpeOffset(IN PVOID Address);
XTAPI PVOID GetPpeVirtualAddress(IN PMMPPE PpePointer);
VIRTUAL XTAPI ULONG_PTR GetPte(IN PMMPTE PtePointer) = 0;
VIRTUAL XTAPI ULONGLONG GetPte(IN PMMPTE PtePointer) = 0;
XTAPI PMMPTE GetPteAddress(IN PVOID Address);
XTAPI ULONG GetPteOffset(IN PVOID Address);
VIRTUAL XTAPI LONG GetPteDistance(PMMPTE EndPte,
@@ -55,9 +55,9 @@ namespace MM
IN BOOLEAN Value) = 0;
VIRTUAL XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask) = 0;
IN ULONGLONG AttributesMask) = 0;
VIRTUAL XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes) = 0;
IN ULONGLONG Attributes) = 0;
VIRTUAL XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough) = 0;
@@ -79,7 +79,7 @@ namespace MM
XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte);
XTAPI PFN_NUMBER GetPageFrameNumber(IN PMMPTE Pte);
XTAPI PVOID GetPdeVirtualAddress(IN PMMPDE PdePointer);
XTAPI ULONG_PTR GetPte(IN PMMPTE PtePointer);
XTAPI ULONGLONG GetPte(IN PMMPTE PtePointer);
XTAPI LONG GetPteDistance(PMMPTE EndPte,
PMMPTE StartPte);
XTAPI ULONG GetPteSize(VOID);
@@ -95,9 +95,9 @@ namespace MM
IN BOOLEAN Value);
XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask);
IN ULONGLONG AttributesMask);
XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes);
IN ULONGLONG Attributes);
XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough);
@@ -118,7 +118,7 @@ namespace MM
XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte);
XTAPI PFN_NUMBER GetPageFrameNumber(IN PMMPTE Pte);
XTAPI PVOID GetPdeVirtualAddress(IN PMMPDE PdePointer);
XTAPI ULONG_PTR GetPte(IN PMMPTE PtePointer);
XTAPI ULONGLONG GetPte(IN PMMPTE PtePointer);
XTAPI LONG GetPteDistance(PMMPTE EndPte,
PMMPTE StartPte);
XTAPI ULONG GetPteSize(VOID);
@@ -134,9 +134,9 @@ namespace MM
IN BOOLEAN Value);
XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask);
IN ULONGLONG AttributesMask);
XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes);
IN ULONGLONG Attributes);
XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough);

View File

@@ -35,7 +35,7 @@ namespace MM
STATIC XTAPI PVOID GetPdeVirtualAddress(IN PMMPDE PdePointer);
STATIC XTAPI PMMPPE GetPpeAddress(IN PVOID Address);
STATIC XTAPI PVOID GetPpeVirtualAddress(IN PMMPPE PpePointer);
STATIC XTAPI ULONG_PTR GetPte(IN PMMPTE PtePointer);
STATIC XTAPI ULONGLONG GetPte(IN PMMPTE PtePointer);
STATIC XTAPI PMMPTE GetPteAddress(IN PVOID Address);
STATIC XTAPI LONG GetPteDistance(PMMPTE EndPte,
PMMPTE StartPte);
@@ -53,9 +53,9 @@ namespace MM
IN BOOLEAN Value);
STATIC XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask);
IN ULONGLONG AttributesMask);
STATIC XTAPI VOID SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes);
IN ULONGLONG Attributes);
STATIC XTAPI VOID SetPteCaching(IN PMMPTE PtePointer,
IN BOOLEAN CacheDisable,
IN BOOLEAN WriteThrough);

View File

@@ -302,7 +302,7 @@ MM::PageMap::GetPpeOffset(IN PVOID Address)
* @since XT 1.0
*/
XTAPI
ULONG_PTR
ULONGLONG
MM::PageMap::GetPte(IN PMMPTE PtePointer)
{
/* Return PTE value */
@@ -574,7 +574,7 @@ XTAPI
VOID
MM::PageMap::SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask)
IN ULONGLONG AttributesMask)
{
/* Set PTE */
PtePointer->Hardware.PageFrameNumber = PageFrameNumber;
@@ -598,7 +598,7 @@ MM::PageMap::SetPte(IN PMMPTE PtePointer,
XTAPI
VOID
MM::PageMap::SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes)
IN ULONGLONG Attributes)
{
PtePointer->Long = Attributes;
}

View File

@@ -80,7 +80,6 @@ MM::PageMap::GetPdeOffset(IN PVOID Address)
return ((((ULONG_PTR)(Address)) >> PageMapInfo.PdiShift) & (PageMapInfo.Xpa ? 0x1FF : 0x3FF));
}
/**
* Gets the address of the PPE (Page Directory Pointer Table Entry), that maps given address.
*
@@ -174,7 +173,6 @@ MM::PageMap::GetPteOffset(IN PVOID Address)
return ((((ULONG_PTR)(Address)) >> MM_PTI_SHIFT) & (PageMapInfo.Xpa ? 0x1FF : 0x3FF));
}
/**
* Gets the status of Extended Paging Address (XPA) mode.
*
@@ -329,12 +327,13 @@ MM::PageMapBasic::GetPdeVirtualAddress(IN PMMPDE PdePointer)
* @since XT 1.0
*/
XTAPI
ULONG_PTR
ULONGLONG
MM::PageMapBasic::GetPte(IN PMMPTE PtePointer)
{
/* Return PTE value */
return PtePointer->Pml2.Long;
return (ULONGLONG)PtePointer->Pml2.Long;
}
/**
* Calculates the distance between two PTE pointers.
*
@@ -549,12 +548,12 @@ XTAPI
VOID
MM::PageMapBasic::SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask)
IN ULONGLONG AttributesMask)
{
/* Set PTE */
PtePointer->Pml2.Hardware.PageFrameNumber = PageFrameNumber;
PtePointer->Pml2.Hardware.Valid = 1;
PtePointer->Pml2.Long |= AttributesMask;
PtePointer->Pml2.Long |= (ULONG)AttributesMask;
}
/**
@@ -573,9 +572,9 @@ MM::PageMapBasic::SetPte(IN PMMPTE PtePointer,
XTAPI
VOID
MM::PageMapBasic::SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes)
IN ULONGLONG Attributes)
{
PtePointer->Pml2.Long = Attributes;
PtePointer->Pml2.Long = (ULONG)Attributes;
}
/**
@@ -626,14 +625,14 @@ MM::PageMapBasic::TransitionPte(IN PMMPTE PointerPte,
MMPTE TempPte;
/* Set transition PTE */
TempPte = *PointerPte;
TempPte.Pml2.Long = PointerPte->Pml2.Long;
TempPte.Pml2.Software.Protection = Protection;
TempPte.Pml2.Software.Prototype = 0;
TempPte.Pml2.Software.Transition = 1;
TempPte.Pml2.Software.Valid = 0;
/* Write PTE value */
*PointerPte = TempPte;
PointerPte->Pml2.Long = TempPte.Pml2.Long;
}
/**
@@ -798,7 +797,7 @@ MM::PageMapXpa::GetPdeVirtualAddress(IN PMMPDE PdePointer)
* @since XT 1.0
*/
XTAPI
ULONG_PTR
ULONGLONG
MM::PageMapXpa::GetPte(IN PMMPTE PtePointer)
{
/* Return PTE value */
@@ -1018,7 +1017,7 @@ XTAPI
VOID
MM::PageMapXpa::SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask)
IN ULONGLONG AttributesMask)
{
/* Set PTE */
PtePointer->Pml3.Hardware.PageFrameNumber = PageFrameNumber;
@@ -1042,7 +1041,7 @@ MM::PageMapXpa::SetPte(IN PMMPTE PtePointer,
XTAPI
VOID
MM::PageMapXpa::SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes)
IN ULONGLONG Attributes)
{
PtePointer->Pml3.Long = Attributes;
}
@@ -1095,14 +1094,14 @@ MM::PageMapXpa::TransitionPte(IN PMMPTE PointerPte,
MMPTE TempPte;
/* Set transition PTE */
TempPte = *PointerPte;
TempPte.Pml3.Long = PointerPte->Pml3.Long;
TempPte.Pml3.Software.Protection = Protection;
TempPte.Pml3.Software.Prototype = 0;
TempPte.Pml3.Software.Transition = 1;
TempPte.Pml3.Software.Valid = 0;
/* Write PTE value */
*PointerPte = TempPte;
PointerPte->Pml3.Long = TempPte.Pml3.Long;
}
/**

View File

@@ -321,7 +321,7 @@ MM::Paging::GetPpeVirtualAddress(IN PMMPPE PpePointer)
* @since XT 1.0
*/
XTAPI
ULONG_PTR
ULONGLONG
MM::Paging::GetPte(IN PMMPTE PtePointer)
{
/* Return PTE value */
@@ -578,7 +578,7 @@ XTAPI
VOID
MM::Paging::SetPte(IN PMMPTE PtePointer,
IN PFN_NUMBER PageFrameNumber,
IN ULONG_PTR AttributesMask)
IN ULONGLONG AttributesMask)
{
/* Set PTE */
PmlRoutines->SetPte(PtePointer, PageFrameNumber, AttributesMask);
@@ -600,7 +600,7 @@ MM::Paging::SetPte(IN PMMPTE PtePointer,
XTAPI
VOID
MM::Paging::SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes)
IN ULONGLONG Attributes)
{
PmlRoutines->SetPte(PtePointer, Attributes);
}