176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* lzo1z.h -- public interface of the LZO1Z compression algorithm
276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   This file is part of the LZO real-time data compression library.
476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   All Rights Reserved.
776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   The LZO library is free software; you can redistribute it and/or
976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   modify it under the terms of the GNU General Public License as
1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   published by the Free Software Foundation; either version 2 of
1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   the License, or (at your option) any later version.
1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   The LZO library is distributed in the hope that it will be useful,
1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   but WITHOUT ANY WARRANTY; without even the implied warranty of
1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   GNU General Public License for more details.
1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   You should have received a copy of the GNU General Public License
1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   along with the LZO library; see the file COPYING.
2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   If not, write to the Free Software Foundation, Inc.,
2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   Markus F.X.J. Oberhumer
2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   <markus@oberhumer.com>
2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman   http://www.oberhumer.com/opensource/lzo/
2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */
2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef __LZO1Z_H_INCLUDED
3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define __LZO1Z_H_INCLUDED 1
3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef __LZOCONF_H_INCLUDED
3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "lzoconf.h"
3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif
3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef __cplusplus
3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern "C" {
3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif
3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/***********************************************************************
4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//
4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman************************************************************************/
4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* Memory required for the wrkmem parameter.
4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * When the required size is 0, you can also pass a NULL pointer.
4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */
4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LZO1Z_MEM_DECOMPRESS    (0)
5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* decompression */
5376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLZO_EXTERN(int)
5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanlzo1z_decompress        ( const lzo_bytep src, lzo_uint  src_len,
5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                lzo_bytep dst, lzo_uintp dst_len,
5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                lzo_voidp wrkmem /* NOT USED */ );
5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* safe decompression with overrun testing */
5976d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLZO_EXTERN(int)
6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanlzo1z_decompress_safe   ( const lzo_bytep src, lzo_uint  src_len,
6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                lzo_bytep dst, lzo_uintp dst_len,
6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                lzo_voidp wrkmem /* NOT USED */ );
6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/***********************************************************************
6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman// better compression ratio at the cost of more memory and time
6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman************************************************************************/
6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define LZO1Z_999_MEM_COMPRESS  ((lzo_uint32_t) (14 * 16384L * sizeof(short)))
7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
7176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLZO_EXTERN(int)
7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanlzo1z_999_compress      ( const lzo_bytep src, lzo_uint  src_len,
7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                lzo_bytep dst, lzo_uintp dst_len,
7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                lzo_voidp wrkmem );
7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
7776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/***********************************************************************
7876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman//
7976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman************************************************************************/
8076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
8176d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLZO_EXTERN(int)
8276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanlzo1z_999_compress_dict     ( const lzo_bytep src, lzo_uint  src_len,
8376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                    lzo_bytep dst, lzo_uintp dst_len,
8476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                    lzo_voidp wrkmem,
8576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                              const lzo_bytep dict, lzo_uint dict_len );
8676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
8776d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLZO_EXTERN(int)
8876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanlzo1z_999_compress_level    ( const lzo_bytep src, lzo_uint  src_len,
8976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                    lzo_bytep dst, lzo_uintp dst_len,
9076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                    lzo_voidp wrkmem,
9176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                              const lzo_bytep dict, lzo_uint dict_len,
9276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                    lzo_callback_p cb,
9376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                    int compression_level );
9476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
9576d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanLZO_EXTERN(int)
9676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanlzo1z_decompress_dict_safe ( const lzo_bytep src, lzo_uint  src_len,
9776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                   lzo_bytep dst, lzo_uintp dst_len,
9876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                                   lzo_voidp wrkmem /* NOT USED */,
9976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman                             const lzo_bytep dict, lzo_uint dict_len );
10076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
10176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
10276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef __cplusplus
10376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} /* extern "C" */
10476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif
10576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
10676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif /* already included */
10776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
10876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman
10976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* vim:set ts=4 et: */
110