1/*++ 2 3Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 4This program and the accompanying materials 5are licensed and made available under the terms and conditions of the BSD License 6which accompanies this distribution. The full text of the license may be found at 7http://opensource.org/licenses/bsd-license.php 8 9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12Module Name: 13 14 SectionExtraction.h 15 16Abstract: 17 18 Section extraction protocol as defined in the Tiano File Image Format specification. 19 20 This interface provides a means of decoding a set of sections into a linked list of 21 leaf sections. This provides for an extensible and flexible file format. 22 23--*/ 24 25#ifndef _SECTION_EXTRACTION_PROTOCOL_H 26#define _SECTION_EXTRACTION_PROTOCOL_H 27 28#include "EfiFirmwareFileSystem.h" 29 30// 31// Protocol GUID definition 32// 33#define EFI_SECTION_EXTRACTION_PROTOCOL_GUID \ 34 { \ 35 0x448F5DA4, 0x6DD7, 0x4FE1, {0x93, 0x07, 0x69, 0x22, 0x41, 0x92, 0x21, 0x5D} \ 36 } 37 38EFI_FORWARD_DECLARATION (EFI_SECTION_EXTRACTION_PROTOCOL); 39 40// 41// Protocol member functions 42// 43typedef 44EFI_STATUS 45(EFIAPI *EFI_OPEN_SECTION_STREAM) ( 46 IN EFI_SECTION_EXTRACTION_PROTOCOL * This, 47 IN UINTN SectionStreamLength, 48 IN VOID *SectionStream, 49 OUT UINTN *SectionStreamHandle 50 ); 51 52typedef 53EFI_STATUS 54(EFIAPI *EFI_GET_SECTION) ( 55 IN EFI_SECTION_EXTRACTION_PROTOCOL * This, 56 IN UINTN SectionStreamHandle, 57 IN EFI_SECTION_TYPE * SectionType, 58 IN EFI_GUID * SectionDefinitionGuid, 59 IN UINTN SectionInstance, 60 IN VOID **Buffer, 61 IN OUT UINTN *BufferSize, 62 OUT UINT32 *AuthenticationStatus 63 ); 64 65typedef 66EFI_STATUS 67(EFIAPI *EFI_CLOSE_SECTION_STREAM) ( 68 IN EFI_SECTION_EXTRACTION_PROTOCOL * This, 69 IN UINTN SectionStreamHandle 70 ); 71 72// 73// Protocol definition 74// 75struct _EFI_SECTION_EXTRACTION_PROTOCOL { 76 EFI_OPEN_SECTION_STREAM OpenSectionStream; 77 EFI_GET_SECTION GetSection; 78 EFI_CLOSE_SECTION_STREAM CloseSectionStream; 79}; 80 81extern EFI_GUID gEfiSectionExtractionProtocolGuid; 82 83#endif 84