]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Protocol/GuidedSectionExtraction/GuidedSectionExtraction.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Protocol / GuidedSectionExtraction / GuidedSectionExtraction.h
diff --git a/EdkCompatibilityPkg/Foundation/Protocol/GuidedSectionExtraction/GuidedSectionExtraction.h b/EdkCompatibilityPkg/Foundation/Protocol/GuidedSectionExtraction/GuidedSectionExtraction.h
new file mode 100644 (file)
index 0000000..9deb5c8
--- /dev/null
@@ -0,0 +1,73 @@
+/*++\r
+\r
+Copyright (c) 2004, 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
+  GuidedSectionExtraction.h\r
+\r
+Abstract:\r
+\r
+  GUIDed section extraction protocol as defined in the Tiano File\r
+  Image Format specification.\r
+\r
+  This interface provides a means of decoding a GUID defined encapsulation \r
+  section. There may be multiple different GUIDs associated with the GUIDed\r
+  section extraction protocol. That is, all instances of the GUIDed section\r
+  extraction protocol must have the same interface structure.\r
+\r
+--*/\r
+\r
+#ifndef _GUIDED_SECTION_EXTRACTION_PROTOCOL_H\r
+#define _GUIDED_SECTION_EXTRACTION_PROTOCOL_H\r
+\r
+#include "EfiFirmwareFileSystem.h"\r
+\r
+//\r
+// Protocol GUID definition. Each GUIDed section extraction protocol has the\r
+// same interface but with different GUID. All the GUIDs is defined here.\r
+// May add multiple GUIDs here.\r
+//\r
+#define EFI_CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_GUID \\r
+  { \\r
+    0xFC1BCDB0, 0x7D31, 0x49aa, 0x93, 0x6A, 0xA4, 0x60, 0x0D, 0x9D, 0xD0, 0x83 \\r
+  }\r
+\r
+//\r
+// Forward reference for pure ANSI compatability\r
+//\r
+EFI_FORWARD_DECLARATION (EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL);\r
+\r
+//\r
+// Protocol member functions\r
+//\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_EXTRACT_GUIDED_SECTION) (\r
+  IN  EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL          * This,\r
+  IN  VOID                                            *InputSection,\r
+  OUT VOID                                            **OutputBuffer,\r
+  OUT UINTN                                           *OutputSize,\r
+  OUT UINT32                                          *AuthenticationStatus\r
+  );\r
+\r
+//\r
+// Protocol definition\r
+//\r
+typedef struct _EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL {\r
+  EFI_EXTRACT_GUIDED_SECTION  ExtractSection;\r
+} EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL;\r
+\r
+//\r
+// may add other GUID here\r
+//\r
+extern EFI_GUID gEfiCrc32GuidedSectionExtractionProtocolGuid;\r
+\r
+#endif\r