Add GetPageFrameNumber() to PTE interfaces
This commit is contained in:
@@ -31,6 +31,7 @@ namespace MM
|
||||
XTAPI PMMP5E GetP5eAddress(IN PVOID Address);
|
||||
XTAPI ULONG GetP5eIndex(IN PVOID Address);
|
||||
XTAPI PVOID GetP5eVirtualAddress(IN PMMP5E P5ePointer);
|
||||
XTAPI PFN_NUMBER GetPageFrameNumber(IN PMMPTE Pte);
|
||||
XTAPI PMMPDE GetPdeAddress(IN PVOID Address);
|
||||
XTAPI ULONG GetPdeIndex(IN PVOID Address);
|
||||
XTAPI PVOID GetPdeVirtualAddress(IN PMMPDE PdePointer);
|
||||
|
||||
@@ -28,6 +28,7 @@ namespace MM
|
||||
VIRTUAL XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte) = 0;
|
||||
VIRTUAL XTAPI PMMPTE GetNextPte(IN PMMPTE Pte) = 0;
|
||||
VIRTUAL XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte) = 0;
|
||||
VIRTUAL XTAPI PFN_NUMBER GetPageFrameNumber(IN PMMPTE Pte) = 0;
|
||||
XTAPI PMMPDE GetPdeAddress(IN PVOID Address);
|
||||
XTAPI ULONG GetPdeIndex(IN PVOID Address);
|
||||
XTAPI PVOID GetPdeVirtualAddress(IN PMMPDE PdePointer);
|
||||
@@ -60,6 +61,7 @@ namespace MM
|
||||
XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte);
|
||||
XTAPI PMMPTE GetNextPte(IN PMMPTE Pte);
|
||||
XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte);
|
||||
XTAPI PFN_NUMBER GetPageFrameNumber(IN PMMPTE Pte);
|
||||
XTAPI ULONG GetPteSize(VOID);
|
||||
XTAPI VOID InitializePageMapInfo(VOID);
|
||||
XTAPI BOOLEAN PteValid(IN PMMPTE PtePointer);
|
||||
@@ -83,6 +85,7 @@ namespace MM
|
||||
XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte);
|
||||
XTAPI PMMPTE GetNextPte(IN PMMPTE Pte);
|
||||
XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte);
|
||||
XTAPI PFN_NUMBER GetPageFrameNumber(IN PMMPTE Pte);
|
||||
XTAPI ULONG GetPteSize(VOID);
|
||||
XTAPI VOID InitializePageMapInfo(VOID);
|
||||
XTAPI BOOLEAN PteValid(IN PMMPTE PtePointer);
|
||||
|
||||
@@ -30,6 +30,7 @@ namespace MM
|
||||
STATIC XTAPI ULONG_PTR GetNextEntry(IN PMMPTE Pte);
|
||||
STATIC XTAPI PMMPTE GetNextPte(IN PMMPTE Pte);
|
||||
STATIC XTAPI BOOLEAN GetOneEntry(IN PMMPTE Pte);
|
||||
STATIC XTAPI PFN_NUMBER GetPageFrameNumber(IN PMMPTE Pte);
|
||||
STATIC XTAPI PMMPDE GetPdeAddress(IN PVOID Address);
|
||||
STATIC XTAPI PMMPPE GetPpeAddress(IN PVOID Address);
|
||||
STATIC XTAPI PMMPTE GetPteAddress(IN PVOID Address);
|
||||
|
||||
@@ -173,6 +173,23 @@ MM::PageMap::GetP5eVirtualAddress(IN PMMP5E P5ePointer)
|
||||
return (PVOID)((((LONGLONG)P5ePointer << 61) >> 16) * PageMapInfo.Xpa);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the page frame number from a corresponding PTE.
|
||||
*
|
||||
* @param Pte
|
||||
* The PTE pointer to get the page frame number from.
|
||||
*
|
||||
* @return This routine returns the page frame number.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTAPI
|
||||
PFN_NUMBER
|
||||
MM::PageMap::GetPageFrameNumber(IN PMMPTE Pte)
|
||||
{
|
||||
return Pte->Hardware.PageFrameNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the address of the PDE (Page Directory Entry), that maps given address.
|
||||
*
|
||||
|
||||
@@ -286,6 +286,23 @@ MM::PageMapBasic::GetOneEntry(IN PMMPTE Pte)
|
||||
return Pte->Pml2.List.OneEntry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the page frame number from a corresponding PTE.
|
||||
*
|
||||
* @param Pte
|
||||
* The PTE pointer to get the page frame number from.
|
||||
*
|
||||
* @return This routine returns the page frame number.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTAPI
|
||||
PFN_NUMBER
|
||||
MM::PageMapBasic::GetPageFrameNumber(IN PMMPTE Pte)
|
||||
{
|
||||
return Pte->Pml2.Hardware.PageFrameNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the size of a PTE for basic paging (PML2).
|
||||
*
|
||||
@@ -520,6 +537,23 @@ MM::PageMapXpa::GetOneEntry(IN PMMPTE Pte)
|
||||
return Pte->Pml3.List.OneEntry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the page frame number from a corresponding PTE.
|
||||
*
|
||||
* @param Pte
|
||||
* The PTE pointer to get the page frame number from.
|
||||
*
|
||||
* @return This routine returns the page frame number.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTAPI
|
||||
PFN_NUMBER
|
||||
MM::PageMapBasic::GetPageFrameNumber(IN PMMPTE Pte)
|
||||
{
|
||||
return Pte->Pml3.Hardware.PageFrameNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the size of a PTE for XPA paging (PML3).
|
||||
*
|
||||
|
||||
@@ -170,6 +170,23 @@ MM::Paging::GetOneEntry(IN PMMPTE Pte)
|
||||
return PmlRoutines->GetOneEntry(Pte);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the page frame number from a corresponding PTE.
|
||||
*
|
||||
* @param Pte
|
||||
* The PTE pointer to get the page frame number from.
|
||||
*
|
||||
* @return This routine returns the page frame number.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTAPI
|
||||
PFN_NUMBER
|
||||
MM::Paging::GetPageFrameNumber(IN PMMPTE Pte)
|
||||
{
|
||||
return PmlRoutines->GetPageFrameNumber(Pte);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the page map routines for basic paging mode (non-XPA).
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user