HlPool manages hardware related memory

This commit is contained in:
2024-06-02 17:01:45 +02:00
parent 6b1ccc4ce5
commit abb65b99fe
2 changed files with 30 additions and 34 deletions

View File

@@ -15,9 +15,9 @@
/* Memory Manager routines forward references */ /* Memory Manager routines forward references */
XTAPI XTAPI
XTSTATUS XTSTATUS
MmAllocateHalMemory(IN PFN_NUMBER PageCount, MmAllocateHardwareMemory(IN PFN_NUMBER PageCount,
IN BOOLEAN Aligned, IN BOOLEAN Aligned,
OUT PULONG_PTR Buffer); OUT PULONG_PTR Buffer);
XTAPI XTAPI
XTSTATUS XTSTATUS
@@ -43,37 +43,33 @@ XTAPI
VOID VOID
MmFreeProcessorStructures(IN PVOID StructuresData); MmFreeProcessorStructures(IN PVOID StructuresData);
XTAPI
VOID
MmInitializeHardware(VOID);
XTAPI XTAPI
VOID VOID
MmInitializeMemoryManager(VOID); MmInitializeMemoryManager(VOID);
XTAPI XTAPI
XTSTATUS XTSTATUS
MmMapHalMemory(IN PHYSICAL_ADDRESS PhysicalAddress, MmMapHardwareMemory(IN PHYSICAL_ADDRESS PhysicalAddress,
IN PFN_NUMBER PageCount, IN PFN_NUMBER PageCount,
IN BOOLEAN FlushTlb, IN BOOLEAN FlushTlb,
OUT PVOID *VirtualAddress); OUT PVOID *VirtualAddress);
XTAPI XTAPI
VOID VOID
MmMarkHalMemoryWriteThrough(IN PVOID VirtualAddress, MmMarkHardwareMemoryWriteThrough(IN PVOID VirtualAddress,
IN PFN_NUMBER PageCount); IN PFN_NUMBER PageCount);
XTAPI XTAPI
VOID VOID
MmRemapHalMemory(IN PVOID VirtualAddress, MmRemapHardwareMemory(IN PVOID VirtualAddress,
IN PHYSICAL_ADDRESS PhysicalAddress, IN PHYSICAL_ADDRESS PhysicalAddress,
IN BOOLEAN FlushTlb); IN BOOLEAN FlushTlb);
XTAPI XTAPI
XTSTATUS XTSTATUS
MmUnmapHalMemory(IN PVOID VirtualAddress, MmUnmapHardwareMemory(IN PVOID VirtualAddress,
IN PFN_NUMBER PageCount, IN PFN_NUMBER PageCount,
IN BOOLEAN FlushTlb); IN BOOLEAN FlushTlb);
XTAPI XTAPI
VOID VOID

View File

@@ -27,9 +27,9 @@
*/ */
XTAPI XTAPI
XTSTATUS XTSTATUS
MmAllocateHalMemory(IN PFN_NUMBER PageCount, MmAllocateHardwareMemory(IN PFN_NUMBER PageCount,
IN BOOLEAN Aligned, IN BOOLEAN Aligned,
OUT PULONG_PTR Buffer) OUT PULONG_PTR Buffer)
{ {
PLOADER_MEMORY_DESCRIPTOR Descriptor, ExtraDescriptor, HalDescriptor; PLOADER_MEMORY_DESCRIPTOR Descriptor, ExtraDescriptor, HalDescriptor;
PFN_NUMBER Alignment, MaxPage; PFN_NUMBER Alignment, MaxPage;
@@ -160,10 +160,10 @@ MmAllocateHalMemory(IN PFN_NUMBER PageCount,
*/ */
XTAPI XTAPI
XTSTATUS XTSTATUS
MmMapHalMemory(IN PHYSICAL_ADDRESS PhysicalAddress, MmMapHardwareMemory(IN PHYSICAL_ADDRESS PhysicalAddress,
IN PFN_NUMBER PageCount, IN PFN_NUMBER PageCount,
IN BOOLEAN FlushTlb, IN BOOLEAN FlushTlb,
OUT PVOID *VirtualAddress) OUT PVOID *VirtualAddress)
{ {
PVOID BaseAddress, ReturnAddress; PVOID BaseAddress, ReturnAddress;
PFN_NUMBER MappedPages; PFN_NUMBER MappedPages;
@@ -255,8 +255,8 @@ MmMapHalMemory(IN PHYSICAL_ADDRESS PhysicalAddress,
*/ */
XTAPI XTAPI
VOID VOID
MmMarkHalMemoryWriteThrough(IN PVOID VirtualAddress, MmMarkHardwareMemoryWriteThrough(IN PVOID VirtualAddress,
IN PFN_NUMBER PageCount) IN PFN_NUMBER PageCount)
{ {
PHARDWARE_PTE PtePointer; PHARDWARE_PTE PtePointer;
PFN_NUMBER Page; PFN_NUMBER Page;
@@ -292,9 +292,9 @@ MmMarkHalMemoryWriteThrough(IN PVOID VirtualAddress,
*/ */
XTAPI XTAPI
VOID VOID
MmRemapHalMemory(IN PVOID VirtualAddress, MmRemapHardwareMemory(IN PVOID VirtualAddress,
IN PHYSICAL_ADDRESS PhysicalAddress, IN PHYSICAL_ADDRESS PhysicalAddress,
IN BOOLEAN FlushTlb) IN BOOLEAN FlushTlb)
{ {
PHARDWARE_PTE PtePointer; PHARDWARE_PTE PtePointer;
@@ -332,9 +332,9 @@ MmRemapHalMemory(IN PVOID VirtualAddress,
*/ */
XTAPI XTAPI
XTSTATUS XTSTATUS
MmUnmapHalMemory(IN PVOID VirtualAddress, MmUnmapHardwareMemory(IN PVOID VirtualAddress,
IN PFN_NUMBER PageCount, IN PFN_NUMBER PageCount,
IN BOOLEAN FlushTlb) IN BOOLEAN FlushTlb)
{ {
PHARDWARE_PTE PtePointer; PHARDWARE_PTE PtePointer;
PFN_NUMBER Page; PFN_NUMBER Page;