/** @file | |
Provides decompression services to the PEI Foundatoin. | |
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> | |
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. | |
@par Revision Reference: | |
This PPI is introduced in PI Version 1.0. | |
**/ | |
#ifndef __DECOMPRESS_PPI_H__ | |
#define __DECOMPRESS_PPI_H__ | |
#define EFI_PEI_DECOMPRESS_PPI_GUID \ | |
{ 0x1a36e4e7, 0xfab6, 0x476a, { 0x8e, 0x75, 0x69, 0x5a, 0x5, 0x76, 0xfd, 0xd7 } } | |
typedef struct _EFI_PEI_DECOMPRESS_PPI EFI_PEI_DECOMPRESS_PPI; | |
/** | |
Decompress a single compression section in a firmware file. | |
Decompresses the data in a compressed section and returns it | |
as a series of standard PI Firmware File Sections. The | |
required memory is allocated from permanent memory. | |
@param This Points to this instance of the | |
EFI_PEI_DECOMPRESS_PEI PPI. | |
@param InputSection Points to the compressed section. | |
@param OutputBuffer Holds the returned pointer to the | |
decompressed sections. | |
@param OutputSize Holds the returned size of the decompress | |
section streams. | |
@retval EFI_SUCCESS The section was decompressed | |
successfully. OutputBuffer contains the | |
resulting data and OutputSize contains | |
the resulting size. | |
@retval EFI_OUT_OF_RESOURCES Unable to allocate sufficient | |
memory to hold the decompressed data. | |
@retval EFI_UNSUPPORTED The compression type specified | |
in the compression header is unsupported. | |
**/ | |
typedef | |
EFI_STATUS | |
(EFIAPI *EFI_PEI_DECOMPRESS_DECOMPRESS)( | |
IN CONST EFI_PEI_DECOMPRESS_PPI *This, | |
IN CONST EFI_COMPRESSION_SECTION *InputSection, | |
OUT VOID **OutputBuffer, | |
OUT UINTN *OutputSize | |
); | |
/// | |
/// This PPI's single member function decompresses a compression | |
/// encapsulated section. It is used by the PEI Foundation to | |
/// process sectioned files. Prior to the installation of this PPI, | |
/// compression sections will be ignored. | |
/// | |
struct _EFI_PEI_DECOMPRESS_PPI { | |
EFI_PEI_DECOMPRESS_DECOMPRESS Decompress; | |
}; | |
extern EFI_GUID gEfiPeiDecompressPpiGuid; | |
#endif |