| /** @file | |
| LZMA Decompress GUIDed Section Extraction Library. | |
| It wraps Lzma decompress interfaces to GUIDed Section Extraction interfaces | |
| and registers them into GUIDed handler table. | |
| Copyright (c) 2009, 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. | |
| **/ | |
| #include <PiDxe.h> | |
| #include <Library/HobLib.h> | |
| #include <Library/ExtractGuidedSectionLib.h> | |
| #include <Guid/ExtractSection.h> | |
| #include <Guid/LzmaDecompress.h> | |
| /** | |
| Register LzmaDecompress and LzmaDecompressGetInfo handlers with LzmaCustomerDecompressGuid. | |
| @retval RETURN_SUCCESS Register successfully. | |
| @retval RETURN_OUT_OF_RESOURCES No enough memory to store this handler. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| LzmaDecompressLibConstructor ( | |
| ) | |
| { | |
| EXTRACT_SECTION_HOB *Hob; | |
| Hob = GetFirstGuidHob (&gLzmaCustomDecompressGuid); | |
| if (Hob == NULL) { | |
| return EFI_NOT_FOUND; | |
| } | |
| // Locate Guided Hob | |
| return ExtractGuidedSectionRegisterHandlers ( | |
| &gLzmaCustomDecompressGuid, | |
| Hob->Data.SectionGetInfo, | |
| Hob->Data.SectionExtraction | |
| ); | |
| } |