Home | History | Annotate | Download | only in common
      1 /* minilzo.h -- mini subset of the LZO real-time data compression library
      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  * NOTE:
     30  *   the full LZO package can be found at
     31  *   http://www.oberhumer.com/opensource/lzo/
     32  */
     33 
     34 
     35 #ifndef __MINILZO_H
     36 #define __MINILZO_H 1
     37 
     38 #define MINILZO_VERSION         0x2070
     39 
     40 #ifdef __LZOCONF_H
     41 #  error "you cannot use both LZO and miniLZO"
     42 #endif
     43 
     44 #undef LZO_HAVE_CONFIG_H
     45 #include "lzoconf.h"
     46 
     47 #if !defined(LZO_VERSION) || (LZO_VERSION != MINILZO_VERSION)
     48 #  error "version mismatch in header files"
     49 #endif
     50 
     51 
     52 #ifdef __cplusplus
     53 extern "C" {
     54 #endif
     55 
     56 
     57 /***********************************************************************
     58 //
     59 ************************************************************************/
     60 
     61 /* Memory required for the wrkmem parameter.
     62  * When the required size is 0, you can also pass a NULL pointer.
     63  */
     64 
     65 #define LZO1X_MEM_COMPRESS      LZO1X_1_MEM_COMPRESS
     66 #define LZO1X_1_MEM_COMPRESS    ((lzo_uint32_t) (16384L * lzo_sizeof_dict_t))
     67 #define LZO1X_MEM_DECOMPRESS    (0)
     68 
     69 
     70 /* compression */
     71 LZO_EXTERN(int)
     72 lzo1x_1_compress        ( const lzo_bytep src, lzo_uint  src_len,
     73                                 lzo_bytep dst, lzo_uintp dst_len,
     74                                 lzo_voidp wrkmem );
     75 
     76 /* decompression */
     77 LZO_EXTERN(int)
     78 lzo1x_decompress        ( const lzo_bytep src, lzo_uint  src_len,
     79                                 lzo_bytep dst, lzo_uintp dst_len,
     80                                 lzo_voidp wrkmem /* NOT USED */ );
     81 
     82 /* safe decompression with overrun testing */
     83 LZO_EXTERN(int)
     84 lzo1x_decompress_safe   ( const lzo_bytep src, lzo_uint  src_len,
     85                                 lzo_bytep dst, lzo_uintp dst_len,
     86                                 lzo_voidp wrkmem /* NOT USED */ );
     87 
     88 
     89 #ifdef __cplusplus
     90 } /* extern "C" */
     91 #endif
     92 
     93 #endif /* already included */
     94 
     95