diff --git a/reactos/ntoskrnl/include/internal/mm.h b/reactos/ntoskrnl/include/internal/mm.h index f7fea088cad..fb0cb2c0779 100644 --- a/reactos/ntoskrnl/include/internal/mm.h +++ b/reactos/ntoskrnl/include/internal/mm.h @@ -1061,13 +1061,6 @@ PVOID NTAPI MmCreateHyperspaceMapping(PFN_TYPE Page); -PFN_TYPE -NTAPI -MmChangeHyperspaceMapping( - PVOID Address, - PFN_TYPE Page -); - PFN_TYPE NTAPI MmDeleteHyperspaceMapping(PVOID Address); @@ -1219,13 +1212,6 @@ VOID NTAPI MmReferencePageUnsafe(PFN_TYPE Page); -BOOLEAN -NTAPI -MmIsAccessedAndResetAccessPage( - struct _EPROCESS *Process, - PVOID Address -); - ULONG NTAPI MmGetReferenceCountPage(PFN_TYPE Page); diff --git a/reactos/ntoskrnl/mm/i386/page.c b/reactos/ntoskrnl/mm/i386/page.c index 6ccd43dc97d..ba1c9916994 100644 --- a/reactos/ntoskrnl/mm/i386/page.c +++ b/reactos/ntoskrnl/mm/i386/page.c @@ -62,25 +62,6 @@ __inline LARGE_INTEGER PTE_TO_PAGE(ULONG npage) BOOLEAN MmUnmapPageTable(PULONG Pt); -ULONG_PTR -NTAPI -MiFlushTlbIpiRoutine(ULONG_PTR Address) -{ - if (Address == (ULONG_PTR)-1) - { - KeFlushCurrentTb(); - } - else if (Address == (ULONG_PTR)-2) - { - KeFlushCurrentTb(); - } - else - { - __invlpg((PVOID)Address); - } - return 0; -} - VOID MiFlushTlb(PULONG Pt, PVOID Address) { @@ -90,8 +71,6 @@ MiFlushTlb(PULONG Pt, PVOID Address) } } - - PULONG MmGetPageDirectory(VOID) { @@ -271,50 +250,6 @@ MmDeletePageTable(PEPROCESS Process, PVOID Address) } } -VOID -NTAPI -MmFreePageTable(PEPROCESS Process, PVOID Address) -{ - PEPROCESS CurrentProcess = PsGetCurrentProcess(); - ULONG i; - PFN_TYPE Pfn; - PULONG PageTable; - - DPRINT("ProcessId %d, Address %x\n", Process->UniqueProcessId, Address); - if (Process != NULL && Process != CurrentProcess) - { - KeAttachProcess(&Process->Pcb); - } - - PageTable = (PULONG)PAGE_ROUND_DOWN((PVOID)MiAddressToPte(Address)); - for (i = 0; i < 1024; i++) - { - if (PageTable[i] != 0) - { - DbgPrint("Page table entry not clear at %x/%x (is %x)\n", - ((ULONG)Address / (4*1024*1024)), i, PageTable[i]); - KEBUGCHECK(0); - } - } - Pfn = MiAddressToPde(Address)->u.Hard.PageFrameNumber; - MiAddressToPde(Address)->u.Long = 0; - MiFlushTlb((PULONG)MiAddressToPde(Address), MiAddressToPte(Address)); - - if (Address >= MmSystemRangeStart) - { - // MmGlobalKernelPageDirectory[ADDR_TO_PDE_OFFSET(Address)] = 0; - KEBUGCHECK(0); - } - else - { - MmReleasePageMemoryConsumer(MC_NPPOOL, Pfn); - } - if (Process != NULL && Process != CurrentProcess) - { - KeDetachProcess(); - } -} - static PULONG MmGetPageTableForProcess(PEPROCESS Process, PVOID Address, BOOLEAN Create) { @@ -637,42 +572,6 @@ MmIsDirtyPage(PEPROCESS Process, PVOID Address) return MmGetPageEntryForProcess(Process, Address) & PA_DIRTY ? TRUE : FALSE; } -BOOLEAN -NTAPI -MmIsAccessedAndResetAccessPage(PEPROCESS Process, PVOID Address) -{ - PULONG Pt; - ULONG Pte; - - if (Address < MmSystemRangeStart && Process == NULL) - { - DPRINT1("MmIsAccessedAndResetAccessPage is called for user space without a process.\n"); - KEBUGCHECK(0); - } - - Pt = MmGetPageTableForProcess(Process, Address, FALSE); - if (Pt == NULL) - { - KEBUGCHECK(0); - } - - do - { - Pte = *Pt; - } while (Pte != InterlockedCompareExchangePte(Pt, Pte & ~PA_ACCESSED, Pte)); - - if (Pte & PA_ACCESSED) - { - MiFlushTlb(Pt, Address); - return TRUE; - } - else - { - MmUnmapPageTable(Pt); - return FALSE; - } -} - VOID NTAPI MmSetCleanPage(PEPROCESS Process, PVOID Address) @@ -1234,22 +1133,6 @@ MmCreateHyperspaceMapping(PFN_TYPE Page) return Address; } -PFN_TYPE -NTAPI -MmChangeHyperspaceMapping(PVOID Address, PFN_TYPE NewPage) -{ - PFN_TYPE Pfn; - ULONG Entry; - - ASSERT (IS_HYPERSPACE(Address)); - - Entry = InterlockedExchangePte(MiAddressToPte(Address), PFN_TO_PTE(NewPage) | PA_PRESENT | PA_READWRITE); - Pfn = PTE_TO_PFN(Entry); - - __invlpg(Address); - return Pfn; -} - PFN_TYPE NTAPI MmDeleteHyperspaceMapping(PVOID Address)