mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-30 19:26:05 +00:00
[NTOSKRNL/MM]
- call mm functions with a process, when we have one. - Fix potential rounding issues - Add some sanity ASSERTs - You never use enough brackets ;-) svn path=/trunk/; revision=54386
This commit is contained in:
@@ -183,7 +183,7 @@ MmNotPresentFaultVirtualMemory(PMMSUPPORT AddressSpace,
|
||||
* address space when another thread could load the page so we check
|
||||
* that.
|
||||
*/
|
||||
if (MmIsPagePresent(NULL, Address))
|
||||
if (MmIsPagePresent(Process, Address))
|
||||
{
|
||||
return(STATUS_SUCCESS);
|
||||
}
|
||||
@@ -301,7 +301,7 @@ MmNotPresentFaultVirtualMemory(PMMSUPPORT AddressSpace,
|
||||
/*
|
||||
* Handle swapped out pages.
|
||||
*/
|
||||
if (MmIsPageSwapEntry(NULL, Address))
|
||||
if (MmIsPageSwapEntry(Process, Address))
|
||||
{
|
||||
SWAPENTRY SwapEntry;
|
||||
|
||||
@@ -327,7 +327,7 @@ MmNotPresentFaultVirtualMemory(PMMSUPPORT AddressSpace,
|
||||
{
|
||||
MmUnlockAddressSpace(AddressSpace);
|
||||
Status = MmCreateVirtualMapping(Process,
|
||||
Address,
|
||||
(PVOID)PAGE_ROUND_DOWN(Address),
|
||||
Region->Protect,
|
||||
&Page,
|
||||
1);
|
||||
|
||||
@@ -92,6 +92,7 @@ MmInsertLRULastUserPage(PFN_NUMBER Pfn)
|
||||
/* Set the page as a user page */
|
||||
ASSERT(Pfn != 0);
|
||||
ASSERT_IS_ROS_PFN(MiGetPfnEntry(Pfn));
|
||||
ASSERT(!RtlCheckBit(&MiUserPfnBitMap, (ULONG)Pfn));
|
||||
OldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
|
||||
RtlSetBit(&MiUserPfnBitMap, (ULONG)Pfn);
|
||||
KeReleaseQueuedSpinLock(LockQueuePfnLock, OldIrql);
|
||||
@@ -123,6 +124,7 @@ MmRemoveLRUUserPage(PFN_NUMBER Page)
|
||||
/* Unset the page as a user page */
|
||||
ASSERT(Page != 0);
|
||||
ASSERT_IS_ROS_PFN(MiGetPfnEntry(Page));
|
||||
ASSERT(RtlCheckBit(&MiUserPfnBitMap, (ULONG)Page));
|
||||
RtlClearBit(&MiUserPfnBitMap, (ULONG)Page);
|
||||
}
|
||||
|
||||
|
||||
@@ -893,7 +893,7 @@ MmCreateMemoryArea(PMMSUPPORT AddressSpace,
|
||||
Granularity = (MEMORY_AREA_VIRTUAL_MEMORY == Type ? MM_VIRTMEM_GRANULARITY : PAGE_SIZE);
|
||||
if ((*BaseAddress) == 0 && !FixedAddress)
|
||||
{
|
||||
tmpLength = PAGE_ROUND_UP(Length);
|
||||
tmpLength = (ULONG_PTR)MM_ROUND_UP(Length, Granularity);
|
||||
*BaseAddress = MmFindGap(AddressSpace,
|
||||
tmpLength,
|
||||
Granularity,
|
||||
@@ -908,6 +908,7 @@ MmCreateMemoryArea(PMMSUPPORT AddressSpace,
|
||||
{
|
||||
tmpLength = Length + ((ULONG_PTR) *BaseAddress
|
||||
- (ULONG_PTR) MM_ROUND_DOWN(*BaseAddress, Granularity));
|
||||
tmpLength = (ULONG_PTR)MM_ROUND_UP(tmpLength, Granularity);
|
||||
*BaseAddress = MM_ROUND_DOWN(*BaseAddress, Granularity);
|
||||
|
||||
if (!MmGetAddressSpaceOwner(AddressSpace) && *BaseAddress < MmSystemRangeStart)
|
||||
@@ -986,6 +987,8 @@ MmMapMemoryArea(PVOID BaseAddress,
|
||||
{
|
||||
ULONG i;
|
||||
NTSTATUS Status;
|
||||
|
||||
ASSERT(((ULONG_PTR)BaseAddress % PAGE_SIZE) == 0);
|
||||
|
||||
for (i = 0; i < PAGE_ROUND_UP(Length) / PAGE_SIZE; i++)
|
||||
{
|
||||
|
||||
@@ -113,7 +113,7 @@ static PFN_COUNT MiReservedSwapPages;
|
||||
*/
|
||||
#define FILE_FROM_ENTRY(i) ((i) & 0x0f)
|
||||
#define OFFSET_FROM_ENTRY(i) ((i) >> 11)
|
||||
#define ENTRY_FROM_FILE_OFFSET(i, j) ((i) | (j) << 11 | 0x400)
|
||||
#define ENTRY_FROM_FILE_OFFSET(i, j) ((i) | ((j) << 11) | 0x400)
|
||||
|
||||
static BOOLEAN MmSwapSpaceMessage = FALSE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user