18c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu/** @file
234f5c23452b3bbc43ebfe8aaa8f2fdcd35669dc3Gary Lin  Internal include file for Base UEFI Decompress Library.
38c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
4b1f700a8593435e2bdc8f9b3dc21bced4774c80fhhtian  Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
5b1f700a8593435e2bdc8f9b3dc21bced4774c80fhhtian  This program and the accompanying materials
68c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu  are licensed and made available under the terms and conditions of the BSD License
78c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu  which accompanies this distribution.  The full text of the license may be found at
88c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu  http://opensource.org/licenses/bsd-license.php
98c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
108c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
118c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
128c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
138c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu  Module Name:  BaseUefiCustomDecompressLibInternals.h
148c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
158c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu**/
168c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
178c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu#ifndef __BASE_UEFI_TIANO_CUSTOM_DECOMPRESS_LIB_INTERNALS_H__
188c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu#define __BASE_UEFI_TIANO_CUSTOM_DECOMPRESS_LIB_INTERNALS_H__
198c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
208c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu#include <PiPei.h>
218c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
228c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu#include <Library/UefiDecompressLib.h>
238c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu#include <Library/DebugLib.h>
248c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu#include <Library/BaseMemoryLib.h>
258c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
263da85e633e2589a312fb3646660ef68e6a0bf18bkluEFI_STATUS
273da85e633e2589a312fb3646660ef68e6a0bf18bkluEFIAPI
283da85e633e2589a312fb3646660ef68e6a0bf18bkluTianoGetInfo (
293da85e633e2589a312fb3646660ef68e6a0bf18bklu  IN      VOID                          *Source,
303da85e633e2589a312fb3646660ef68e6a0bf18bklu  IN      UINT32                        SrcSize,
313da85e633e2589a312fb3646660ef68e6a0bf18bklu  OUT     UINT32                        *DstSize,
323da85e633e2589a312fb3646660ef68e6a0bf18bklu  OUT     UINT32                        *ScratchSize
333da85e633e2589a312fb3646660ef68e6a0bf18bklu  )
343da85e633e2589a312fb3646660ef68e6a0bf18bklu/*++
358c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
363da85e633e2589a312fb3646660ef68e6a0bf18bkluRoutine Description:
378c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
383da85e633e2589a312fb3646660ef68e6a0bf18bklu  The implementation is same as that of EFI_TIANO_DECOMPRESS_PROTOCOL.GetInfo().
398c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
403da85e633e2589a312fb3646660ef68e6a0bf18bkluArguments:
418c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
423da85e633e2589a312fb3646660ef68e6a0bf18bklu  This        - The protocol instance pointer
433da85e633e2589a312fb3646660ef68e6a0bf18bklu  Source      - The source buffer containing the compressed data.
443da85e633e2589a312fb3646660ef68e6a0bf18bklu  SrcSize     - The size of source buffer
453da85e633e2589a312fb3646660ef68e6a0bf18bklu  DstSize     - The size of destination buffer.
463da85e633e2589a312fb3646660ef68e6a0bf18bklu  ScratchSize - The size of scratch buffer.
478c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
483da85e633e2589a312fb3646660ef68e6a0bf18bkluReturns:
498c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
5034f5c23452b3bbc43ebfe8aaa8f2fdcd35669dc3Gary Lin  EFI_SUCCESS           - The size of destination buffer and the size of scratch buffer are successfully retrieved.
513da85e633e2589a312fb3646660ef68e6a0bf18bklu  EFI_INVALID_PARAMETER - The source data is corrupted
528c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
533da85e633e2589a312fb3646660ef68e6a0bf18bklu--*/
543da85e633e2589a312fb3646660ef68e6a0bf18bklu;
558c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
563da85e633e2589a312fb3646660ef68e6a0bf18bkluEFI_STATUS
573da85e633e2589a312fb3646660ef68e6a0bf18bkluEFIAPI
583da85e633e2589a312fb3646660ef68e6a0bf18bkluTianoDecompress (
593da85e633e2589a312fb3646660ef68e6a0bf18bklu  IN      VOID                          *Source,
603da85e633e2589a312fb3646660ef68e6a0bf18bklu  IN      UINT32                        SrcSize,
613da85e633e2589a312fb3646660ef68e6a0bf18bklu  IN OUT  VOID                          *Destination,
623da85e633e2589a312fb3646660ef68e6a0bf18bklu  IN      UINT32                        DstSize,
633da85e633e2589a312fb3646660ef68e6a0bf18bklu  IN OUT  VOID                          *Scratch,
643da85e633e2589a312fb3646660ef68e6a0bf18bklu  IN      UINT32                        ScratchSize
653da85e633e2589a312fb3646660ef68e6a0bf18bklu  )
663da85e633e2589a312fb3646660ef68e6a0bf18bklu/*++
678c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
683da85e633e2589a312fb3646660ef68e6a0bf18bkluRoutine Description:
698c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
703da85e633e2589a312fb3646660ef68e6a0bf18bklu  The implementation is same as that  of EFI_TIANO_DECOMPRESS_PROTOCOL.Decompress().
718c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
723da85e633e2589a312fb3646660ef68e6a0bf18bkluArguments:
738c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
743da85e633e2589a312fb3646660ef68e6a0bf18bklu  This        - The protocol instance pointer
753da85e633e2589a312fb3646660ef68e6a0bf18bklu  Source      - The source buffer containing the compressed data.
763da85e633e2589a312fb3646660ef68e6a0bf18bklu  SrcSize     - The size of source buffer
773da85e633e2589a312fb3646660ef68e6a0bf18bklu  Destination - The destination buffer to store the decompressed data
783da85e633e2589a312fb3646660ef68e6a0bf18bklu  DstSize     - The size of destination buffer.
793da85e633e2589a312fb3646660ef68e6a0bf18bklu  Scratch     - The buffer used internally by the decompress routine. This  buffer is needed to store intermediate data.
803da85e633e2589a312fb3646660ef68e6a0bf18bklu  ScratchSize - The size of scratch buffer.
818c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
823da85e633e2589a312fb3646660ef68e6a0bf18bkluReturns:
838c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
843da85e633e2589a312fb3646660ef68e6a0bf18bklu  EFI_SUCCESS           - Decompression is successfull
853da85e633e2589a312fb3646660ef68e6a0bf18bklu  EFI_INVALID_PARAMETER - The source data is corrupted
868c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
873da85e633e2589a312fb3646660ef68e6a0bf18bklu--*/
883da85e633e2589a312fb3646660ef68e6a0bf18bklu;
898c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu
908c1ba7f5e5aef9ff8f4627e8af52932fb4f7b805klu#endif
91