Add support for transitioning PTE to invalid state
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 35s
Builds / ExectOS (i686, release) (push) Successful in 33s
Builds / ExectOS (amd64, debug) (push) Successful in 44s
Builds / ExectOS (i686, debug) (push) Successful in 41s

This commit is contained in:
2026-01-03 00:41:56 +01:00
parent 0159262ee0
commit cc76ea40ee
7 changed files with 213 additions and 0 deletions

View File

@@ -366,6 +366,24 @@ MM::Paging::GetPteSize(VOID)
return PmlRoutines->GetPteSize();
}
/**
* Gets the software protection value of the corresponding Page Table Entry.
*
* @param PtePointer
* Specifies the address of the PTE.
*
* @return This routine returns the PTE software protection value.
*
* @since XT 1.0
*/
XTAPI
ULONG
MM::Paging::GetPteSoftwareProtection(IN PMMPTE PtePointer)
{
/* Return PTE software protection value */
return PmlRoutines->GetPteSoftwareProtection(PtePointer);
}
/**
* Gets the software prototype value of the corresponding Page Table Entry.
*
@@ -380,6 +398,7 @@ XTAPI
ULONG
MM::Paging::GetPteSoftwarePrototype(IN PMMPTE PtePointer)
{
/* Return PTE software prototype value */
return PmlRoutines->GetPteSoftwarePrototype(PtePointer);
}
@@ -397,6 +416,7 @@ XTAPI
ULONG
MM::Paging::GetPteSoftwareTransition(IN PMMPTE PtePointer)
{
/* Return PTE software transition value */
return PmlRoutines->GetPteSoftwareTransition(PtePointer);
}
@@ -594,6 +614,28 @@ MM::Paging::SetPteCaching(IN PMMPTE PtePointer,
PmlRoutines->SetPteCaching(PtePointer, CacheDisable, WriteThrough);
}
/**
* Transitions a Page Table Entry (PTE) to invalid state
*
* @param PointerPte
* Pointer to the page table entry (PTE) to transition.
*
* @param Protection
* Specifies the protection attribute to apply to the PTE.
*
* @return This routine does not return any value.
*
* @since XT 1.0
*/
XTAPI
VOID
MM::Paging::TransitionPte(IN PMMPTE PointerPte,
IN ULONG_PTR Protection)
{
/* Transition PTE */
PmlRoutines->TransitionPte(PointerPte, Protection);
}
/**
* Writes a Page Table Entry (PTE) with the specified value.
*