/** @file\r
- This file declares Section Extraction protocols.\r
+ This file declares Section Extraction Protocol.\r
\r
This interface provides a means of decoding a set of sections into a linked list of\r
leaf sections. This provides for an extensible and flexible file format.\r
\r
- Copyright (c) 2006 - 2007, Intel Corporation All rights\r
- reserved. This program and the accompanying materials are\r
- licensed and made available under the terms and conditions of\r
- the BSD License which accompanies this distribution. The full\r
- text of the license may be found at\r
+ Copyright (c) 2006 - 2009, Intel Corporation\r
+ All rights reserved. This program and the accompanying\r
+ materials are licensed and made available under the terms and\r
+ conditions of the BSD License which accompanies this\r
+ 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: SectionExtraction.h\r
-\r
@par Revision Reference:\r
This protocol is defined in Firmware Volume Specification.\r
Version 0.9\r
#ifndef _SECTION_EXTRACTION_PROTOCOL_H_\r
#define _SECTION_EXTRACTION_PROTOCOL_H_\r
\r
-#include <PiDxe.h>\r
-\r
//\r
// Protocol GUID definition\r
//\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_OPEN_SECTION_STREAM) (\r
+(EFIAPI *EFI_OPEN_SECTION_STREAM)(\r
IN EFI_SECTION_EXTRACTION_PROTOCOL *This,\r
IN UINTN SectionStreamLength,\r
IN VOID *SectionStream,\r
\r
@param This Indicates the EFI_SECTION_EXTRACTION_PROTOCOL instance.\r
@param SectionStreamHandle Indicates from which section stream to read.\r
- @param SectionType Pointer to an EFI_SECTION_TYPE.\r
- @param SectionDefinitionGuid Pointer to an EFI_GUID.If SectionType ==\r
+ @param SectionType Pointer to an EFI_SECTION_TYPE. If SectionType == NULL, the contents of the \r
+ entire section stream are returned in Buffer. If SectionType is not NULL, \r
+ only the requested section is returned. EFI_SECTION_ALL matches all section \r
+ types and can be used as a wild card to extract all sections in order.\r
+ @param SectionDefinitionGuid Pointer to an EFI_GUID. If SectionType ==\r
EFI_SECTION_GUID_DEFINED, SectionDefinitionGuid indicates what section GUID\r
- to search for.If SectionType !=EFI_SECTION_GUID_DEFINED, then\r
+ to search for. If SectionType !=EFI_SECTION_GUID_DEFINED, then\r
SectionDefinitionGuid is unused and is ignored.\r
@param SectionInstance Indicates which instance of the requested section\r
type to return when SectionType is not NULL.\r
@retval EFI_OUT_OF_RESOURCES The system has insufficient resources to process\r
the request.\r
@retval EFI_INVALID_PARAMETER The SectionStreamHandle does not exist.\r
- @retval EFI_BUFFER_TOO_SMALL The size of the input buffer is insufficient to\r
- contain the requested section.\r
+ @retval EFI_WARN_BUFFER_TOO_SMALL The size of the input buffer is insufficient to contain the requested\r
+ section. The input buffer is filled and section contents are truncated.\r
\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_GET_SECTION) (\r
+(EFIAPI *EFI_GET_SECTION)(\r
IN EFI_SECTION_EXTRACTION_PROTOCOL *This,\r
IN UINTN SectionStreamHandle,\r
IN EFI_SECTION_TYPE *SectionType,\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_CLOSE_SECTION_STREAM) (\r
+(EFIAPI *EFI_CLOSE_SECTION_STREAM)(\r
IN EFI_SECTION_EXTRACTION_PROTOCOL *This,\r
IN UINTN SectionStreamHandle\r
);\r
//\r
// Protocol definition\r
//\r
-/**\r
- @par Protocol Description:\r
- The Section Extraction Protocol provides a simple method of extracting\r
- sections from arbitrarily complex files.\r
-\r
- @param OpenSectionStream\r
- Takes a bounded stream of sections and returns a section stream handle.\r
-\r
- @param GetSection\r
- Given a section stream handle, retrieves the requested section and\r
- meta-data from the section stream.\r
-\r
- @param CloseSectionStream\r
- Given a section stream handle, closes the section stream.\r
-\r
-**/\r
struct _EFI_SECTION_EXTRACTION_PROTOCOL {\r
+ ///\r
+ /// Takes a bounded stream of sections and returns a section stream handle.\r
+ ///\r
EFI_OPEN_SECTION_STREAM OpenSectionStream;\r
+\r
+ ///\r
+ /// Given a section stream handle, retrieves the requested section and\r
+ /// meta-data from the section stream.\r
+ ///\r
EFI_GET_SECTION GetSection;\r
+\r
+ ///\r
+ /// Given a section stream handle, closes the section stream.\r
+ ///\r
EFI_CLOSE_SECTION_STREAM CloseSectionStream;\r
};\r
\r