[HAL] Add NT6-compatible version of HalpMapPhysicalMemory64 and HalpUnmapVirtualAddress
[reactos.git] / hal / halx86 / generic / memory.c
index 587503f..14b7f67 100644 (file)
@@ -139,6 +139,23 @@ PVOID
 NTAPI
 HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress,
                         IN PFN_COUNT PageCount)
+{
+    return HalpMapPhysicalMemory64Vista(PhysicalAddress, PageCount, TRUE);
+}
+
+VOID
+NTAPI
+HalpUnmapVirtualAddress(IN PVOID VirtualAddress,
+                        IN PFN_COUNT PageCount)
+{
+    HalpUnmapVirtualAddressVista(VirtualAddress, PageCount, TRUE);
+}
+
+PVOID
+NTAPI
+HalpMapPhysicalMemory64Vista(IN PHYSICAL_ADDRESS PhysicalAddress,
+                             IN PFN_COUNT PageCount,
+                             IN BOOLEAN FlushCurrentTLB)
 {
     PHARDWARE_PTE PointerPte;
     PFN_NUMBER UsedPages = 0;
@@ -199,14 +216,17 @@ HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress,
     }
 
     /* Flush the TLB and return the address */
-    HalpFlushTLB();
+    if (FlushCurrentTLB)
+        HalpFlushTLB();
+
     return VirtualAddress;
 }
 
 VOID
 NTAPI
-HalpUnmapVirtualAddress(IN PVOID VirtualAddress,
-                        IN PFN_COUNT PageCount)
+HalpUnmapVirtualAddressVista(IN PVOID VirtualAddress,
+                             IN PFN_COUNT PageCount,
+                             IN BOOLEAN FlushCurrentTLB)
 {
     PHARDWARE_PTE PointerPte;
     ULONG i;
@@ -226,7 +246,8 @@ HalpUnmapVirtualAddress(IN PVOID VirtualAddress,
     }
 
     /* Flush the TLB */
-    HalpFlushTLB();
+    if (FlushCurrentTLB)
+        HalpFlushTLB();
 
     /* Put the heap back */
     if (HalpHeapStart > VirtualAddress) HalpHeapStart = VirtualAddress;