/* minilzo.h -- mini subset of the LZO real-time data compression library
 
 
 
   This file is part of the LZO real-time data compression library.
 
 
 
   Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
 
   All Rights Reserved.
 
 
 
   The LZO library is free software; you can redistribute it and/or
 
   modify it under the terms of the GNU General Public License as
 
   published by the Free Software Foundation; either version 2 of
 
   the License, or (at your option) any later version.
 
 
 
   The LZO library is distributed in the hope that it will be useful,
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
   GNU General Public License for more details.
 
 
 
   You should have received a copy of the GNU General Public License
 
   along with the LZO library; see the file COPYING.
 
   If not, write to the Free Software Foundation, Inc.,
 
   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 
 
   Markus F.X.J. Oberhumer
 
   <markus@oberhumer.com>
 
   http://www.oberhumer.com/opensource/lzo/
 
 */
 
 
 
/*
 
 * NOTE:
 
 *   the full LZO package can be found at
 
 *   http://www.oberhumer.com/opensource/lzo/
 
 */
 
 
 
 
 
#ifndef __MINILZO_H_INCLUDED
 
#define __MINILZO_H_INCLUDED 1
 
 
 
#define MINILZO_VERSION         0x20a0  /* 2.10 */
 
 
 
#if defined(__LZOCONF_H_INCLUDED)
 
#  error "you cannot use both LZO and miniLZO"
 
#endif
 
 
 
/* internal Autoconf configuration file - only used when building miniLZO */
 
#ifdef MINILZO_HAVE_CONFIG_H
 
#  include <config.h>
 
#endif
 
#include <limits.h>
 
#include <stddef.h>
 
 
 
#ifndef __LZODEFS_H_INCLUDED
 
#include "lzodefs.h"
 
#endif
 
#undef LZO_HAVE_CONFIG_H
 
#include "lzoconf.h"
 
 
 
#if !defined(LZO_VERSION) || (LZO_VERSION != MINILZO_VERSION)
 
#  error "version mismatch in header files"
 
#endif
 
 
 
 
 
#ifdef __cplusplus
 
extern "C" {
 
#endif
 
 
 
 
 
/***********************************************************************
 
//
 
************************************************************************/
 
 
 
/* Memory required for the wrkmem parameter.
 
 * When the required size is 0, you can also pass a NULL pointer.
 
 */
 
 
 
#define LZO1X_MEM_COMPRESS      LZO1X_1_MEM_COMPRESS
 
#define LZO1X_1_11_MEM_COMPRESS ((lzo_uint32_t) (2048L * lzo_sizeof_dict_t)) // Pierre-Marie Baty -- added definition
 
#define LZO1X_1_12_MEM_COMPRESS ((lzo_uint32_t) (4096L * lzo_sizeof_dict_t)) // Pierre-Marie Baty -- added definition
 
#define LZO1X_1_MEM_COMPRESS    ((lzo_uint32_t) (16384L * lzo_sizeof_dict_t))
 
#define LZO1X_1_15_MEM_COMPRESS ((lzo_uint32_t) (32768L * lzo_sizeof_dict_t)) // Pierre-Marie Baty -- added definition
 
#define LZO1X_999_MEM_COMPRESS  ((lzo_uint32_t) (14 * 16384L * sizeof(short))) // Pierre-Marie Baty -- added definition
 
#define LZO1X_MEM_DECOMPRESS    (0)
 
 
 
 
 
/* compression */
 
LZO_EXTERN(int)
 
lzo1x_1_compress        ( const lzo_bytep src, lzo_uint  src_len,
 
                                lzo_bytep dst, lzo_uintp dst_len,
 
                                lzo_voidp wrkmem );
 
 
 
/* decompression */
 
LZO_EXTERN(int)
 
lzo1x_decompress        ( const lzo_bytep src, lzo_uint  src_len,
 
                                lzo_bytep dst, lzo_uintp dst_len,
 
                                lzo_voidp wrkmem /* NOT USED */ );
 
 
 
/* safe decompression with overrun testing */
 
LZO_EXTERN(int)
 
lzo1x_decompress_safe   ( const lzo_bytep src, lzo_uint  src_len,
 
                                lzo_bytep dst, lzo_uintp dst_len,
 
                                lzo_voidp wrkmem /* NOT USED */ );
 
 
 
 
 
#ifdef __cplusplus
 
} /* extern "C" */
 
#endif
 
 
 
#endif /* already included */
 
 
 
 
 
/* vim:set ts=4 sw=4 et: */