Use PVOID instead of HARDWARE_PTE to allow different variable types for different architectures
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Rafal Kupiec 2022-12-07 18:54:21 +01:00
parent 93fa2aed67
commit 43c16d054d
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
3 changed files with 8 additions and 8 deletions

View File

@ -36,7 +36,7 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
IN UINT_PTR VirtualAddress,
IN UINT_PTR PhysicalAddress,
IN UINT NumberOfPages,
IN OUT PHARDWARE_PTE *PtePointer)
IN OUT PVOID *PtePointer)
{
PHARDWARE_PTE PageDirectoryPointTable, PageDirectory, PageTable;
UINT Pml4Index, PdpIndex, PdIndex, PtIndex;
@ -58,7 +58,7 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
PtIndex = (VirtualAddress >> 12) & 0x1FF;
/* Validate Page Map Level 4 (PML4) */
if(!(*PtePointer)[Pml4Index].Valid)
if(!((PHARDWARE_PTE)(*PtePointer))[Pml4Index].Valid)
{
/* Allocate pages for the PDPT */
Status = BlEfiMemoryAllocatePages(1, &Address);
@ -78,15 +78,15 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
RtlZeroMemory((PVOID)(UINT_PTR)Address, EFI_PAGE_SIZE);
/* Set paging entry setting */
(*PtePointer)[Pml4Index].PageFrameNumber = Address / EFI_PAGE_SIZE;
(*PtePointer)[Pml4Index].Valid = 1;
(*PtePointer)[Pml4Index].Write = 1;
((PHARDWARE_PTE)(*PtePointer))[Pml4Index].PageFrameNumber = Address / EFI_PAGE_SIZE;
((PHARDWARE_PTE)(*PtePointer))[Pml4Index].Valid = 1;
((PHARDWARE_PTE)(*PtePointer))[Pml4Index].Write = 1;
PageDirectoryPointTable = (PHARDWARE_PTE)(UINT_PTR)Address;
}
else
{
/* Find Page Directory Point Table (PDPT) */
Pointer = (*PtePointer)[Pml4Index].PageFrameNumber;
Pointer = ((PHARDWARE_PTE)(*PtePointer))[Pml4Index].PageFrameNumber;
Pointer <<= EFI_PAGE_SHIFT;
PageDirectoryPointTable = (PHARDWARE_PTE)(UINT_PTR)Pointer;
}

View File

@ -36,7 +36,7 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
IN UINT_PTR VirtualAddress,
IN UINT_PTR PhysicalAddress,
IN UINT NumberOfPages,
IN OUT PHARDWARE_PTE *PtePointer)
IN OUT PVOID *PtePointer)
{
return STATUS_EFI_SUCCESS;
}

View File

@ -116,7 +116,7 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
IN UINT_PTR VirtualAddress,
IN UINT_PTR PhysicalAddress,
IN UINT NumberOfPages,
IN OUT PHARDWARE_PTE *PtePointer);
IN OUT PVOID *PtePointer);
EFI_STATUS
BlOpenVolume(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath,