Home | History | Annotate | Download | only in Common
      1 /** @file
      2 Header file for compression routine.
      3 Providing both EFI and Tiano Compress algorithms.
      4 
      5 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
      6 This program and the accompanying materials
      7 are licensed and made available under the terms and conditions of the BSD License
      8 which accompanies this distribution.  The full text of the license may be found at
      9 http://opensource.org/licenses/bsd-license.php
     10 
     11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14 **/
     15 
     16 #ifndef _COMPRESS_H_
     17 #define _COMPRESS_H_
     18 
     19 #include <string.h>
     20 #include <stdlib.h>
     21 
     22 #include "CommonLib.h"
     23 #include <Common/UefiBaseTypes.h>
     24 /*++
     25 
     26 Routine Description:
     27 
     28   Tiano compression routine.
     29 
     30 --*/
     31 EFI_STATUS
     32 TianoCompress (
     33   IN      UINT8   *SrcBuffer,
     34   IN      UINT32  SrcSize,
     35   IN      UINT8   *DstBuffer,
     36   IN OUT  UINT32  *DstSize
     37   )
     38 ;
     39 
     40 /*++
     41 
     42 Routine Description:
     43 
     44   Efi compression routine.
     45 
     46 --*/
     47 EFI_STATUS
     48 EfiCompress (
     49   IN      UINT8   *SrcBuffer,
     50   IN      UINT32  SrcSize,
     51   IN      UINT8   *DstBuffer,
     52   IN OUT  UINT32  *DstSize
     53   )
     54 ;
     55 
     56 /*++
     57 
     58 Routine Description:
     59 
     60   The compression routine.
     61 
     62 Arguments:
     63 
     64   SrcBuffer   - The buffer storing the source data
     65   SrcSize     - The size of source data
     66   DstBuffer   - The buffer to store the compressed data
     67   DstSize     - On input, the size of DstBuffer; On output,
     68                 the size of the actual compressed data.
     69 
     70 Returns:
     71 
     72   EFI_BUFFER_TOO_SMALL  - The DstBuffer is too small. In this case,
     73                 DstSize contains the size needed.
     74   EFI_SUCCESS           - Compression is successful.
     75   EFI_OUT_OF_RESOURCES  - No resource to complete function.
     76   EFI_INVALID_PARAMETER - Parameter supplied is wrong.
     77 
     78 --*/
     79 typedef
     80 EFI_STATUS
     81 (*COMPRESS_FUNCTION) (
     82   IN      UINT8   *SrcBuffer,
     83   IN      UINT32  SrcSize,
     84   IN      UINT8   *DstBuffer,
     85   IN OUT  UINT32  *DstSize
     86   );
     87 
     88 #endif
     89