Some freelist.c fixes, to make it compile

svn path=/branches/ros-amd64-bringup/; revision=46532
This commit is contained in:
Timo Kreuzer 2010-03-28 22:51:39 +00:00
parent 7aab8a308b
commit 6f805c852b

View file

@ -56,6 +56,7 @@ typedef union
C_ASSERT(sizeof(PHYSICAL_PAGE) == sizeof(MMPFN)); C_ASSERT(sizeof(PHYSICAL_PAGE) == sizeof(MMPFN));
#define MiInsertInListTail(x, y) MiInsertInListTail(x, (PMMPFN)y)
//#define MiGetPfnEntry(Pfn) ((PPHYSICAL_PAGE)MiGetPfnEntry(Pfn)) //#define MiGetPfnEntry(Pfn) ((PPHYSICAL_PAGE)MiGetPfnEntry(Pfn))
#define MiGetPfnEntryIndex(x) MiGetPfnEntryIndex((struct _MMPFN*)x) #define MiGetPfnEntryIndex(x) MiGetPfnEntryIndex((struct _MMPFN*)x)
#define LockCount Flags.LockCount #define LockCount Flags.LockCount
@ -797,7 +798,7 @@ MmReferencePage(PFN_NUMBER Pfn)
return; return;
} }
Page = MiGetPfnEntry(Pfn); Page = (PVOID)MiGetPfnEntry(Pfn);
ASSERT(Page); ASSERT(Page);
Page->u3.e2.ReferenceCount++; Page->u3.e2.ReferenceCount++;
@ -814,7 +815,7 @@ MmGetReferenceCountPage(PFN_NUMBER Pfn)
DPRINT("MmGetReferenceCountPage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT); DPRINT("MmGetReferenceCountPage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock); oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
Page = MiGetPfnEntry(Pfn); Page = (PVOID)MiGetPfnEntry(Pfn);
ASSERT(Page); ASSERT(Page);
RCount = Page->u3.e2.ReferenceCount; RCount = Page->u3.e2.ReferenceCount;
@ -846,7 +847,7 @@ MmDereferencePage(PFN_NUMBER Pfn)
DPRINT("MmDereferencePage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT); DPRINT("MmDereferencePage(PhysicalAddress %x)\n", Pfn << PAGE_SHIFT);
Page = MiGetPfnEntry(Pfn); Page = (PVOID)MiGetPfnEntry(Pfn);
ASSERT(Page); ASSERT(Page);
Page->u3.e2.ReferenceCount--; Page->u3.e2.ReferenceCount--;
@ -885,13 +886,13 @@ MmAllocPage(ULONG Type)
DPRINT1("MmAllocPage(): Out of memory\n"); DPRINT1("MmAllocPage(): Out of memory\n");
return 0; return 0;
} }
PageDescriptor = MiRemoveHeadList(&MmFreePageListHead); PageDescriptor = (PVOID)MiRemoveHeadList(&MmFreePageListHead);
NeedClear = TRUE; NeedClear = TRUE;
} }
else else
{ {
PageDescriptor = MiRemoveHeadList(&MmZeroedPageListHead); PageDescriptor = (PVOID)MiRemoveHeadList(&MmZeroedPageListHead);
} }
PageDescriptor->u3.e2.ReferenceCount = 1; PageDescriptor->u3.e2.ReferenceCount = 1;
@ -961,7 +962,7 @@ MmZeroPageThreadMain(PVOID Ignored)
oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock); oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
while (MmFreePageListHead.Total) while (MmFreePageListHead.Total)
{ {
PageDescriptor = MiRemoveHeadList(&MmFreePageListHead); PageDescriptor = (PVOID)MiRemoveHeadList(&MmFreePageListHead);
/* We set the page to used, because MmCreateVirtualMapping failed with unused pages */ /* We set the page to used, because MmCreateVirtualMapping failed with unused pages */
KeReleaseQueuedSpinLock(LockQueuePfnLock, oldIrql); KeReleaseQueuedSpinLock(LockQueuePfnLock, oldIrql);
Pfn = PageDescriptor - MmPfnDatabase[0]; Pfn = PageDescriptor - MmPfnDatabase[0];