mirror of
https://github.com/reactos/reactos.git
synced 2026-05-30 23:33:24 +08:00
[HAL] Add NT6-compatible version of HalpMapPhysicalMemory64 and HalpUnmapVirtualAddress
This commit is contained in:
committed by
Thomas Faber
parent
4e32ad3623
commit
4ea570975c
@@ -26,8 +26,13 @@ HalpRegisterKdSupportFunctions(VOID)
|
||||
|
||||
/* Register memory functions */
|
||||
#ifndef _MINIHAL_
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
KdMapPhysicalMemory64 = HalpMapPhysicalMemory64Vista;
|
||||
KdUnmapVirtualAddress = HalpUnmapVirtualAddressVista;
|
||||
#else
|
||||
KdMapPhysicalMemory64 = HalpMapPhysicalMemory64;
|
||||
KdUnmapVirtualAddress = HalpUnmapVirtualAddress;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Register ACPI stub */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -646,6 +646,22 @@ HalpAllocPhysicalMemory(
|
||||
IN BOOLEAN Aligned
|
||||
);
|
||||
|
||||
PVOID
|
||||
NTAPI
|
||||
HalpMapPhysicalMemory64Vista(
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN PFN_COUNT PageCount,
|
||||
IN BOOLEAN FlushCurrentTLB
|
||||
);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
HalpUnmapVirtualAddressVista(
|
||||
IN PVOID VirtualAddress,
|
||||
IN PFN_COUNT NumberPages,
|
||||
IN BOOLEAN FlushCurrentTLB
|
||||
);
|
||||
|
||||
PVOID
|
||||
NTAPI
|
||||
HalpMapPhysicalMemory64(
|
||||
|
||||
@@ -1228,8 +1228,13 @@ HalpRegisterKdSupportFunctions(VOID)
|
||||
|
||||
/* Register memory functions */
|
||||
#ifndef _MINIHAL_
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
KdMapPhysicalMemory64 = HalpMapPhysicalMemory64Vista;
|
||||
KdUnmapVirtualAddress = HalpUnmapVirtualAddressVista;
|
||||
#else
|
||||
KdMapPhysicalMemory64 = HalpMapPhysicalMemory64;
|
||||
KdUnmapVirtualAddress = HalpUnmapVirtualAddress;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Register ACPI stub */
|
||||
|
||||
Reference in New Issue
Block a user