minilzo: import content of upstream minilzo-2.10.tar.gz archive
[libsigrok.git] / src / minilzo / minilzo.h
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: */