diff --git a/reactos/ntoskrnl/include/internal/i386/mm.h b/reactos/ntoskrnl/include/internal/i386/mm.h index 67a4ddff817..2846b6993d5 100644 --- a/reactos/ntoskrnl/include/internal/i386/mm.h +++ b/reactos/ntoskrnl/include/internal/i386/mm.h @@ -23,6 +23,11 @@ PULONG MmGetPageDirectory(VOID); #define MiAddressToPteOffset(x) \ ((((ULONG)(x)) << 10) >> 22) +// +// Convert a PTE into a corresponding address +// +#define MiPteToAddress(PTE) ((PVOID)((ULONG)(PTE) << 10)) + #define ADDR_TO_PAGE_TABLE(v) (((ULONG)(v)) / (1024 * PAGE_SIZE)) #define ADDR_TO_PDE_OFFSET(v) ((((ULONG)(v)) / (1024 * PAGE_SIZE))) #define ADDR_TO_PTE_OFFSET(v) ((((ULONG)(v)) % (1024 * PAGE_SIZE)) / PAGE_SIZE) diff --git a/reactos/ntoskrnl/include/internal/mm.h b/reactos/ntoskrnl/include/internal/mm.h index c74624c76ea..ac776199304 100644 --- a/reactos/ntoskrnl/include/internal/mm.h +++ b/reactos/ntoskrnl/include/internal/mm.h @@ -1050,6 +1050,16 @@ MiGetPfnEntry(IN PFN_TYPE Pfn) return Page; }; +FORCEINLINE +PFN_NUMBER +MiGetPfnEntryIndex(IN PMMPFN Pfn1) +{ + // + // This will return the Page Frame Number (PFN) from the MMPFN + // + return Pfn1 - MmPfnDatabase; +} + PFN_TYPE NTAPI MmGetLRUNextUserPage(PFN_TYPE PreviousPage);