From 3ae5030e9c7e5cb20a1f5ea0eb57c8d9f5eeeaff Mon Sep 17 00:00:00 2001 From: klu2 Date: Fri, 15 Jan 2010 12:39:20 +0000 Subject: Fix Duet broken caused by LzmaUefiDecompress's interface is changed in IntelFrameworkModulePkg. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9776 6f19259b-4bc3-4df7-8a09-765794883524 --- DuetPkg/EfiLdr/EfiLoader.c | 5 ++++- DuetPkg/EfiLdr/LzmaDecompress.h | 31 ++++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 10 deletions(-) (limited to 'DuetPkg') diff --git a/DuetPkg/EfiLdr/EfiLoader.c b/DuetPkg/EfiLdr/EfiLoader.c index c37fba89ec..c69a97f01f 100644 --- a/DuetPkg/EfiLdr/EfiLoader.c +++ b/DuetPkg/EfiLdr/EfiLoader.c @@ -1,6 +1,6 @@ /*++ -Copyright (c) 2006, Intel Corporation +Copyright (c) 2006 - 2010, 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 @@ -113,6 +113,7 @@ EfiLoader ( PrintString (PrintBuffer); Status = LzmaUefiDecompress ( (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset), + EFILDRImage->Length, (VOID *)(UINTN)EFI_DECOMPRESSED_BUFFER_ADDRESS, (VOID *)(UINTN)((EFI_DECOMPRESSED_BUFFER_ADDRESS + DestinationSize + 0x1000) & 0xfffff000) ); @@ -162,6 +163,7 @@ EfiLoader ( Status = LzmaUefiDecompress ( (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset), + EFILDRImage->Length, (VOID *)(UINTN)EFI_DECOMPRESSED_BUFFER_ADDRESS, (VOID *)(UINTN)((EFI_DECOMPRESSED_BUFFER_ADDRESS + DestinationSize + 0x1000) & 0xfffff000) ); @@ -226,6 +228,7 @@ PrintHeader ('C'); Status = LzmaUefiDecompress ( (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset), + EFILDRImage->Length, (VOID *)(UINTN)EFI_DECOMPRESSED_BUFFER_ADDRESS, (VOID *)(UINTN)((EFI_DECOMPRESSED_BUFFER_ADDRESS + DestinationSize + 0x1000) & 0xfffff000) ); diff --git a/DuetPkg/EfiLdr/LzmaDecompress.h b/DuetPkg/EfiLdr/LzmaDecompress.h index fbf645e987..de16bed21b 100644 --- a/DuetPkg/EfiLdr/LzmaDecompress.h +++ b/DuetPkg/EfiLdr/LzmaDecompress.h @@ -1,7 +1,7 @@ /** @file LZMA Decompress Library header file - Copyright (c) 2006 - 2009, Intel Corporation
+ Copyright (c) 2006 - 2010, 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 @@ -36,22 +36,35 @@ LzmaUefiDecompressGetInfo ( ); /** - The internal implementation of *_DECOMPRESS_PROTOCOL.Decompress(). - - @param Source - The source buffer containing the compressed data. - @param Destination - The destination buffer to store the decompressed data - @param Scratch - The buffer used internally by the decompress routine. This buffer is needed to store intermediate data. + Decompresses a Lzma compressed source buffer. + + Extracts decompressed data to its original form. + If the compressed source data specified by Source is successfully decompressed + into Destination, then RETURN_SUCCESS is returned. If the compressed source data + specified by Source is not in a valid compressed data format, + then RETURN_INVALID_PARAMETER is returned. - @retval RETURN_SUCCESS - Decompression is successfull - @retval RETURN_INVALID_PARAMETER - The source data is corrupted + @param Source The source buffer containing the compressed data. + @param SourceSize The size of source buffer. + @param Destination The destination buffer to store the decompressed data + @param Scratch A temporary scratch buffer that is used to perform the decompression. + This is an optional parameter that may be NULL if the + required scratch buffer size is 0. + + @retval RETURN_SUCCESS Decompression completed successfully, and + the uncompressed buffer is returned in Destination. + @retval RETURN_INVALID_PARAMETER + The source buffer specified by Source is corrupted + (not in a valid compressed format). **/ RETURN_STATUS EFIAPI LzmaUefiDecompress ( IN CONST VOID *Source, + IN UINTN SourceSize, IN OUT VOID *Destination, IN OUT VOID *Scratch ); - + #endif // __LZMADECOMPRESS_H__ -- cgit v1.2.3