Update DxeCore to set efi memory type for the different image to be loaded.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3977 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4
2007-09-29 03:16:49 +00:00
parent c62a593c90
commit a0ae8996bc
2 changed files with 37 additions and 16 deletions

View File

@@ -225,7 +225,28 @@ Returns:
//
return EFI_UNSUPPORTED;
}
//
// Set EFI memory type based on ImageType
//
switch (Image->ImageContext.ImageType) {
case EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION:
Image->ImageContext.ImageCodeMemoryType = EfiLoaderCode;
Image->ImageContext.ImageDataMemoryType = EfiLoaderData;
break;
case EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER:
Image->ImageContext.ImageCodeMemoryType = EfiBootServicesCode;
Image->ImageContext.ImageDataMemoryType = EfiBootServicesData;
break;
case EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER:
case EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER:
Image->ImageContext.ImageCodeMemoryType = EfiRuntimeServicesCode;
Image->ImageContext.ImageDataMemoryType = EfiRuntimeServicesData;
break;
default:
Image->ImageContext.ImageError = IMAGE_ERROR_INVALID_SUBSYSTEM;
return EFI_UNSUPPORTED;
}
//
// Allocate memory of the correct memory type aligned on the required image boundry