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-2017 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@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_INCLUDED
36 #define __MINILZO_H_INCLUDED 1
37 
38 #define MINILZO_VERSION         0x20a0  /* 2.10 */
39 
40 #if defined(__LZOCONF_H_INCLUDED)
41 #  error "you cannot use both LZO and miniLZO"
42 #endif
43 
44 /* internal Autoconf configuration file - only used when building miniLZO */
45 #ifdef MINILZO_HAVE_CONFIG_H
46 #  include <config.h>
47 #endif
48 #include <limits.h>
49 #include <stddef.h>
50 
51 #ifndef __LZODEFS_H_INCLUDED
52 #include "lzodefs.h"
53 #endif
54 #undef LZO_HAVE_CONFIG_H
55 #include "lzoconf.h"
56 
57 #if !defined(LZO_VERSION) || (LZO_VERSION != MINILZO_VERSION)
58 #  error "version mismatch in header files"
59 #endif
60 
61 
62 #ifdef __cplusplus
63 extern "C" {
64 #endif
65 
66 
67 /***********************************************************************
68 //
69 ************************************************************************/
70 
71 /* Memory required for the wrkmem parameter.
72  * When the required size is 0, you can also pass a NULL pointer.
73  */
74 
75 #define LZO1X_MEM_COMPRESS      LZO1X_1_MEM_COMPRESS
76 #define LZO1X_1_MEM_COMPRESS    ((lzo_uint32_t) (16384L * lzo_sizeof_dict_t))
77 #define LZO1X_MEM_DECOMPRESS    (0)
78 
79 
80 /* compression */
81 LZO_EXTERN(int)
82 lzo1x_1_compress        ( const lzo_bytep src, lzo_uint  src_len,
83                                 lzo_bytep dst, lzo_uintp dst_len,
84                                 lzo_voidp wrkmem );
85 
86 /* decompression */
87 LZO_EXTERN(int)
88 lzo1x_decompress        ( const lzo_bytep src, lzo_uint  src_len,
89                                 lzo_bytep dst, lzo_uintp dst_len,
90                                 lzo_voidp wrkmem /* NOT USED */ );
91 
92 /* safe decompression with overrun testing */
93 LZO_EXTERN(int)
94 lzo1x_decompress_safe   ( const lzo_bytep src, lzo_uint  src_len,
95                                 lzo_bytep dst, lzo_uintp dst_len,
96                                 lzo_voidp wrkmem /* NOT USED */ );
97 
98 
99 #ifdef __cplusplus
100 } /* extern "C" */
101 #endif
102 
103 #endif /* already included */
104 
105 
106 /* vim:set ts=4 sw=4 et: */
107