HlPool manages hardware related memory
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 1m39s
Builds / ExectOS (i686) (push) Successful in 1m36s

This commit is contained in:
Rafal Kupiec 2024-06-02 17:01:45 +02:00
parent 6b1ccc4ce5
commit abb65b99fe
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
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;