]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Protocol/GuidedSectionExtraction.h
add some framework definitions
[mirror_edk2.git] / IntelFrameworkPkg / Include / Protocol / GuidedSectionExtraction.h
diff --git a/IntelFrameworkPkg/Include/Protocol/GuidedSectionExtraction.h b/IntelFrameworkPkg/Include/Protocol/GuidedSectionExtraction.h
new file mode 100644 (file)
index 0000000..8368e28
--- /dev/null
@@ -0,0 +1,102 @@
+/** @file\r
+  This file declares GUIDed section extraction protocol.\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
+  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:  GuidedSectionExtraction.h\r
+\r
+  @par Revision Reference:\r
+  This protocol is defined in Firmware Volume Specification.\r
+  Version 0.9\r
+\r
+**/\r
+\r
+#ifndef __GUIDED_SECTION_EXTRACTION_PROTOCOL_H__\r
+#define __GUIDED_SECTION_EXTRACTION_PROTOCOL_H__\r
+\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
+typedef struct _EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL  EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL;\r
+\r
+//\r
+// Protocol member functions\r
+//\r
+/**\r
+  Processes the input section and returns the data contained therein along \r
+  with the authentication status.\r
+\r
+  @param  This                  Indicates the EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL instance.\r
+  @param  InputSection          Buffer containing the input GUIDed section to be processed.\r
+  @param  OutputBuffer          *OutputBuffer is allocated from boot services pool memory\r
+                                and contains the new section stream.\r
+  @param  OutputSize            A pointer to a caller-allocated UINTN in which the size\r
+                                of *OutputBuffer allocation is stored.\r
+  @param  AuthenticationStatus  A pointer to a caller-allocated UINT32 that\r
+                                indicates the authentication status of the output buffer.\r
+                                \r
+  @retval EFI_SUCCESS           The InputSection was successfully processed and the\r
+                                section contents were returned.\r
+  @retval EFI_OUT_OF_RESOURCES  The system has insufficient resources to\r
+                                process the request.\r
+  @retval EFI_INVALID_PARAMETER The GUID in InputSection does not match\r
+                                this instance of the GUIDed Section Extraction Protocol.\r
+\r
+**/\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
+/**\r
+  @par Protocol Description:\r
+  If a GUID-defined section is encountered when doing section extraction, \r
+  the section extraction driver calls the appropriate instance of the GUIDed \r
+  Section Extraction Protocol to extract the section stream contained therein.\r
+\r
+  @param ExtractSection\r
+  Takes the GUIDed section as input and produces the section stream data. \r
+\r
+**/\r
+struct _EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL {\r
+  EFI_EXTRACT_GUIDED_SECTION  ExtractSection;\r
+};\r
+\r
+//\r
+// may add other GUID here\r
+//\r
+extern EFI_GUID gEfiCrc32GuidedSectionExtractionProtocolGuid;\r
+\r
+#endif\r