From: Timo Kreuzer Date: Fri, 18 Aug 2017 07:13:34 +0000 (+0000) Subject: [NTOSKRNL] Remove duplicate fields from MEMORY_AREA X-Git-Tag: backups/GSoC_2017/rapps@75905~4^2~115 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=7f3f55628af477e2fc26f00b429a39b03d982dbc [NTOSKRNL] Remove duplicate fields from MEMORY_AREA svn path=/trunk/; revision=75602 --- diff --git a/reactos/ntoskrnl/include/internal/mm.h b/reactos/ntoskrnl/include/internal/mm.h index b9bb6be36f9..f0429116b38 100644 --- a/reactos/ntoskrnl/include/internal/mm.h +++ b/reactos/ntoskrnl/include/internal/mm.h @@ -200,17 +200,13 @@ typedef struct _ROS_SECTION_OBJECT }; } ROS_SECTION_OBJECT, *PROS_SECTION_OBJECT; -#define MA_GetStartingAddress(_MemoryArea) ((_MemoryArea)->StartingVpn << PAGE_SHIFT) -#define MA_GetEndingAddress(_MemoryArea) (((_MemoryArea)->EndingVpn + 1) << PAGE_SHIFT) +#define MA_GetStartingAddress(_MemoryArea) (MemoryArea->VadNode.StartingVpn << PAGE_SHIFT) +#define MA_GetEndingAddress(_MemoryArea) ((MemoryArea->VadNode.EndingVpn + 1) << PAGE_SHIFT) typedef struct _MEMORY_AREA { MMVAD VadNode; - ULONG_PTR StartingVpn; - ULONG_PTR EndingVpn; - struct _MEMORY_AREA *Parent; - struct _MEMORY_AREA *LeftChild; - struct _MEMORY_AREA *RightChild; + ULONG Type; ULONG Protect; ULONG Flags; diff --git a/reactos/ntoskrnl/mm/ARM3/virtual.c b/reactos/ntoskrnl/mm/ARM3/virtual.c index e280ef1401e..8f0591db0bf 100644 --- a/reactos/ntoskrnl/mm/ARM3/virtual.c +++ b/reactos/ntoskrnl/mm/ARM3/virtual.c @@ -5383,10 +5383,10 @@ NtFreeVirtualMemory(IN HANDLE ProcessHandle, Vad->u.VadFlags.CommitCharge -= CommitReduction; // For ReactOS: shrink the corresponding memory area MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, (PVOID)StartingAddress); - ASSERT(Vad->StartingVpn == MemoryArea->StartingVpn); - ASSERT(Vad->EndingVpn == MemoryArea->EndingVpn); + ASSERT(Vad->StartingVpn == MemoryArea->VadNode.StartingVpn); + ASSERT(Vad->EndingVpn == MemoryArea->VadNode.EndingVpn); Vad->EndingVpn = (StartingAddress - 1) >> PAGE_SHIFT; - MemoryArea->EndingVpn = Vad->EndingVpn; + MemoryArea->VadNode.EndingVpn = Vad->EndingVpn; } else { diff --git a/reactos/ntoskrnl/mm/marea.c b/reactos/ntoskrnl/mm/marea.c index 0771fe94d3b..12dcc6fd7d4 100644 --- a/reactos/ntoskrnl/mm/marea.c +++ b/reactos/ntoskrnl/mm/marea.c @@ -169,13 +169,11 @@ MmInsertMemoryArea( { PEPROCESS Process = MmGetAddressSpaceOwner(AddressSpace); - marea->VadNode.StartingVpn = marea->StartingVpn; - marea->VadNode.EndingVpn = marea->EndingVpn; marea->VadNode.u.VadFlags.Spare = 1; marea->VadNode.u.VadFlags.Protection = MiMakeProtectionMask(marea->Protect); /* Build a lame VAD if this is a user-space allocation */ - if (marea->EndingVpn + 1 < (ULONG_PTR)MmSystemRangeStart >> PAGE_SHIFT) + if (marea->VadNode.EndingVpn + 1 < (ULONG_PTR)MmSystemRangeStart >> PAGE_SHIFT) { ASSERT(Process != NULL); if (marea->Type != MEMORY_AREA_OWNED_BY_ARM3) @@ -354,7 +352,7 @@ MmFreeMemoryArea( //if (MemoryArea->VadNode.StartingVpn < (ULONG_PTR)MmSystemRangeStart >> PAGE_SHIFT if (MemoryArea->Vad) { - ASSERT(MemoryArea->EndingVpn + 1 < (ULONG_PTR)MmSystemRangeStart >> PAGE_SHIFT); + ASSERT(MemoryArea->VadNode.EndingVpn + 1 < (ULONG_PTR)MmSystemRangeStart >> PAGE_SHIFT); ASSERT(MemoryArea->Type == MEMORY_AREA_SECTION_VIEW || MemoryArea->Type == MEMORY_AREA_CACHE); /* MmCleanProcessAddressSpace might have removed it (and this would be MmDeleteProcessAdressSpace) */ @@ -470,8 +468,8 @@ MmCreateMemoryArea(PMMSUPPORT AddressSpace, return STATUS_NO_MEMORY; } - MemoryArea->StartingVpn = (ULONG_PTR)*BaseAddress >> PAGE_SHIFT; - MemoryArea->EndingVpn = ((ULONG_PTR)*BaseAddress + tmpLength - 1) >> PAGE_SHIFT; + MemoryArea->VadNode.StartingVpn = (ULONG_PTR)*BaseAddress >> PAGE_SHIFT; + MemoryArea->VadNode.EndingVpn = ((ULONG_PTR)*BaseAddress + tmpLength - 1) >> PAGE_SHIFT; MmInsertMemoryArea(AddressSpace, MemoryArea); } else @@ -508,8 +506,8 @@ MmCreateMemoryArea(PMMSUPPORT AddressSpace, } } - MemoryArea->StartingVpn = (ULONG_PTR)*BaseAddress >> PAGE_SHIFT; - MemoryArea->EndingVpn = ((ULONG_PTR)*BaseAddress + tmpLength - 1) >> PAGE_SHIFT; + MemoryArea->VadNode.StartingVpn = (ULONG_PTR)*BaseAddress >> PAGE_SHIFT; + MemoryArea->VadNode.EndingVpn = ((ULONG_PTR)*BaseAddress + tmpLength - 1) >> PAGE_SHIFT; MmInsertMemoryArea(AddressSpace, MemoryArea); }