Home | History | Annotate | Download | only in Common
      1 /** @file
      2 Header file for compression routine
      3 
      4 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
      5 This program and the accompanying materials
      6 are licensed and made available under the terms and conditions of the BSD License
      7 which accompanies this distribution.  The full text of the license may be found at
      8 http://opensource.org/licenses/bsd-license.php
      9 
     10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #ifndef _EFI_DECOMPRESS_H
     16 #define _EFI_DECOMPRESS_H
     17 
     18 #include <Common/UefiBaseTypes.h>
     19 
     20 EFI_STATUS
     21 EfiGetInfo (
     22   IN      VOID    *Source,
     23   IN      UINT32  SrcSize,
     24   OUT     UINT32  *DstSize,
     25   OUT     UINT32  *ScratchSize
     26   );
     27 /**
     28 
     29 Routine Description:
     30 
     31   The implementation Efi Decompress GetInfo().
     32 
     33 Arguments:
     34 
     35   Source      - The source buffer containing the compressed data.
     36   SrcSize     - The size of source buffer
     37   DstSize     - The size of destination buffer.
     38   ScratchSize - The size of scratch buffer.
     39 
     40 Returns:
     41 
     42   EFI_SUCCESS           - The size of destination buffer and the size of scratch buffer are successfully retrieved.
     43   EFI_INVALID_PARAMETER - The source data is corrupted
     44 
     45 **/
     46 
     47 EFI_STATUS
     48 EfiDecompress (
     49   IN      VOID    *Source,
     50   IN      UINT32  SrcSize,
     51   IN OUT  VOID    *Destination,
     52   IN      UINT32  DstSize,
     53   IN OUT  VOID    *Scratch,
     54   IN      UINT32  ScratchSize
     55   );
     56 /**
     57 
     58 Routine Description:
     59 
     60   The implementation of Efi Decompress().
     61 
     62 Arguments:
     63 
     64   Source      - The source buffer containing the compressed data.
     65   SrcSize     - The size of source buffer
     66   Destination - The destination buffer to store the decompressed data
     67   DstSize     - The size of destination buffer.
     68   Scratch     - The buffer used internally by the decompress routine. This  buffer is needed to store intermediate data.
     69   ScratchSize - The size of scratch buffer.
     70 
     71 Returns:
     72 
     73   EFI_SUCCESS           - Decompression is successfull
     74   EFI_INVALID_PARAMETER - The source data is corrupted
     75 
     76 **/
     77 
     78 EFI_STATUS
     79 TianoGetInfo (
     80   IN      VOID    *Source,
     81   IN      UINT32  SrcSize,
     82   OUT     UINT32  *DstSize,
     83   OUT     UINT32  *ScratchSize
     84   );
     85 /**
     86 
     87 Routine Description:
     88 
     89   The implementation Tiano Decompress GetInfo().
     90 
     91 Arguments:
     92 
     93   Source      - The source buffer containing the compressed data.
     94   SrcSize     - The size of source buffer
     95   DstSize     - The size of destination buffer.
     96   ScratchSize - The size of scratch buffer.
     97 
     98 Returns:
     99 
    100   EFI_SUCCESS           - The size of destination buffer and the size of scratch buffer are successfully retrieved.
    101   EFI_INVALID_PARAMETER - The source data is corrupted
    102 
    103 **/
    104 
    105 EFI_STATUS
    106 TianoDecompress (
    107   IN      VOID    *Source,
    108   IN      UINT32  SrcSize,
    109   IN OUT  VOID    *Destination,
    110   IN      UINT32  DstSize,
    111   IN OUT  VOID    *Scratch,
    112   IN      UINT32  ScratchSize
    113   );
    114 /**
    115 
    116 Routine Description:
    117 
    118   The implementation of Tiano Decompress().
    119 
    120 Arguments:
    121 
    122   Source      - The source buffer containing the compressed data.
    123   SrcSize     - The size of source buffer
    124   Destination - The destination buffer to store the decompressed data
    125   DstSize     - The size of destination buffer.
    126   Scratch     - The buffer used internally by the decompress routine. This  buffer is needed to store intermediate data.
    127   ScratchSize - The size of scratch buffer.
    128 
    129 Returns:
    130 
    131   EFI_SUCCESS           - Decompression is successfull
    132   EFI_INVALID_PARAMETER - The source data is corrupted
    133 
    134 **/
    135 
    136 typedef
    137 EFI_STATUS
    138 (*GETINFO_FUNCTION) (
    139   IN      VOID    *Source,
    140   IN      UINT32  SrcSize,
    141   OUT     UINT32  *DstSize,
    142   OUT     UINT32  *ScratchSize
    143   );
    144 
    145 typedef
    146 EFI_STATUS
    147 (*DECOMPRESS_FUNCTION) (
    148   IN      VOID    *Source,
    149   IN      UINT32  SrcSize,
    150   IN OUT  VOID    *Destination,
    151   IN      UINT32  DstSize,
    152   IN OUT  VOID    *Scratch,
    153   IN      UINT32  ScratchSize
    154   );
    155 
    156 EFI_STATUS
    157 Extract (
    158   IN      VOID    *Source,
    159   IN      UINT32  SrcSize,
    160      OUT  VOID    **Destination,
    161      OUT  UINT32  *DstSize,
    162   IN      UINTN   Algorithm
    163   );
    164 
    165 #endif
    166