+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2006 - 2007, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- EdkPeCoffLoader.c\r
-\r
-Abstract:\r
-\r
- Wrap the Base PE/COFF loader with the PE COFF Protocol\r
-\r
-\r
---*/\r
-\r
-#include "EdkPeCoffLoaderLibInternals.h"\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-TianoPeCoffLoaderLibGetImageInfo (\r
- IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
- )\r
-{\r
- EFI_STATUS Status;\r
-\r
- Status = PeCoffLoaderGetImageInfo (ImageContext);\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
-\r
- switch (ImageContext->ImageType) {\r
-\r
- case EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION:\r
- ImageContext->ImageCodeMemoryType = EfiLoaderCode;\r
- ImageContext->ImageDataMemoryType = EfiLoaderData;\r
- break;\r
-\r
- case EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER:\r
- ImageContext->ImageCodeMemoryType = EfiBootServicesCode;\r
- ImageContext->ImageDataMemoryType = EfiBootServicesData;\r
- break;\r
-\r
- case EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER:\r
- case EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER:\r
- ImageContext->ImageCodeMemoryType = EfiRuntimeServicesCode;\r
- ImageContext->ImageDataMemoryType = EfiRuntimeServicesData;\r
- break;\r
-\r
- default:\r
- ImageContext->ImageError = IMAGE_ERROR_INVALID_SUBSYSTEM;\r
- return RETURN_UNSUPPORTED;\r
- }\r
-\r
- return Status;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-TianoPeCoffLoaderLibLoadImage (\r
- IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
- )\r
-{\r
- return PeCoffLoaderLoadImage (ImageContext);\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-TianoPeCoffLoaderLibRelocateImage (\r
- IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
- IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
- )\r
-{\r
- return PeCoffLoaderRelocateImage (ImageContext);\r
-}\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-TianoPeCoffLoaderLibUnloadimage (\r
- IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
- IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
- )\r
-{\r
- return EFI_SUCCESS;\r
-}\r
-\r
-\r
-EFI_PEI_PE_COFF_LOADER_PROTOCOL mPeiEfiPeiPeCoffLoader = {\r
- TianoPeCoffLoaderLibGetImageInfo,\r
- TianoPeCoffLoaderLibLoadImage,\r
- TianoPeCoffLoaderLibRelocateImage,\r
- TianoPeCoffLoaderLibUnloadimage\r
-};\r
-\r
-EFI_PEI_PE_COFF_LOADER_PROTOCOL *\r
-EFIAPI\r
-GetPeCoffLoaderProtocol (\r
- )\r
-{\r
- return &mPeiEfiPeiPeCoffLoader;\r
-}\r
-\r
-\r