Home | History | Annotate | Download | only in LoadPe32Image
      1 /*++
      2 
      3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
      4 This program and the accompanying materials
      5 are licensed and made available under the terms and conditions of the BSD License
      6 which accompanies this distribution.  The full text of the license may be found at
      7 http://opensource.org/licenses/bsd-license.php
      8 
      9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 
     12 Module Name:
     13 
     14     LoadPe32Image.h
     15 
     16 Abstract:
     17 
     18     Load PE32 Image Protocol
     19 
     20 --*/
     21 
     22 #ifndef _LOAD_PE32_IMAGE_H_
     23 #define _LOAD_PE32_IMAGE_H_
     24 
     25 #define PE32_IMAGE_PROTOCOL_GUID  \
     26   {0x5cb5c776,0x60d5,0x45ee,{0x88,0x3c,0x45,0x27,0x8,0xcd,0x74,0x3f} }
     27 
     28 #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_NONE                                 0x00
     29 #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION                 0x01
     30 #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATION  0x02
     31 
     32 EFI_FORWARD_DECLARATION (EFI_PE32_IMAGE_PROTOCOL);
     33 
     34 typedef
     35 EFI_STATUS
     36 (EFIAPI *LOAD_PE_IMAGE) (
     37   IN EFI_PE32_IMAGE_PROTOCOL  *This,
     38   IN  EFI_HANDLE                       ParentImageHandle,
     39   IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
     40   IN  VOID                             *SourceBuffer       OPTIONAL,
     41   IN  UINTN                            SourceSize,
     42   IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
     43   OUT UINTN                            *NumberOfPages      OPTIONAL,
     44   OUT EFI_HANDLE                       *ImageHandle,
     45   OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
     46   IN  UINT32                           Attribute
     47   );
     48 
     49 typedef
     50 EFI_STATUS
     51 (EFIAPI *UNLOAD_PE_IMAGE) (
     52   IN EFI_PE32_IMAGE_PROTOCOL  *This,
     53   IN EFI_HANDLE                       ImageHandle
     54   );
     55 
     56 struct _EFI_PE32_IMAGE_PROTOCOL {
     57   LOAD_PE_IMAGE     LoadPeImage;
     58   UNLOAD_PE_IMAGE  UnLoadPeImage;
     59 };
     60 
     61 extern EFI_GUID gEfiLoadPeImageGuid;
     62 
     63 #endif
     64 
     65