1 /* lzo1c.h -- public interface of the LZO1C compression algorithm
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 #ifndef __LZO1C_H_INCLUDED
30 #define __LZO1C_H_INCLUDED 1
31 
32 #ifndef __LZOCONF_H_INCLUDED
33 #include <lzo/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 LZO1C_MEM_COMPRESS      ((lzo_uint32_t) (16384L * lzo_sizeof_dict_t))
50 #define LZO1C_MEM_DECOMPRESS    (0)
51 
52 
53 /* compression levels */
54 #define LZO1C_BEST_SPEED             1
55 #define LZO1C_BEST_COMPRESSION       9
56 #define LZO1C_DEFAULT_COMPRESSION  (-1)     /* fastest by default */
57 
58 
59 LZO_EXTERN(int)
60 lzo1c_compress          ( const lzo_bytep src, lzo_uint  src_len,
61                                 lzo_bytep dst, lzo_uintp dst_len,
62                                 lzo_voidp wrkmem,
63                                 int compression_level );
64 
65 /* decompression */
66 LZO_EXTERN(int)
67 lzo1c_decompress        ( const lzo_bytep src, lzo_uint  src_len,
68                                 lzo_bytep dst, lzo_uintp dst_len,
69                                 lzo_voidp wrkmem /* NOT USED */ );
70 
71 /* safe decompression with overrun testing */
72 LZO_EXTERN(int)
73 lzo1c_decompress_safe   ( const lzo_bytep src, lzo_uint  src_len,
74                                 lzo_bytep dst, lzo_uintp dst_len,
75                                 lzo_voidp wrkmem /* NOT USED */ );
76 
77 
78 /***********************************************************************
79 //
80 ************************************************************************/
81 
82 LZO_EXTERN(int)
83 lzo1c_1_compress        ( const lzo_bytep src, lzo_uint  src_len,
84                                 lzo_bytep dst, lzo_uintp dst_len,
85                                 lzo_voidp wrkmem );
86 LZO_EXTERN(int)
87 lzo1c_2_compress        ( const lzo_bytep src, lzo_uint  src_len,
88                                 lzo_bytep dst, lzo_uintp dst_len,
89                                 lzo_voidp wrkmem );
90 LZO_EXTERN(int)
91 lzo1c_3_compress        ( const lzo_bytep src, lzo_uint  src_len,
92                                 lzo_bytep dst, lzo_uintp dst_len,
93                                 lzo_voidp wrkmem );
94 LZO_EXTERN(int)
95 lzo1c_4_compress        ( const lzo_bytep src, lzo_uint  src_len,
96                                 lzo_bytep dst, lzo_uintp dst_len,
97                                 lzo_voidp wrkmem );
98 LZO_EXTERN(int)
99 lzo1c_5_compress        ( const lzo_bytep src, lzo_uint  src_len,
100                                 lzo_bytep dst, lzo_uintp dst_len,
101                                 lzo_voidp wrkmem );
102 LZO_EXTERN(int)
103 lzo1c_6_compress        ( const lzo_bytep src, lzo_uint  src_len,
104                                 lzo_bytep dst, lzo_uintp dst_len,
105                                 lzo_voidp wrkmem );
106 LZO_EXTERN(int)
107 lzo1c_7_compress        ( const lzo_bytep src, lzo_uint  src_len,
108                                 lzo_bytep dst, lzo_uintp dst_len,
109                                 lzo_voidp wrkmem );
110 LZO_EXTERN(int)
111 lzo1c_8_compress        ( const lzo_bytep src, lzo_uint  src_len,
112                                 lzo_bytep dst, lzo_uintp dst_len,
113                                 lzo_voidp wrkmem );
114 LZO_EXTERN(int)
115 lzo1c_9_compress        ( const lzo_bytep src, lzo_uint  src_len,
116                                 lzo_bytep dst, lzo_uintp dst_len,
117                                 lzo_voidp wrkmem );
118 
119 
120 /***********************************************************************
121 // better compression ratio at the cost of more memory and time
122 ************************************************************************/
123 
124 #define LZO1C_99_MEM_COMPRESS   ((lzo_uint32_t) (65536L * lzo_sizeof_dict_t))
125 
126 LZO_EXTERN(int)
127 lzo1c_99_compress       ( const lzo_bytep src, lzo_uint  src_len,
128                                 lzo_bytep dst, lzo_uintp dst_len,
129                                 lzo_voidp wrkmem );
130 
131 
132 #define LZO1C_999_MEM_COMPRESS  ((lzo_uint32_t) (5 * 16384L * sizeof(short)))
133 
134 LZO_EXTERN(int)
135 lzo1c_999_compress      ( const lzo_bytep src, lzo_uint  src_len,
136                                 lzo_bytep dst, lzo_uintp dst_len,
137                                 lzo_voidp wrkmem );
138 
139 
140 
141 #ifdef __cplusplus
142 } /* extern "C" */
143 #endif
144 
145 #endif /* already included */
146 
147 
148 /* vim:set ts=4 sw=4 et: */
149