Introduce helper functions for querying the software prototype and transition bits of PTE
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 31s
Builds / ExectOS (amd64, debug) (push) Successful in 29s
Builds / ExectOS (i686, debug) (push) Successful in 28s
Builds / ExectOS (i686, release) (push) Successful in 33s

This commit is contained in:
2026-01-01 19:40:10 +01:00
parent 5ff0cad094
commit c080f74714
7 changed files with 149 additions and 1 deletions

View File

@@ -355,6 +355,40 @@ MM::PageMapBasic::GetPteSize(VOID)
return sizeof(MMPML2_PTE);
}
/**
* Gets the software prototype value of the corresponding Page Table Entry.
*
* @param PtePointer
* Specifies the address of the PTE.
*
* @return This routine returns the PTE software prototype value.
*
* @since XT 1.0
*/
XTAPI
ULONG
MM::PageMapBasic::GetPteSoftwarePrototype(IN PMMPTE PtePointer)
{
return (ULONG)PtePointer->Pml2.Software.Prototype;
}
/**
* Gets the software transition value of the corresponding Page Table Entry.
*
* @param PtePointer
* Specifies the address of the PTE.
*
* @return This routine returns the PTE software transition value.
*
* @since XT 1.0
*/
XTAPI
ULONG
MM::PageMapBasic::GetPteSoftwareTransition(IN PMMPTE PtePointer)
{
return (ULONG)PtePointer->Pml2.Software.Transition;
}
/**
* Gets the virtual address that is mapped by a given Page Table Entry.
*
@@ -505,7 +539,7 @@ MM::PageMapBasic::SetPte(IN PMMPTE PtePointer,
XTAPI
VOID
MM::PageMapBasic::SetPte(IN PMMPTE PtePointer,
IN ULONG_PTR Attributes)
IN ULONG_PTR Attributes)
{
PtePointer->Pml2.Long = Attributes;
}
@@ -743,6 +777,40 @@ MM::PageMapXpa::GetPteSize(VOID)
return sizeof(MMPML3_PTE);
}
/**
* Gets the software prototype value of the corresponding Page Table Entry.
*
* @param PtePointer
* Specifies the address of the PTE.
*
* @return This routine returns the PTE software prototype value.
*
* @since XT 1.0
*/
XTAPI
ULONG
MM::PageMapXpa::GetPteSoftwarePrototype(IN PMMPTE PtePointer)
{
return (ULONG)PtePointer->Pml3.Software.Prototype;
}
/**
* Gets the software transition value of the corresponding Page Table Entry.
*
* @param PtePointer
* Specifies the address of the PTE.
*
* @return This routine returns the PTE software transition value.
*
* @since XT 1.0
*/
XTAPI
ULONG
MM::PageMapXpa::GetPteSoftwareTransition(IN PMMPTE PtePointer)
{
return (ULONG)PtePointer->Pml3.Software.Transition;
}
/**
* Gets the virtual address that is mapped by a given Page Table Entry.
*