• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* lzo1x.h -- public interface of the LZO1X compression algorithm
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@oberhumer.com>
25    http://www.oberhumer.com/opensource/lzo/
26  */
27 
28 
29 #ifndef __LZO1X_H_INCLUDED
30 #define __LZO1X_H_INCLUDED 1
31 
32 #ifndef __LZOCONF_H_INCLUDED
33 #include "lzoconf.h"
34 #endif
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 
41 /***********************************************************************
42 //
43 ************************************************************************/
44 
45 /* Memory required for the wrkmem parameter.
46  * When the required size is 0, you can also pass a NULL pointer.
47  */
48 
49 #define LZO1X_MEM_COMPRESS      LZO1X_1_MEM_COMPRESS
50 #define LZO1X_MEM_DECOMPRESS    (0)
51 #define LZO1X_MEM_OPTIMIZE      (0)
52 
53 
54 /* decompression */
55 LZO_EXTERN(int)
56 lzo1x_decompress        ( const lzo_bytep src, lzo_uint  src_len,
57                                 lzo_bytep dst, lzo_uintp dst_len,
58                                 lzo_voidp wrkmem /* NOT USED */ );
59 
60 /* safe decompression with overrun testing */
61 LZO_EXTERN(int)
62 lzo1x_decompress_safe   ( const lzo_bytep src, lzo_uint  src_len,
63                                 lzo_bytep dst, lzo_uintp dst_len,
64                                 lzo_voidp wrkmem /* NOT USED */ );
65 
66 
67 /***********************************************************************
68 //
69 ************************************************************************/
70 
71 #define LZO1X_1_MEM_COMPRESS    ((lzo_uint32_t) (16384L * lzo_sizeof_dict_t))
72 
73 LZO_EXTERN(int)
74 lzo1x_1_compress        ( const lzo_bytep src, lzo_uint  src_len,
75                                 lzo_bytep dst, lzo_uintp dst_len,
76                                 lzo_voidp wrkmem );
77 
78 
79 /***********************************************************************
80 // special compressor versions
81 ************************************************************************/
82 
83 /* this version needs only 8 KiB work memory */
84 #define LZO1X_1_11_MEM_COMPRESS ((lzo_uint32_t) (2048L * lzo_sizeof_dict_t))
85 
86 LZO_EXTERN(int)
87 lzo1x_1_11_compress     ( const lzo_bytep src, lzo_uint  src_len,
88                                 lzo_bytep dst, lzo_uintp dst_len,
89                                 lzo_voidp wrkmem );
90 
91 
92 /* this version needs 16 KiB work memory */
93 #define LZO1X_1_12_MEM_COMPRESS ((lzo_uint32_t) (4096L * lzo_sizeof_dict_t))
94 
95 LZO_EXTERN(int)
96 lzo1x_1_12_compress     ( const lzo_bytep src, lzo_uint  src_len,
97                                 lzo_bytep dst, lzo_uintp dst_len,
98                                 lzo_voidp wrkmem );
99 
100 
101 /* use this version if you need a little more compression speed */
102 #define LZO1X_1_15_MEM_COMPRESS ((lzo_uint32_t) (32768L * lzo_sizeof_dict_t))
103 
104 LZO_EXTERN(int)
105 lzo1x_1_15_compress     ( const lzo_bytep src, lzo_uint  src_len,
106                                 lzo_bytep dst, lzo_uintp dst_len,
107                                 lzo_voidp wrkmem );
108 
109 
110 /***********************************************************************
111 // better compression ratio at the cost of more memory and time
112 ************************************************************************/
113 
114 #define LZO1X_999_MEM_COMPRESS  ((lzo_uint32_t) (14 * 16384L * sizeof(short)))
115 
116 LZO_EXTERN(int)
117 lzo1x_999_compress      ( const lzo_bytep src, lzo_uint  src_len,
118                                 lzo_bytep dst, lzo_uintp dst_len,
119                                 lzo_voidp wrkmem );
120 
121 
122 /***********************************************************************
123 //
124 ************************************************************************/
125 
126 LZO_EXTERN(int)
127 lzo1x_999_compress_dict     ( const lzo_bytep src, lzo_uint  src_len,
128                                     lzo_bytep dst, lzo_uintp dst_len,
129                                     lzo_voidp wrkmem,
130                               const lzo_bytep dict, lzo_uint dict_len );
131 
132 LZO_EXTERN(int)
133 lzo1x_999_compress_level    ( const lzo_bytep src, lzo_uint  src_len,
134                                     lzo_bytep dst, lzo_uintp dst_len,
135                                     lzo_voidp wrkmem,
136                               const lzo_bytep dict, lzo_uint dict_len,
137                                     lzo_callback_p cb,
138                                     int compression_level );
139 
140 LZO_EXTERN(int)
141 lzo1x_decompress_dict_safe ( const lzo_bytep src, lzo_uint  src_len,
142                                    lzo_bytep dst, lzo_uintp dst_len,
143                                    lzo_voidp wrkmem /* NOT USED */,
144                              const lzo_bytep dict, lzo_uint dict_len );
145 
146 
147 /***********************************************************************
148 // optimize a compressed data block
149 ************************************************************************/
150 
151 LZO_EXTERN(int)
152 lzo1x_optimize          (       lzo_bytep src, lzo_uint  src_len,
153                                 lzo_bytep dst, lzo_uintp dst_len,
154                                 lzo_voidp wrkmem /* NOT USED */ );
155 
156 
157 
158 #ifdef __cplusplus
159 } /* extern "C" */
160 #endif
161 
162 #endif /* already included */
163 
164 
165 /* vim:set ts=4 et: */
166