NTAPI
MmSetSavedSwapEntryPage(PFN_NUMBER Pfn, SWAPENTRY SwapEntry)
{
- KIRQL oldIrql;
- PMMPFN Pfn1;
+ KIRQL oldIrql;
+ PMMPFN Pfn1;
- Pfn1 = MiGetPfnEntry(Pfn);
- ASSERT(Pfn1);
- ASSERT_IS_ROS_PFN(Pfn1);
+ Pfn1 = MiGetPfnEntry(Pfn);
+ ASSERT(Pfn1);
+ ASSERT_IS_ROS_PFN(Pfn1);
- oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
- Pfn1->u1.SwapEntry = SwapEntry;
- KeReleaseQueuedSpinLock(LockQueuePfnLock, oldIrql);
+ oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
+ Pfn1->u1.SwapEntry = SwapEntry;
+ KeReleaseQueuedSpinLock(LockQueuePfnLock, oldIrql);
}
SWAPENTRY
NTAPI
MmGetSavedSwapEntryPage(PFN_NUMBER Pfn)
{
- SWAPENTRY SwapEntry;
- KIRQL oldIrql;
- PMMPFN Pfn1;
+ SWAPENTRY SwapEntry;
+ KIRQL oldIrql;
+ PMMPFN Pfn1;
- Pfn1 = MiGetPfnEntry(Pfn);
- ASSERT(Pfn1);
- ASSERT_IS_ROS_PFN(Pfn1);
+ Pfn1 = MiGetPfnEntry(Pfn);
+ ASSERT(Pfn1);
+ ASSERT_IS_ROS_PFN(Pfn1);
- oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
- SwapEntry = Pfn1->u1.SwapEntry;
- KeReleaseQueuedSpinLock(LockQueuePfnLock, oldIrql);
+ oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
+ SwapEntry = Pfn1->u1.SwapEntry;
+ KeReleaseQueuedSpinLock(LockQueuePfnLock, oldIrql);
- return(SwapEntry);
+ return(SwapEntry);
}
VOID
NTAPI
MmReferencePage(PFN_NUMBER Pfn)
{
- PMMPFN Pfn1;
+ PMMPFN Pfn1;
- DPRINT("MmReferencePage(PysicalAddress %x)\n", Pfn << PAGE_SHIFT);
+ DPRINT("MmReferencePage(PysicalAddress %x)\n", Pfn << PAGE_SHIFT);
- ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL);
- ASSERT(Pfn != 0);
- ASSERT(Pfn <= MmHighestPhysicalPage);
+ ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL);
+ ASSERT(Pfn != 0);
+ ASSERT(Pfn <= MmHighestPhysicalPage);
- Pfn1 = MiGetPfnEntry(Pfn);
- ASSERT(Pfn1);
- ASSERT_IS_ROS_PFN(Pfn1);
+ Pfn1 = MiGetPfnEntry(Pfn);
+ ASSERT(Pfn1);
+ ASSERT_IS_ROS_PFN(Pfn1);
- ASSERT(Pfn1->u3.e2.ReferenceCount != 0);
- Pfn1->u3.e2.ReferenceCount++;
+ ASSERT(Pfn1->u3.e2.ReferenceCount != 0);
+ Pfn1->u3.e2.ReferenceCount++;
}
ULONG
NTAPI
MmGetReferenceCountPage(PFN_NUMBER Pfn)
{
- KIRQL oldIrql;
- ULONG RCount;
- PMMPFN Pfn1;
+ KIRQL oldIrql;
+ ULONG RCount;
+ PMMPFN Pfn1;
- DPRINT("MmGetReferenceCountPage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
+ DPRINT("MmGetReferenceCountPage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
- oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
- Pfn1 = MiGetPfnEntry(Pfn);
- ASSERT(Pfn1);
- ASSERT_IS_ROS_PFN(Pfn1);
+ oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
+ Pfn1 = MiGetPfnEntry(Pfn);
+ ASSERT(Pfn1);
+ ASSERT_IS_ROS_PFN(Pfn1);
- RCount = Pfn1->u3.e2.ReferenceCount;
+ RCount = Pfn1->u3.e2.ReferenceCount;
- KeReleaseQueuedSpinLock(LockQueuePfnLock, oldIrql);
- return(RCount);
+ KeReleaseQueuedSpinLock(LockQueuePfnLock, oldIrql);
+ return(RCount);
}
BOOLEAN
NTAPI
MmDereferencePage(PFN_NUMBER Pfn)
{
- PMMPFN Pfn1;
- DPRINT("MmDereferencePage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
+ PMMPFN Pfn1;
+ DPRINT("MmDereferencePage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
- Pfn1 = MiGetPfnEntry(Pfn);
- ASSERT(Pfn1);
- ASSERT_IS_ROS_PFN(Pfn1);
+ Pfn1 = MiGetPfnEntry(Pfn);
+ ASSERT(Pfn1);
+ ASSERT_IS_ROS_PFN(Pfn1);
- ASSERT(Pfn1->u3.e2.ReferenceCount != 0);
- Pfn1->u3.e2.ReferenceCount--;
- if (Pfn1->u3.e2.ReferenceCount == 0)
- {
+ ASSERT(Pfn1->u3.e2.ReferenceCount != 0);
+ Pfn1->u3.e2.ReferenceCount--;
+ if (Pfn1->u3.e2.ReferenceCount == 0)
+ {
/* Mark the page temporarily as valid, we're going to make it free soon */
Pfn1->u3.e1.PageLocation = ActiveAndValid;
/* Bring it back into the free list */
DPRINT("Legacy free: %lx\n", Pfn);
MiInsertPageInFreeList(Pfn);
- }
+ }
}
PFN_NUMBER
NTAPI
MmAllocPage(ULONG Type)
{
- PFN_NUMBER PfnOffset;
- PMMPFN Pfn1;
+ PFN_NUMBER PfnOffset;
+ PMMPFN Pfn1;
- PfnOffset = MiRemoveZeroPage(MI_GET_NEXT_COLOR());
+ PfnOffset = MiRemoveZeroPage(MI_GET_NEXT_COLOR());
- if (!PfnOffset)
- {
- DPRINT1("MmAllocPage(): Out of memory\n");
- return 0;
- }
+ if (!PfnOffset)
+ {
+ DPRINT1("MmAllocPage(): Out of memory\n");
+ return 0;
+ }
- DPRINT("Legacy allocate: %lx\n", PfnOffset);
- Pfn1 = MiGetPfnEntry(PfnOffset);
- Pfn1->u3.e2.ReferenceCount = 1;
- Pfn1->u3.e1.PageLocation = ActiveAndValid;
+ DPRINT("Legacy allocate: %lx\n", PfnOffset);
+ Pfn1 = MiGetPfnEntry(PfnOffset);
+ Pfn1->u3.e2.ReferenceCount = 1;
+ Pfn1->u3.e1.PageLocation = ActiveAndValid;
- /* This marks the PFN as a ReactOS PFN */
- Pfn1->u4.AweAllocation = TRUE;
+ /* This marks the PFN as a ReactOS PFN */
+ Pfn1->u4.AweAllocation = TRUE;
- /* Allocate the extra ReactOS Data and zero it out */
- Pfn1->u1.SwapEntry = 0;
- Pfn1->RmapListHead = NULL;
+ /* Allocate the extra ReactOS Data and zero it out */
+ Pfn1->u1.SwapEntry = 0;
+ Pfn1->RmapListHead = NULL;
- return PfnOffset;
+ return PfnOffset;
}
/* EOF */