/** @file Provides decompression services to the PEI Foundation. Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent @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