diff --git a/xtldr/arch/amd64/memory.c b/xtldr/arch/amd64/memory.c index 8db75f5..c94e735 100644 --- a/xtldr/arch/amd64/memory.c +++ b/xtldr/arch/amd64/memory.c @@ -35,7 +35,7 @@ BlBuildPageMap(IN PXTBL_PAGE_MAPPING PageMap, EFI_STATUS Status; /* Allocate pages for the Page Map */ - Status = BlAllocateMemoryPages(1, &Address); + Status = BlAllocateMemoryPages(AllocateAnyPages, 1, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Memory allocation failure */ @@ -288,7 +288,7 @@ BlpGetNextPageTable(IN PXTBL_PAGE_MAPPING PageMap, else { /* Allocate pages for new PML entry */ - Status = BlAllocateMemoryPages(1, &Address); + Status = BlAllocateMemoryPages(AllocateAnyPages, 1, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Memory allocation failure */ diff --git a/xtldr/includes/xtldr.h b/xtldr/includes/xtldr.h index 1564402..791b09a 100644 --- a/xtldr/includes/xtldr.h +++ b/xtldr/includes/xtldr.h @@ -18,7 +18,8 @@ /* XTLDR routines forward references */ XTCDECL EFI_STATUS -BlAllocateMemoryPages(IN ULONGLONG NumberOfPages, +BlAllocateMemoryPages(IN EFI_ALLOCATE_TYPE AllocationType, + IN ULONGLONG NumberOfPages, OUT PEFI_PHYSICAL_ADDRESS Memory); XTCDECL diff --git a/xtldr/memory.c b/xtldr/memory.c index c135d03..1d6f25b 100644 --- a/xtldr/memory.c +++ b/xtldr/memory.c @@ -24,10 +24,11 @@ */ XTCDECL EFI_STATUS -BlAllocateMemoryPages(IN ULONGLONG NumberOfPages, +BlAllocateMemoryPages(IN EFI_ALLOCATE_TYPE AllocationType, + IN ULONGLONG NumberOfPages, OUT PEFI_PHYSICAL_ADDRESS Memory) { - return EfiSystemTable->BootServices->AllocatePages(AllocateAnyPages, EfiLoaderData, NumberOfPages, Memory); + return EfiSystemTable->BootServices->AllocatePages(AllocationType, EfiLoaderData, NumberOfPages, Memory); } /** diff --git a/xtldr/modules/pecoff/pecoff.c b/xtldr/modules/pecoff/pecoff.c index 5288c37..aac0208 100644 --- a/xtldr/modules/pecoff/pecoff.c +++ b/xtldr/modules/pecoff/pecoff.c @@ -409,7 +409,7 @@ PeLoadImage(IN PEFI_FILE_HANDLE FileHandle, Pages = EFI_SIZE_TO_PAGES(ImageData->FileSize); /* Allocate pages */ - Status = XtLdrProtocol->Memory.AllocatePages(Pages, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, Pages, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Pages allocation failure */ @@ -472,7 +472,7 @@ PeLoadImage(IN PEFI_FILE_HANDLE FileHandle, ImageData->ImagePages = EFI_SIZE_TO_PAGES(ImageData->ImageSize); /* Allocate image pages */ - Status = XtLdrProtocol->Memory.AllocatePages(ImageData->ImagePages, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, ImageData->ImagePages, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Pages reallocation failure */ diff --git a/xtldr/modules/xtos_o/amd64/memory.c b/xtldr/modules/xtos_o/amd64/memory.c index ca24832..bfc7b5e 100644 --- a/xtldr/modules/xtos_o/amd64/memory.c +++ b/xtldr/modules/xtos_o/amd64/memory.c @@ -84,7 +84,7 @@ XtpMapHardwareMemoryPool(IN PXTBL_PAGE_MAPPING PageMap) if(!P5eBase[(MM_HARDWARE_VA_START >> MM_P5I_SHIFT) & 0x1FF].Valid) { /* No valid P5E, allocate memory */ - Status = XtLdrProtocol->Memory.AllocatePages(1, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, 1, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Memory allocation failure, return error */ @@ -118,7 +118,7 @@ XtpMapHardwareMemoryPool(IN PXTBL_PAGE_MAPPING PageMap) if(!PxeBase[(MM_HARDWARE_VA_START >> MM_PXI_SHIFT) & 0x1FF].Valid) { /* No valid PXE, allocate memory */ - Status = XtLdrProtocol->Memory.AllocatePages(1, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, 1, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Memory allocation failure, return error */ @@ -146,7 +146,7 @@ XtpMapHardwareMemoryPool(IN PXTBL_PAGE_MAPPING PageMap) if(!PpeBase[(MM_HARDWARE_VA_START >> MM_PPI_SHIFT) & 0x1FF].Valid) { /* No valid PPE, allocate memory */ - Status = XtLdrProtocol->Memory.AllocatePages(1, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, 1, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Memory allocation failure, return error */ @@ -177,7 +177,7 @@ XtpMapHardwareMemoryPool(IN PXTBL_PAGE_MAPPING PageMap) if(!PdeBase[((MM_HARDWARE_VA_START >> MM_PDI_SHIFT) & 0x1FF) + Index].Valid) { /* No valid PDE, allocate memory */ - Status = XtLdrProtocol->Memory.AllocatePages(1, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, 1, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Memory allocation failure, return error */ diff --git a/xtldr/modules/xtos_o/i686/memory.c b/xtldr/modules/xtos_o/i686/memory.c index be8b809..959ac8c 100644 --- a/xtldr/modules/xtos_o/i686/memory.c +++ b/xtldr/modules/xtos_o/i686/memory.c @@ -64,7 +64,7 @@ XtpMapHardwareMemoryPool(IN PXTBL_PAGE_MAPPING PageMap) EFI_STATUS Status; /* Allocate memory */ - Status = XtLdrProtocol->Memory.AllocatePages(1, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, 1, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Memory allocation failure, return error */ diff --git a/xtldr/modules/xtos_o/xtos.c b/xtldr/modules/xtos_o/xtos.c index f8844c1..f9af717 100644 --- a/xtldr/modules/xtos_o/xtos.c +++ b/xtldr/modules/xtos_o/xtos.c @@ -75,7 +75,7 @@ XtGetMemoryDescriptorList(IN PXTBL_PAGE_MAPPING PageMap, Pages = (ULONGLONG)EFI_SIZE_TO_PAGES((PageMap->MapSize + 1) * sizeof(LOADER_MEMORY_DESCRIPTOR)); - Status = XtLdrProtocol->Memory.AllocatePages(Pages, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, Pages, &Address); if(Status != STATUS_EFI_SUCCESS) { return Status; @@ -136,7 +136,7 @@ XtGetSystemResourcesList(IN PXTBL_PAGE_MAPPING PageMap, Pages = (ULONGLONG)EFI_SIZE_TO_PAGES(sizeof(SYSTEM_RESOURCE_ACPI) + sizeof(SYSTEM_RESOURCE_FRAMEBUFFER)); - Status = XtLdrProtocol->Memory.AllocatePages(Pages, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, Pages, &Address); if(Status != STATUS_EFI_SUCCESS) { return Status; @@ -552,7 +552,7 @@ XtpInitializeLoaderBlock(IN PXTBL_PAGE_MAPPING PageMap, BlockPages = EFI_SIZE_TO_PAGES(sizeof(KERNEL_INITIALIZATION_BLOCK)); /* Allocate memory for kernel initialization block */ - Status = XtLdrProtocol->Memory.AllocatePages(BlockPages, &Address); + Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, BlockPages, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Memory allocation failure */ diff --git a/xtldr/volume.c b/xtldr/volume.c index 73f3499..abc3793 100644 --- a/xtldr/volume.c +++ b/xtldr/volume.c @@ -616,7 +616,7 @@ BlReadFile(IN PEFI_FILE_HANDLE DirHandle, Pages = EFI_SIZE_TO_PAGES(FileInfo->FileSize); /* Allocate pages */ - Status = BlAllocateMemoryPages(Pages, &Address); + Status = BlAllocateMemoryPages(AllocateAnyPages, Pages, &Address); if(Status != STATUS_EFI_SUCCESS) { /* Pages allocation failure */