]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Include/Protocol/LoadPe32Image.h
added PPI and Protocol definitions needed by porting modules
[mirror_edk2.git] / MdeModulePkg / Include / Protocol / LoadPe32Image.h
diff --git a/MdeModulePkg/Include/Protocol/LoadPe32Image.h b/MdeModulePkg/Include/Protocol/LoadPe32Image.h
new file mode 100644 (file)
index 0000000..1ea2989
--- /dev/null
@@ -0,0 +1,68 @@
+/*++\r
+\r
+Copyright (c) 2006, 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
+  LoadPe32Image.h\r
+\r
+Abstract:\r
+  Load File protocol as defined in the EFI 1.0 specification.\r
+\r
+  Load file protocol exists to supports the addition of new boot devices,\r
+  and to support booting from devices that do not map well to file system.\r
+  Network boot is done via a LoadFile protocol.\r
+\r
+  EFI 1.0 can boot from any device that produces a LoadFile protocol.\r
+\r
+--*/\r
+\r
+#ifndef __LOAD_PE32_IMAGE_H__\r
+#define __LOAD_PE32_IMAGE_H__\r
+\r
+#define PE32_IMAGE_PROTOCOL_GUID  \\r
+  {0x5cb5c776,0x60d5,0x45ee,{0x88,0x3c,0x45,0x27,0x8,0xcd,0x74,0x3f }}\r
+\r
+#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_NONE                                 0x00\r
+#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION                 0x01\r
+#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATION  0x02\r
+\r
+typedef struct _EFI_PE32_IMAGE_PROTOCOL   EFI_PE32_IMAGE_PROTOCOL;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *LOAD_PE_IMAGE) (\r
+  IN EFI_PE32_IMAGE_PROTOCOL           *This,\r
+  IN  EFI_HANDLE                       ParentImageHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,\r
+  IN  VOID                             *SourceBuffer       OPTIONAL,\r
+  IN  UINTN                            SourceSize,\r
+  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,\r
+  OUT UINTN                            *NumberOfPages      OPTIONAL,\r
+  OUT EFI_HANDLE                       *ImageHandle,\r
+  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,\r
+  IN  UINT32                           Attribute\r
+  );\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *UNLOAD_PE_IMAGE) (\r
+  IN EFI_PE32_IMAGE_PROTOCOL          *This,\r
+  IN EFI_HANDLE                       ImageHandle\r
+  );\r
+\r
+struct _EFI_PE32_IMAGE_PROTOCOL {\r
+  LOAD_PE_IMAGE     LoadPeImage;\r
+  UNLOAD_PE_IMAGE  UnLoadPeImage;\r
+};\r
+\r
+extern EFI_GUID gEfiLoadPeImageProtocolGuid;\r
+\r
+#endif\r
+\r