mirror of
https://github.com/reactos/reactos.git
synced 2024-09-20 17:51:53 +00:00
[NTOS:MM] Add a few MiP*eToP*e helpers
And turn some of the existing ones into inline functions for the sake of type checking
This commit is contained in:
parent
ed1038ff9c
commit
b48e27ada1
|
@ -231,10 +231,69 @@ MiPxeToAddress(PMMPTE PointerPxe)
|
|||
return (PVOID)(((LONG64)PointerPxe << 52) >> 16);
|
||||
}
|
||||
|
||||
/* Translate between P*Es */
|
||||
#define MiPdeToPte(_Pde) ((PMMPTE)MiPteToAddress(_Pde))
|
||||
#define MiPteToPde(_Pte) ((PMMPDE)MiAddressToPte(_Pte))
|
||||
#define MiPdeToPpe(_Pde) ((PMMPPE)MiAddressToPte(_Pde))
|
||||
/* Convert a PDE into its lowest PTE */
|
||||
FORCEINLINE
|
||||
PMMPTE
|
||||
MiPdeToPte(PMMPDE PointerPde)
|
||||
{
|
||||
return (PMMPTE)MiPteToAddress(PointerPde);
|
||||
}
|
||||
|
||||
/* Convert a PPE into its lowest PTE */
|
||||
FORCEINLINE
|
||||
PMMPTE
|
||||
MiPpeToPte(PMMPPE PointerPpe)
|
||||
{
|
||||
return (PMMPTE)MiPdeToAddress(PointerPpe);
|
||||
}
|
||||
|
||||
/* Convert a PXE into its lowest PTE */
|
||||
FORCEINLINE
|
||||
PMMPTE
|
||||
MiPxeToPte(PMMPXE PointerPxe)
|
||||
{
|
||||
return (PMMPTE)MiPpeToAddress(PointerPxe);
|
||||
}
|
||||
|
||||
/* Convert a PTE to a corresponding PDE */
|
||||
FORCEINLINE
|
||||
PMMPDE
|
||||
MiPteToPde(PMMPTE PointerPte)
|
||||
{
|
||||
return (PMMPDE)MiAddressToPte(PointerPte);
|
||||
}
|
||||
|
||||
/* Convert a PTE to a corresponding PPE */
|
||||
FORCEINLINE
|
||||
PMMPPE
|
||||
MiPteToPpe(PMMPTE PointerPte)
|
||||
{
|
||||
return (PMMPPE)MiAddressToPde(PointerPte);
|
||||
}
|
||||
|
||||
/* Convert a PTE to a corresponding PXE */
|
||||
FORCEINLINE
|
||||
PMMPXE
|
||||
MiPteToPxe(PMMPTE PointerPte)
|
||||
{
|
||||
return (PMMPXE)MiAddressToPpe(PointerPte);
|
||||
}
|
||||
|
||||
/* Convert a PDE to a corresponding PPE */
|
||||
FORCEINLINE
|
||||
PMMPDE
|
||||
MiPdeToPpe(PMMPDE PointerPde)
|
||||
{
|
||||
return (PMMPPE)MiAddressToPte(PointerPde);
|
||||
}
|
||||
|
||||
/* Convert a PDE to a corresponding PXE */
|
||||
FORCEINLINE
|
||||
PMMPXE
|
||||
MiPdeToPxe(PMMPDE PointerPde)
|
||||
{
|
||||
return (PMMPXE)MiAddressToPde(PointerPde);
|
||||
}
|
||||
|
||||
/* Check P*E boundaries */
|
||||
#define MiIsPteOnPdeBoundary(PointerPte) \
|
||||
|
|
Loading…
Reference in a new issue