forked from xt-sys/exectos
Use PVOID instead of HARDWARE_PTE to allow different variable types for different architectures
This commit is contained in:
parent
93fa2aed67
commit
43c16d054d
@ -36,7 +36,7 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
|
|||||||
IN UINT_PTR VirtualAddress,
|
IN UINT_PTR VirtualAddress,
|
||||||
IN UINT_PTR PhysicalAddress,
|
IN UINT_PTR PhysicalAddress,
|
||||||
IN UINT NumberOfPages,
|
IN UINT NumberOfPages,
|
||||||
IN OUT PHARDWARE_PTE *PtePointer)
|
IN OUT PVOID *PtePointer)
|
||||||
{
|
{
|
||||||
PHARDWARE_PTE PageDirectoryPointTable, PageDirectory, PageTable;
|
PHARDWARE_PTE PageDirectoryPointTable, PageDirectory, PageTable;
|
||||||
UINT Pml4Index, PdpIndex, PdIndex, PtIndex;
|
UINT Pml4Index, PdpIndex, PdIndex, PtIndex;
|
||||||
@ -58,7 +58,7 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
|
|||||||
PtIndex = (VirtualAddress >> 12) & 0x1FF;
|
PtIndex = (VirtualAddress >> 12) & 0x1FF;
|
||||||
|
|
||||||
/* Validate Page Map Level 4 (PML4) */
|
/* Validate Page Map Level 4 (PML4) */
|
||||||
if(!(*PtePointer)[Pml4Index].Valid)
|
if(!((PHARDWARE_PTE)(*PtePointer))[Pml4Index].Valid)
|
||||||
{
|
{
|
||||||
/* Allocate pages for the PDPT */
|
/* Allocate pages for the PDPT */
|
||||||
Status = BlEfiMemoryAllocatePages(1, &Address);
|
Status = BlEfiMemoryAllocatePages(1, &Address);
|
||||||
@ -78,15 +78,15 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
|
|||||||
RtlZeroMemory((PVOID)(UINT_PTR)Address, EFI_PAGE_SIZE);
|
RtlZeroMemory((PVOID)(UINT_PTR)Address, EFI_PAGE_SIZE);
|
||||||
|
|
||||||
/* Set paging entry setting */
|
/* Set paging entry setting */
|
||||||
(*PtePointer)[Pml4Index].PageFrameNumber = Address / EFI_PAGE_SIZE;
|
((PHARDWARE_PTE)(*PtePointer))[Pml4Index].PageFrameNumber = Address / EFI_PAGE_SIZE;
|
||||||
(*PtePointer)[Pml4Index].Valid = 1;
|
((PHARDWARE_PTE)(*PtePointer))[Pml4Index].Valid = 1;
|
||||||
(*PtePointer)[Pml4Index].Write = 1;
|
((PHARDWARE_PTE)(*PtePointer))[Pml4Index].Write = 1;
|
||||||
PageDirectoryPointTable = (PHARDWARE_PTE)(UINT_PTR)Address;
|
PageDirectoryPointTable = (PHARDWARE_PTE)(UINT_PTR)Address;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Find Page Directory Point Table (PDPT) */
|
/* Find Page Directory Point Table (PDPT) */
|
||||||
Pointer = (*PtePointer)[Pml4Index].PageFrameNumber;
|
Pointer = ((PHARDWARE_PTE)(*PtePointer))[Pml4Index].PageFrameNumber;
|
||||||
Pointer <<= EFI_PAGE_SHIFT;
|
Pointer <<= EFI_PAGE_SHIFT;
|
||||||
PageDirectoryPointTable = (PHARDWARE_PTE)(UINT_PTR)Pointer;
|
PageDirectoryPointTable = (PHARDWARE_PTE)(UINT_PTR)Pointer;
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
|
|||||||
IN UINT_PTR VirtualAddress,
|
IN UINT_PTR VirtualAddress,
|
||||||
IN UINT_PTR PhysicalAddress,
|
IN UINT_PTR PhysicalAddress,
|
||||||
IN UINT NumberOfPages,
|
IN UINT NumberOfPages,
|
||||||
IN OUT PHARDWARE_PTE *PtePointer)
|
IN OUT PVOID *PtePointer)
|
||||||
{
|
{
|
||||||
return STATUS_EFI_SUCCESS;
|
return STATUS_EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ BlMapVirtualMemory(IN PLIST_ENTRY MemoryMappings,
|
|||||||
IN UINT_PTR VirtualAddress,
|
IN UINT_PTR VirtualAddress,
|
||||||
IN UINT_PTR PhysicalAddress,
|
IN UINT_PTR PhysicalAddress,
|
||||||
IN UINT NumberOfPages,
|
IN UINT NumberOfPages,
|
||||||
IN OUT PHARDWARE_PTE *PtePointer);
|
IN OUT PVOID *PtePointer);
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
BlOpenVolume(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath,
|
BlOpenVolume(IN PEFI_DEVICE_PATH_PROTOCOL DevicePath,
|
||||||
|
Loading…
Reference in New Issue
Block a user