Blame


1 ff3adf60 2004-04-14 devnull /*
2 ff3adf60 2004-04-14 devnull * THIS FILE IS NOT IDENTICAL TO THE ORIGINAL
3 ff3adf60 2004-04-14 devnull * FROM THE BZIP2 DISTRIBUTION.
4 ff3adf60 2004-04-14 devnull *
5 ff3adf60 2004-04-14 devnull * It has been modified, mainly to break the library
6 ff3adf60 2004-04-14 devnull * into smaller pieces.
7 ff3adf60 2004-04-14 devnull *
8 ff3adf60 2004-04-14 devnull * Russ Cox
9 ff3adf60 2004-04-14 devnull * rsc@plan9.bell-labs.com
10 ff3adf60 2004-04-14 devnull * July 2000
11 ff3adf60 2004-04-14 devnull */
12 ff3adf60 2004-04-14 devnull
13 ff3adf60 2004-04-14 devnull
14 ff3adf60 2004-04-14 devnull /*-------------------------------------------------------------*/
15 ff3adf60 2004-04-14 devnull /*--- Public header file for the library. ---*/
16 ff3adf60 2004-04-14 devnull /*--- bzlib.h ---*/
17 ff3adf60 2004-04-14 devnull /*-------------------------------------------------------------*/
18 ff3adf60 2004-04-14 devnull
19 ff3adf60 2004-04-14 devnull /*--
20 ff3adf60 2004-04-14 devnull This file is a part of bzip2 and/or libbzip2, a program and
21 ff3adf60 2004-04-14 devnull library for lossless, block-sorting data compression.
22 ff3adf60 2004-04-14 devnull
23 ff3adf60 2004-04-14 devnull Copyright (C) 1996-2000 Julian R Seward. All rights reserved.
24 ff3adf60 2004-04-14 devnull
25 ff3adf60 2004-04-14 devnull Redistribution and use in source and binary forms, with or without
26 ff3adf60 2004-04-14 devnull modification, are permitted provided that the following conditions
27 ff3adf60 2004-04-14 devnull are met:
28 ff3adf60 2004-04-14 devnull
29 ff3adf60 2004-04-14 devnull 1. Redistributions of source code must retain the above copyright
30 ff3adf60 2004-04-14 devnull notice, this list of conditions and the following disclaimer.
31 ff3adf60 2004-04-14 devnull
32 ff3adf60 2004-04-14 devnull 2. The origin of this software must not be misrepresented; you must
33 ff3adf60 2004-04-14 devnull not claim that you wrote the original software. If you use this
34 ff3adf60 2004-04-14 devnull software in a product, an acknowledgment in the product
35 ff3adf60 2004-04-14 devnull documentation would be appreciated but is not required.
36 ff3adf60 2004-04-14 devnull
37 ff3adf60 2004-04-14 devnull 3. Altered source versions must be plainly marked as such, and must
38 ff3adf60 2004-04-14 devnull not be misrepresented as being the original software.
39 ff3adf60 2004-04-14 devnull
40 ff3adf60 2004-04-14 devnull 4. The name of the author may not be used to endorse or promote
41 ff3adf60 2004-04-14 devnull products derived from this software without specific prior written
42 ff3adf60 2004-04-14 devnull permission.
43 ff3adf60 2004-04-14 devnull
44 ff3adf60 2004-04-14 devnull THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
45 ff3adf60 2004-04-14 devnull OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
46 ff3adf60 2004-04-14 devnull WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
47 ff3adf60 2004-04-14 devnull ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
48 ff3adf60 2004-04-14 devnull DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
49 ff3adf60 2004-04-14 devnull DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
50 ff3adf60 2004-04-14 devnull GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
51 ff3adf60 2004-04-14 devnull INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
52 ff3adf60 2004-04-14 devnull WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
53 ff3adf60 2004-04-14 devnull NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
54 ff3adf60 2004-04-14 devnull SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
55 ff3adf60 2004-04-14 devnull
56 ff3adf60 2004-04-14 devnull Julian Seward, Cambridge, UK.
57 ff3adf60 2004-04-14 devnull jseward@acm.org
58 ff3adf60 2004-04-14 devnull bzip2/libbzip2 version 1.0 of 21 March 2000
59 ff3adf60 2004-04-14 devnull
60 ff3adf60 2004-04-14 devnull This program is based on (at least) the work of:
61 ff3adf60 2004-04-14 devnull Mike Burrows
62 ff3adf60 2004-04-14 devnull David Wheeler
63 ff3adf60 2004-04-14 devnull Peter Fenwick
64 ff3adf60 2004-04-14 devnull Alistair Moffat
65 ff3adf60 2004-04-14 devnull Radford Neal
66 ff3adf60 2004-04-14 devnull Ian H. Witten
67 ff3adf60 2004-04-14 devnull Robert Sedgewick
68 ff3adf60 2004-04-14 devnull Jon L. Bentley
69 ff3adf60 2004-04-14 devnull
70 ff3adf60 2004-04-14 devnull For more information on these sources, see the manual.
71 ff3adf60 2004-04-14 devnull --*/
72 ff3adf60 2004-04-14 devnull
73 ff3adf60 2004-04-14 devnull #ifndef _BZLIB_H
74 ff3adf60 2004-04-14 devnull #define _BZLIB_H
75 ff3adf60 2004-04-14 devnull
76 ff3adf60 2004-04-14 devnull #ifdef __cplusplus
77 ff3adf60 2004-04-14 devnull extern "C" {
78 ff3adf60 2004-04-14 devnull #endif
79 ff3adf60 2004-04-14 devnull
80 ff3adf60 2004-04-14 devnull #define BZ_RUN 0
81 ff3adf60 2004-04-14 devnull #define BZ_FLUSH 1
82 ff3adf60 2004-04-14 devnull #define BZ_FINISH 2
83 ff3adf60 2004-04-14 devnull
84 ff3adf60 2004-04-14 devnull #define BZ_OK 0
85 ff3adf60 2004-04-14 devnull #define BZ_RUN_OK 1
86 ff3adf60 2004-04-14 devnull #define BZ_FLUSH_OK 2
87 ff3adf60 2004-04-14 devnull #define BZ_FINISH_OK 3
88 ff3adf60 2004-04-14 devnull #define BZ_STREAM_END 4
89 ff3adf60 2004-04-14 devnull #define BZ_SEQUENCE_ERROR (-1)
90 ff3adf60 2004-04-14 devnull #define BZ_PARAM_ERROR (-2)
91 ff3adf60 2004-04-14 devnull #define BZ_MEM_ERROR (-3)
92 ff3adf60 2004-04-14 devnull #define BZ_DATA_ERROR (-4)
93 ff3adf60 2004-04-14 devnull #define BZ_DATA_ERROR_MAGIC (-5)
94 ff3adf60 2004-04-14 devnull #define BZ_IO_ERROR (-6)
95 ff3adf60 2004-04-14 devnull #define BZ_UNEXPECTED_EOF (-7)
96 ff3adf60 2004-04-14 devnull #define BZ_OUTBUFF_FULL (-8)
97 ff3adf60 2004-04-14 devnull #define BZ_CONFIG_ERROR (-9)
98 ff3adf60 2004-04-14 devnull
99 ff3adf60 2004-04-14 devnull typedef
100 ff3adf60 2004-04-14 devnull struct {
101 ff3adf60 2004-04-14 devnull char *next_in;
102 ff3adf60 2004-04-14 devnull unsigned int avail_in;
103 ff3adf60 2004-04-14 devnull unsigned int total_in_lo32;
104 ff3adf60 2004-04-14 devnull unsigned int total_in_hi32;
105 ff3adf60 2004-04-14 devnull
106 ff3adf60 2004-04-14 devnull char *next_out;
107 ff3adf60 2004-04-14 devnull unsigned int avail_out;
108 ff3adf60 2004-04-14 devnull unsigned int total_out_lo32;
109 ff3adf60 2004-04-14 devnull unsigned int total_out_hi32;
110 ff3adf60 2004-04-14 devnull
111 ff3adf60 2004-04-14 devnull void *state;
112 ff3adf60 2004-04-14 devnull
113 ff3adf60 2004-04-14 devnull void *(*bzalloc)(void *,int,int);
114 ff3adf60 2004-04-14 devnull void (*bzfree)(void *,void *);
115 ff3adf60 2004-04-14 devnull void *opaque;
116 ff3adf60 2004-04-14 devnull }
117 ff3adf60 2004-04-14 devnull bz_stream;
118 ff3adf60 2004-04-14 devnull
119 ff3adf60 2004-04-14 devnull
120 ff3adf60 2004-04-14 devnull #ifndef BZ_IMPORT
121 ff3adf60 2004-04-14 devnull #define BZ_EXPORT
122 ff3adf60 2004-04-14 devnull #endif
123 ff3adf60 2004-04-14 devnull
124 ff3adf60 2004-04-14 devnull #ifdef _WIN32
125 ff3adf60 2004-04-14 devnull # include <stdio.h>
126 ff3adf60 2004-04-14 devnull # include <windows.h>
127 ff3adf60 2004-04-14 devnull # ifdef small
128 ff3adf60 2004-04-14 devnull /* windows.h define small to char */
129 ff3adf60 2004-04-14 devnull # undef small
130 ff3adf60 2004-04-14 devnull # endif
131 ff3adf60 2004-04-14 devnull # ifdef BZ_EXPORT
132 ff3adf60 2004-04-14 devnull # define BZ_API(func) WINAPI func
133 ff3adf60 2004-04-14 devnull # define BZ_EXTERN extern
134 ff3adf60 2004-04-14 devnull # else
135 ff3adf60 2004-04-14 devnull /* import windows dll dynamically */
136 ff3adf60 2004-04-14 devnull # define BZ_API(func) (WINAPI * func)
137 ff3adf60 2004-04-14 devnull # define BZ_EXTERN
138 ff3adf60 2004-04-14 devnull # endif
139 ff3adf60 2004-04-14 devnull #else
140 ff3adf60 2004-04-14 devnull # define BZ_API(func) func
141 ff3adf60 2004-04-14 devnull # define BZ_EXTERN extern
142 ff3adf60 2004-04-14 devnull #endif
143 ff3adf60 2004-04-14 devnull
144 ff3adf60 2004-04-14 devnull
145 ff3adf60 2004-04-14 devnull /*-- Core (low-level) library functions --*/
146 ff3adf60 2004-04-14 devnull
147 ff3adf60 2004-04-14 devnull BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
148 ff3adf60 2004-04-14 devnull bz_stream* strm,
149 ff3adf60 2004-04-14 devnull int blockSize100k,
150 ff3adf60 2004-04-14 devnull int verbosity,
151 ff3adf60 2004-04-14 devnull int workFactor
152 ff3adf60 2004-04-14 devnull );
153 ff3adf60 2004-04-14 devnull
154 ff3adf60 2004-04-14 devnull BZ_EXTERN int BZ_API(BZ2_bzCompress) (
155 ff3adf60 2004-04-14 devnull bz_stream* strm,
156 ff3adf60 2004-04-14 devnull int action
157 ff3adf60 2004-04-14 devnull );
158 ff3adf60 2004-04-14 devnull
159 ff3adf60 2004-04-14 devnull BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
160 ff3adf60 2004-04-14 devnull bz_stream* strm
161 ff3adf60 2004-04-14 devnull );
162 ff3adf60 2004-04-14 devnull
163 ff3adf60 2004-04-14 devnull BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
164 ff3adf60 2004-04-14 devnull bz_stream *strm,
165 ff3adf60 2004-04-14 devnull int verbosity,
166 ff3adf60 2004-04-14 devnull int small
167 ff3adf60 2004-04-14 devnull );
168 ff3adf60 2004-04-14 devnull
169 ff3adf60 2004-04-14 devnull BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
170 ff3adf60 2004-04-14 devnull bz_stream* strm
171 ff3adf60 2004-04-14 devnull );
172 ff3adf60 2004-04-14 devnull
173 ff3adf60 2004-04-14 devnull BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
174 ff3adf60 2004-04-14 devnull bz_stream *strm
175 ff3adf60 2004-04-14 devnull );
176 ff3adf60 2004-04-14 devnull
177 ff3adf60 2004-04-14 devnull
178 ff3adf60 2004-04-14 devnull
179 ff3adf60 2004-04-14 devnull /*-- Utility functions --*/
180 ff3adf60 2004-04-14 devnull
181 ff3adf60 2004-04-14 devnull BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
182 ff3adf60 2004-04-14 devnull char* dest,
183 ff3adf60 2004-04-14 devnull unsigned int* destLen,
184 ff3adf60 2004-04-14 devnull char* source,
185 ff3adf60 2004-04-14 devnull unsigned int sourceLen,
186 ff3adf60 2004-04-14 devnull int blockSize100k,
187 ff3adf60 2004-04-14 devnull int verbosity,
188 ff3adf60 2004-04-14 devnull int workFactor
189 ff3adf60 2004-04-14 devnull );
190 ff3adf60 2004-04-14 devnull
191 ff3adf60 2004-04-14 devnull BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
192 ff3adf60 2004-04-14 devnull char* dest,
193 ff3adf60 2004-04-14 devnull unsigned int* destLen,
194 ff3adf60 2004-04-14 devnull char* source,
195 ff3adf60 2004-04-14 devnull unsigned int sourceLen,
196 ff3adf60 2004-04-14 devnull int small,
197 ff3adf60 2004-04-14 devnull int verbosity
198 ff3adf60 2004-04-14 devnull );
199 ff3adf60 2004-04-14 devnull
200 ff3adf60 2004-04-14 devnull
201 ff3adf60 2004-04-14 devnull /*--
202 ff3adf60 2004-04-14 devnull Code contributed by Yoshioka Tsuneo
203 ff3adf60 2004-04-14 devnull (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.jp),
204 ff3adf60 2004-04-14 devnull to support better zlib compatibility.
205 ff3adf60 2004-04-14 devnull This code is not _officially_ part of libbzip2 (yet);
206 ff3adf60 2004-04-14 devnull I haven't tested it, documented it, or considered the
207 ff3adf60 2004-04-14 devnull threading-safeness of it.
208 ff3adf60 2004-04-14 devnull If this code breaks, please contact both Yoshioka and me.
209 ff3adf60 2004-04-14 devnull --*/
210 ff3adf60 2004-04-14 devnull
211 ff3adf60 2004-04-14 devnull BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
212 ff3adf60 2004-04-14 devnull void
213 ff3adf60 2004-04-14 devnull );
214 ff3adf60 2004-04-14 devnull
215 ff3adf60 2004-04-14 devnull #ifdef __cplusplus
216 ff3adf60 2004-04-14 devnull }
217 ff3adf60 2004-04-14 devnull #endif
218 ff3adf60 2004-04-14 devnull
219 ff3adf60 2004-04-14 devnull #endif
220 ff3adf60 2004-04-14 devnull
221 ff3adf60 2004-04-14 devnull /*-------------------------------------------------------------*/
222 ff3adf60 2004-04-14 devnull /*--- end bzlib.h ---*/
223 ff3adf60 2004-04-14 devnull /*-------------------------------------------------------------*/