X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=IntelFrameworkPkg%2FInclude%2FProtocol%2FSectionExtraction.h;h=5de111ce6316f8dc38b9a721d975fe5d9082234e;hb=54f8d22a2366c5f7764382b4f526f41cbb51ced8;hp=02105034708ebd25f45bc875a5d8a711444b8c0c;hpb=c741cc2b8e60a1e8e80bc80802bb58030b2dc2d1;p=mirror_edk2.git diff --git a/IntelFrameworkPkg/Include/Protocol/SectionExtraction.h b/IntelFrameworkPkg/Include/Protocol/SectionExtraction.h index 0210503470..5de111ce63 100644 --- a/IntelFrameworkPkg/Include/Protocol/SectionExtraction.h +++ b/IntelFrameworkPkg/Include/Protocol/SectionExtraction.h @@ -1,32 +1,27 @@ /** @file - This file declares Section Extraction protocols. + This file declares Section Extraction Protocol. This interface provides a means of decoding a set of sections into a linked list of leaf sections. This provides for an extensible and flexible file format. - Copyright (c) 2006 - 2007, Intel Corporation - All rights reserved. This program and the accompanying - materials are licensed and made available under the terms and - conditions of the BSD License which accompanies this - distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - - Module Name: SectionExtraction.h +Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved
+This program and the accompanying materials are licensed and made available under +the terms and conditions of the BSD License that accompanies this distribution. +The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php. + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. @par Revision Reference: This protocol is defined in Firmware Volume Specification. - Version 0.9 + Version 0.9. **/ #ifndef _SECTION_EXTRACTION_PROTOCOL_H_ #define _SECTION_EXTRACTION_PROTOCOL_H_ -#include - // // Protocol GUID definition // @@ -44,12 +39,12 @@ typedef struct _EFI_SECTION_EXTRACTION_PROTOCOL EFI_SECTION_EXTRACTION_PROTOCOL; Creates and returns a new section stream handle to represent the new section stream. @param This Indicates the EFI_SECTION_EXTRACTION_PROTOCOL instance. - @param SectionStreamLength Size in bytes of the section stream. - @param SectionStream Buffer containing the new section stream. + @param SectionStreamLength The size in bytes of the section stream. + @param SectionStream A buffer containing the new section stream. @param SectionStreamHandle A pointer to a caller-allocated UINTN that, on output, contains the new section stream handle. - @retval EFI_SUCCESS The SectionStream was successfully processed and + @retval EFI_SUCCESS The SectionStream was successfully processed, and the section stream handle was returned. @retval EFI_OUT_OF_RESOURCES The system has insufficient resources to process the request. @@ -59,7 +54,7 @@ typedef struct _EFI_SECTION_EXTRACTION_PROTOCOL EFI_SECTION_EXTRACTION_PROTOCOL; **/ typedef EFI_STATUS -(EFIAPI *EFI_OPEN_SECTION_STREAM) ( +(EFIAPI *EFI_OPEN_SECTION_STREAM)( IN EFI_SECTION_EXTRACTION_PROTOCOL *This, IN UINTN SectionStreamLength, IN VOID *SectionStream, @@ -71,10 +66,16 @@ EFI_STATUS @param This Indicates the EFI_SECTION_EXTRACTION_PROTOCOL instance. @param SectionStreamHandle Indicates from which section stream to read. - @param SectionType Pointer to an EFI_SECTION_TYPE. - @param SectionDefinitionGuid Pointer to an EFI_GUID.If SectionType == - EFI_SECTION_GUID_DEFINED, SectionDefinitionGuid indicates what section GUID - to search for.If SectionType !=EFI_SECTION_GUID_DEFINED, then + @param SectionType The pointer to an EFI_SECTION_TYPE. If SectionType == NULL, + the contents of the entire section stream are returned + in Buffer. If SectionType is not NULL, only the + requested section is returned. EFI_SECTION_ALL + matches all section types and can be used as a + wild card to extract all sections in order. + @param SectionDefinitionGuid The pointer to an EFI_GUID. If SectionType == + EFI_SECTION_GUID_DEFINED, SectionDefinitionGuid + indicates what section GUID to search for. If + SectionType !=EFI_SECTION_GUID_DEFINED, then SectionDefinitionGuid is unused and is ignored. @param SectionInstance Indicates which instance of the requested section type to return when SectionType is not NULL. @@ -82,29 +83,31 @@ EFI_STATUS contains the new section stream handle. @param Buffer Pointer to a pointer to a buffer in which the section contents are returned. - @param BufferSize Pointer to a caller-allocated UINTN. - @param AuthenticationStatus Pointer to a caller-allocated UINT32 in - which any meta-data from encapsulation GUID-defined sections is returned. + @param BufferSize A pointer to a caller-allocated UINTN. + @param AuthenticationStatus A pointer to a caller-allocated UINT32 in + which any meta-data from encapsulation GUID-defined + sections is returned. @retval EFI_SUCCESS The SectionStream was successfully processed and the section contents were returned in Buffer. - @retval EFI_PROTOCOL_ERROR A GUID-defined section was encountered in - the section stream with its EFI_GUIDED_SECTION_PROCESSING_REQUIRED bit set, - but there was no corresponding GUIDed Section Extraction Protocol in - the handle database. + @retval EFI_PROTOCOL_ERROR A GUID-defined section was encountered inthe section + stream with its EFI_GUIDED_SECTION_PROCESSING_REQUIRED + bit set, but there was no corresponding GUIDed + Section Extraction Protocol in the handle database. @retval EFI_NOT_FOUND An error was encountered when parsing the SectionStream, - which indicates that the SectionStream is not correctly formatted. - Or The requested section does not exist. + which indicates that the SectionStream is not + correctly formatted. Or, the requested section does not exist. @retval EFI_OUT_OF_RESOURCES The system has insufficient resources to process the request. @retval EFI_INVALID_PARAMETER The SectionStreamHandle does not exist. - @retval EFI_BUFFER_TOO_SMALL The size of the input buffer is insufficient to - contain the requested section. + @retval EFI_WARN_BUFFER_TOO_SMALL The size of the input buffer is insufficient + to contain the requested section. The input + buffer is filled and section contents are truncated. **/ typedef EFI_STATUS -(EFIAPI *EFI_GET_SECTION) ( +(EFIAPI *EFI_GET_SECTION)( IN EFI_SECTION_EXTRACTION_PROTOCOL *This, IN UINTN SectionStreamHandle, IN EFI_SECTION_TYPE *SectionType, @@ -127,7 +130,7 @@ EFI_STATUS **/ typedef EFI_STATUS -(EFIAPI *EFI_CLOSE_SECTION_STREAM) ( +(EFIAPI *EFI_CLOSE_SECTION_STREAM)( IN EFI_SECTION_EXTRACTION_PROTOCOL *This, IN UINTN SectionStreamHandle ); @@ -135,25 +138,21 @@ EFI_STATUS // // Protocol definition // -/** - @par Protocol Description: - The Section Extraction Protocol provides a simple method of extracting - sections from arbitrarily complex files. - - @param OpenSectionStream - Takes a bounded stream of sections and returns a section stream handle. - - @param GetSection - Given a section stream handle, retrieves the requested section and - meta-data from the section stream. - - @param CloseSectionStream - Given a section stream handle, closes the section stream. - -**/ struct _EFI_SECTION_EXTRACTION_PROTOCOL { + /// + /// Takes a bounded stream of sections and returns a section stream handle. + /// EFI_OPEN_SECTION_STREAM OpenSectionStream; + + /// + /// Given a section stream handle, retrieves the requested section and + /// meta-data from the section stream. + /// EFI_GET_SECTION GetSection; + + /// + /// Given a section stream handle, closes the section stream. + /// EFI_CLOSE_SECTION_STREAM CloseSectionStream; };