diff options
Diffstat (limited to 'EDK/Foundation/Framework/Protocol/SectionExtraction')
-rw-r--r-- | EDK/Foundation/Framework/Protocol/SectionExtraction/SectionExtraction.c | 28 | ||||
-rw-r--r-- | EDK/Foundation/Framework/Protocol/SectionExtraction/SectionExtraction.h | 83 |
2 files changed, 111 insertions, 0 deletions
diff --git a/EDK/Foundation/Framework/Protocol/SectionExtraction/SectionExtraction.c b/EDK/Foundation/Framework/Protocol/SectionExtraction/SectionExtraction.c new file mode 100644 index 0000000..aaad016 --- /dev/null +++ b/EDK/Foundation/Framework/Protocol/SectionExtraction/SectionExtraction.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Section Extraction protocol as defined in the Tiano File Image Format + specification. + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (SectionExtraction) + +EFI_GUID gEfiSectionExtractionProtocolGuid = EFI_SECTION_EXTRACTION_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiSectionExtractionProtocolGuid, "Section Extraction Protocol", "Tiano Section Extraction Protocol"); diff --git a/EDK/Foundation/Framework/Protocol/SectionExtraction/SectionExtraction.h b/EDK/Foundation/Framework/Protocol/SectionExtraction/SectionExtraction.h new file mode 100644 index 0000000..9d46b86 --- /dev/null +++ b/EDK/Foundation/Framework/Protocol/SectionExtraction/SectionExtraction.h @@ -0,0 +1,83 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Section extraction protocol as defined in the Tiano File Image Format specification. + + 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. + +--*/ + +#ifndef _SECTION_EXTRACTION_PROTOCOL_H +#define _SECTION_EXTRACTION_PROTOCOL_H + +#include "EfiFirmwareFileSystem.h" + +// +// Protocol GUID definition +// +#define EFI_SECTION_EXTRACTION_PROTOCOL_GUID \ + { \ + 0x448F5DA4, 0x6DD7, 0x4FE1, 0x93, 0x07, 0x69, 0x22, 0x41, 0x92, 0x21, 0x5D \ + } + +EFI_FORWARD_DECLARATION (EFI_SECTION_EXTRACTION_PROTOCOL); + +// +// Protocol member functions +// +typedef +EFI_STATUS +(EFIAPI *EFI_OPEN_SECTION_STREAM) ( + IN EFI_SECTION_EXTRACTION_PROTOCOL * This, + IN UINTN SectionStreamLength, + IN VOID *SectionStream, + OUT UINTN *SectionStreamHandle + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_GET_SECTION) ( + IN EFI_SECTION_EXTRACTION_PROTOCOL * This, + IN UINTN SectionStreamHandle, + IN EFI_SECTION_TYPE * SectionType, + IN EFI_GUID * SectionDefinitionGuid, + IN UINTN SectionInstance, + IN VOID **Buffer, + IN OUT UINTN *BufferSize, + OUT UINT32 *AuthenticationStatus + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_CLOSE_SECTION_STREAM) ( + IN EFI_SECTION_EXTRACTION_PROTOCOL * This, + IN UINTN SectionStreamHandle + ); + +// +// Protocol definition +// +typedef struct _EFI_SECTION_EXTRACTION_PROTOCOL { + EFI_OPEN_SECTION_STREAM OpenSectionStream; + EFI_GET_SECTION GetSection; + EFI_CLOSE_SECTION_STREAM CloseSectionStream; +} EFI_SECTION_EXTRACTION_PROTOCOL; + +extern EFI_GUID gEfiSectionExtractionProtocolGuid; + +#endif |