[NTOSKRNL] Remove duplicate fields from MEMORY_AREA
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Fri, 18 Aug 2017 07:13:34 +0000 (07:13 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Fri, 18 Aug 2017 07:13:34 +0000 (07:13 +0000)
svn path=/trunk/; revision=75602

reactos/ntoskrnl/include/internal/mm.h
reactos/ntoskrnl/mm/ARM3/virtual.c
reactos/ntoskrnl/mm/marea.c

index b9bb6be..f042911 100644 (file)
@@ -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;
index e280ef1..8f0591d 100644 (file)
@@ -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
                 {
index 0771fe9..12dcc6f 100644 (file)
@@ -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);
     }