Home | History | Annotate | Download | only in lzo
      1 /* lzo1x.h -- public interface of the LZO1X compression algorithm
      2 
      3    This file is part of the LZO real-time data compression library.
      4 
      5    Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
      6    All Rights Reserved.
      7 
      8    The LZO library is free software; you can redistribute it and/or
      9    modify it under the terms of the GNU General Public License as
     10    published by the Free Software Foundation; either version 2 of
     11    the License, or (at your option) any later version.
     12 
     13    The LZO library is distributed in the hope that it will be useful,
     14    but WITHOUT ANY WARRANTY; without even the implied warranty of
     15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16    GNU General Public License for more details.
     17 
     18    You should have received a copy of the GNU General Public License
     19    along with the LZO library; see the file COPYING.
     20    If not, write to the Free Software Foundation, Inc.,
     21    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
     22 
     23    Markus F.X.J. Oberhumer
     24    <markus (at) oberhumer.com>
     25    http://www.oberhumer.com/opensource/lzo/
     26  */
     27 
     28 
     29 #ifndef __LZO1X_H_INCLUDED
     30 #define __LZO1X_H_INCLUDED 1
     31 
     32 #ifndef __LZOCONF_H_INCLUDED
     33 #include "lzoconf.h"
     34 #endif
     35 
     36 #ifdef __cplusplus
     37 extern "C" {
     38 #endif
     39 
     40 
     41 /***********************************************************************
     42 //
     43 ************************************************************************/
     44 
     45 /* Memory required for the wrkmem parameter.
     46  * When the required size is 0, you can also pass a NULL pointer.
     47  */
     48 
     49 #define LZO1X_MEM_COMPRESS      LZO1X_1_MEM_COMPRESS
     50 #define LZO1X_MEM_DECOMPRESS    (0)
     51 #define LZO1X_MEM_OPTIMIZE      (0)
     52 
     53 
     54 /* decompression */
     55 LZO_EXTERN(int)
     56 lzo1x_decompress        ( const lzo_bytep src, lzo_uint  src_len,
     57                                 lzo_bytep dst, lzo_uintp dst_len,
     58                                 lzo_voidp wrkmem /* NOT USED */ );
     59 
     60 /* safe decompression with overrun testing */
     61 LZO_EXTERN(int)
     62 lzo1x_decompress_safe   ( const lzo_bytep src, lzo_uint  src_len,
     63                                 lzo_bytep dst, lzo_uintp dst_len,
     64                                 lzo_voidp wrkmem /* NOT USED */ );
     65 
     66 
     67 /***********************************************************************
     68 //
     69 ************************************************************************/
     70 
     71 #define LZO1X_1_MEM_COMPRESS    ((lzo_uint32_t) (16384L * lzo_sizeof_dict_t))
     72 
     73 LZO_EXTERN(int)
     74 lzo1x_1_compress        ( const lzo_bytep src, lzo_uint  src_len,
     75                                 lzo_bytep dst, lzo_uintp dst_len,
     76                                 lzo_voidp wrkmem );
     77 
     78 
     79 /***********************************************************************
     80 // special compressor versions
     81 ************************************************************************/
     82 
     83 /* this version needs only 8 KiB work memory */
     84 #define LZO1X_1_11_MEM_COMPRESS ((lzo_uint32_t) (2048L * lzo_sizeof_dict_t))
     85 
     86 LZO_EXTERN(int)
     87 lzo1x_1_11_compress     ( const lzo_bytep src, lzo_uint  src_len,
     88                                 lzo_bytep dst, lzo_uintp dst_len,
     89                                 lzo_voidp wrkmem );
     90 
     91 
     92 /* this version needs 16 KiB work memory */
     93 #define LZO1X_1_12_MEM_COMPRESS ((lzo_uint32_t) (4096L * lzo_sizeof_dict_t))
     94 
     95 LZO_EXTERN(int)
     96 lzo1x_1_12_compress     ( const lzo_bytep src, lzo_uint  src_len,
     97                                 lzo_bytep dst, lzo_uintp dst_len,
     98                                 lzo_voidp wrkmem );
     99 
    100 
    101 /* use this version if you need a little more compression speed */
    102 #define LZO1X_1_15_MEM_COMPRESS ((lzo_uint32_t) (32768L * lzo_sizeof_dict_t))
    103 
    104 LZO_EXTERN(int)
    105 lzo1x_1_15_compress     ( const lzo_bytep src, lzo_uint  src_len,
    106                                 lzo_bytep dst, lzo_uintp dst_len,
    107                                 lzo_voidp wrkmem );
    108 
    109 
    110 /***********************************************************************
    111 // better compression ratio at the cost of more memory and time
    112 ************************************************************************/
    113 
    114 #define LZO1X_999_MEM_COMPRESS  ((lzo_uint32_t) (14 * 16384L * sizeof(short)))
    115 
    116 LZO_EXTERN(int)
    117 lzo1x_999_compress      ( const lzo_bytep src, lzo_uint  src_len,
    118                                 lzo_bytep dst, lzo_uintp dst_len,
    119                                 lzo_voidp wrkmem );
    120 
    121 
    122 /***********************************************************************
    123 //
    124 ************************************************************************/
    125 
    126 LZO_EXTERN(int)
    127 lzo1x_999_compress_dict     ( const lzo_bytep src, lzo_uint  src_len,
    128                                     lzo_bytep dst, lzo_uintp dst_len,
    129                                     lzo_voidp wrkmem,
    130                               const lzo_bytep dict, lzo_uint dict_len );
    131 
    132 LZO_EXTERN(int)
    133 lzo1x_999_compress_level    ( const lzo_bytep src, lzo_uint  src_len,
    134                                     lzo_bytep dst, lzo_uintp dst_len,
    135                                     lzo_voidp wrkmem,
    136                               const lzo_bytep dict, lzo_uint dict_len,
    137                                     lzo_callback_p cb,
    138                                     int compression_level );
    139 
    140 LZO_EXTERN(int)
    141 lzo1x_decompress_dict_safe ( const lzo_bytep src, lzo_uint  src_len,
    142                                    lzo_bytep dst, lzo_uintp dst_len,
    143                                    lzo_voidp wrkmem /* NOT USED */,
    144                              const lzo_bytep dict, lzo_uint dict_len );
    145 
    146 
    147 /***********************************************************************
    148 // optimize a compressed data block
    149 ************************************************************************/
    150 
    151 LZO_EXTERN(int)
    152 lzo1x_optimize          (       lzo_bytep src, lzo_uint  src_len,
    153                                 lzo_bytep dst, lzo_uintp dst_len,
    154                                 lzo_voidp wrkmem /* NOT USED */ );
    155 
    156 
    157 
    158 #ifdef __cplusplus
    159 } /* extern "C" */
    160 #endif
    161 
    162 #endif /* already included */
    163 
    164 
    165 /* vim:set ts=4 et: */
    166