cannam@101
|
1
|
cannam@101
|
2 /*-------------------------------------------------------------*/
|
cannam@101
|
3 /*--- Public header file for the library. ---*/
|
cannam@101
|
4 /*--- bzlib.h ---*/
|
cannam@101
|
5 /*-------------------------------------------------------------*/
|
cannam@101
|
6
|
cannam@101
|
7 /* ------------------------------------------------------------------
|
cannam@101
|
8 This file is part of bzip2/libbzip2, a program and library for
|
cannam@101
|
9 lossless, block-sorting data compression.
|
cannam@101
|
10
|
cannam@101
|
11 bzip2/libbzip2 version 1.0.6 of 6 September 2010
|
cannam@101
|
12 Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
|
cannam@101
|
13
|
cannam@101
|
14 Please read the WARNING, DISCLAIMER and PATENTS sections in the
|
cannam@101
|
15 README file.
|
cannam@101
|
16
|
cannam@101
|
17 This program is released under the terms of the license contained
|
cannam@101
|
18 in the file LICENSE.
|
cannam@101
|
19 ------------------------------------------------------------------ */
|
cannam@101
|
20
|
cannam@101
|
21
|
cannam@101
|
22 #ifndef _BZLIB_H
|
cannam@101
|
23 #define _BZLIB_H
|
cannam@101
|
24
|
cannam@101
|
25 #ifdef __cplusplus
|
cannam@101
|
26 extern "C" {
|
cannam@101
|
27 #endif
|
cannam@101
|
28
|
cannam@101
|
29 #define BZ_RUN 0
|
cannam@101
|
30 #define BZ_FLUSH 1
|
cannam@101
|
31 #define BZ_FINISH 2
|
cannam@101
|
32
|
cannam@101
|
33 #define BZ_OK 0
|
cannam@101
|
34 #define BZ_RUN_OK 1
|
cannam@101
|
35 #define BZ_FLUSH_OK 2
|
cannam@101
|
36 #define BZ_FINISH_OK 3
|
cannam@101
|
37 #define BZ_STREAM_END 4
|
cannam@101
|
38 #define BZ_SEQUENCE_ERROR (-1)
|
cannam@101
|
39 #define BZ_PARAM_ERROR (-2)
|
cannam@101
|
40 #define BZ_MEM_ERROR (-3)
|
cannam@101
|
41 #define BZ_DATA_ERROR (-4)
|
cannam@101
|
42 #define BZ_DATA_ERROR_MAGIC (-5)
|
cannam@101
|
43 #define BZ_IO_ERROR (-6)
|
cannam@101
|
44 #define BZ_UNEXPECTED_EOF (-7)
|
cannam@101
|
45 #define BZ_OUTBUFF_FULL (-8)
|
cannam@101
|
46 #define BZ_CONFIG_ERROR (-9)
|
cannam@101
|
47
|
cannam@101
|
48 typedef
|
cannam@101
|
49 struct {
|
cannam@101
|
50 char *next_in;
|
cannam@101
|
51 unsigned int avail_in;
|
cannam@101
|
52 unsigned int total_in_lo32;
|
cannam@101
|
53 unsigned int total_in_hi32;
|
cannam@101
|
54
|
cannam@101
|
55 char *next_out;
|
cannam@101
|
56 unsigned int avail_out;
|
cannam@101
|
57 unsigned int total_out_lo32;
|
cannam@101
|
58 unsigned int total_out_hi32;
|
cannam@101
|
59
|
cannam@101
|
60 void *state;
|
cannam@101
|
61
|
cannam@101
|
62 void *(*bzalloc)(void *,int,int);
|
cannam@101
|
63 void (*bzfree)(void *,void *);
|
cannam@101
|
64 void *opaque;
|
cannam@101
|
65 }
|
cannam@101
|
66 bz_stream;
|
cannam@101
|
67
|
cannam@101
|
68
|
cannam@101
|
69 #ifndef BZ_IMPORT
|
cannam@101
|
70 #define BZ_EXPORT
|
cannam@101
|
71 #endif
|
cannam@101
|
72
|
cannam@101
|
73 #ifndef BZ_NO_STDIO
|
cannam@101
|
74 /* Need a definitition for FILE */
|
cannam@101
|
75 #include <stdio.h>
|
cannam@101
|
76 #endif
|
cannam@101
|
77
|
cannam@101
|
78 #ifdef _WIN32
|
cannam@101
|
79 # include <windows.h>
|
cannam@101
|
80 # ifdef small
|
cannam@101
|
81 /* windows.h define small to char */
|
cannam@101
|
82 # undef small
|
cannam@101
|
83 # endif
|
cannam@101
|
84 # ifdef BZ_EXPORT
|
cannam@101
|
85 # define BZ_API(func) WINAPI func
|
cannam@101
|
86 # define BZ_EXTERN extern
|
cannam@101
|
87 # else
|
cannam@101
|
88 /* import windows dll dynamically */
|
cannam@101
|
89 # define BZ_API(func) (WINAPI * func)
|
cannam@101
|
90 # define BZ_EXTERN
|
cannam@101
|
91 # endif
|
cannam@101
|
92 #else
|
cannam@101
|
93 # define BZ_API(func) func
|
cannam@101
|
94 # define BZ_EXTERN extern
|
cannam@101
|
95 #endif
|
cannam@101
|
96
|
cannam@101
|
97
|
cannam@101
|
98 /*-- Core (low-level) library functions --*/
|
cannam@101
|
99
|
cannam@101
|
100 BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
|
cannam@101
|
101 bz_stream* strm,
|
cannam@101
|
102 int blockSize100k,
|
cannam@101
|
103 int verbosity,
|
cannam@101
|
104 int workFactor
|
cannam@101
|
105 );
|
cannam@101
|
106
|
cannam@101
|
107 BZ_EXTERN int BZ_API(BZ2_bzCompress) (
|
cannam@101
|
108 bz_stream* strm,
|
cannam@101
|
109 int action
|
cannam@101
|
110 );
|
cannam@101
|
111
|
cannam@101
|
112 BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
|
cannam@101
|
113 bz_stream* strm
|
cannam@101
|
114 );
|
cannam@101
|
115
|
cannam@101
|
116 BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
|
cannam@101
|
117 bz_stream *strm,
|
cannam@101
|
118 int verbosity,
|
cannam@101
|
119 int small
|
cannam@101
|
120 );
|
cannam@101
|
121
|
cannam@101
|
122 BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
|
cannam@101
|
123 bz_stream* strm
|
cannam@101
|
124 );
|
cannam@101
|
125
|
cannam@101
|
126 BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
|
cannam@101
|
127 bz_stream *strm
|
cannam@101
|
128 );
|
cannam@101
|
129
|
cannam@101
|
130
|
cannam@101
|
131
|
cannam@101
|
132 /*-- High(er) level library functions --*/
|
cannam@101
|
133
|
cannam@101
|
134 #ifndef BZ_NO_STDIO
|
cannam@101
|
135 #define BZ_MAX_UNUSED 5000
|
cannam@101
|
136
|
cannam@101
|
137 typedef void BZFILE;
|
cannam@101
|
138
|
cannam@101
|
139 BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) (
|
cannam@101
|
140 int* bzerror,
|
cannam@101
|
141 FILE* f,
|
cannam@101
|
142 int verbosity,
|
cannam@101
|
143 int small,
|
cannam@101
|
144 void* unused,
|
cannam@101
|
145 int nUnused
|
cannam@101
|
146 );
|
cannam@101
|
147
|
cannam@101
|
148 BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
|
cannam@101
|
149 int* bzerror,
|
cannam@101
|
150 BZFILE* b
|
cannam@101
|
151 );
|
cannam@101
|
152
|
cannam@101
|
153 BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
|
cannam@101
|
154 int* bzerror,
|
cannam@101
|
155 BZFILE* b,
|
cannam@101
|
156 void** unused,
|
cannam@101
|
157 int* nUnused
|
cannam@101
|
158 );
|
cannam@101
|
159
|
cannam@101
|
160 BZ_EXTERN int BZ_API(BZ2_bzRead) (
|
cannam@101
|
161 int* bzerror,
|
cannam@101
|
162 BZFILE* b,
|
cannam@101
|
163 void* buf,
|
cannam@101
|
164 int len
|
cannam@101
|
165 );
|
cannam@101
|
166
|
cannam@101
|
167 BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
|
cannam@101
|
168 int* bzerror,
|
cannam@101
|
169 FILE* f,
|
cannam@101
|
170 int blockSize100k,
|
cannam@101
|
171 int verbosity,
|
cannam@101
|
172 int workFactor
|
cannam@101
|
173 );
|
cannam@101
|
174
|
cannam@101
|
175 BZ_EXTERN void BZ_API(BZ2_bzWrite) (
|
cannam@101
|
176 int* bzerror,
|
cannam@101
|
177 BZFILE* b,
|
cannam@101
|
178 void* buf,
|
cannam@101
|
179 int len
|
cannam@101
|
180 );
|
cannam@101
|
181
|
cannam@101
|
182 BZ_EXTERN void BZ_API(BZ2_bzWriteClose) (
|
cannam@101
|
183 int* bzerror,
|
cannam@101
|
184 BZFILE* b,
|
cannam@101
|
185 int abandon,
|
cannam@101
|
186 unsigned int* nbytes_in,
|
cannam@101
|
187 unsigned int* nbytes_out
|
cannam@101
|
188 );
|
cannam@101
|
189
|
cannam@101
|
190 BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) (
|
cannam@101
|
191 int* bzerror,
|
cannam@101
|
192 BZFILE* b,
|
cannam@101
|
193 int abandon,
|
cannam@101
|
194 unsigned int* nbytes_in_lo32,
|
cannam@101
|
195 unsigned int* nbytes_in_hi32,
|
cannam@101
|
196 unsigned int* nbytes_out_lo32,
|
cannam@101
|
197 unsigned int* nbytes_out_hi32
|
cannam@101
|
198 );
|
cannam@101
|
199 #endif
|
cannam@101
|
200
|
cannam@101
|
201
|
cannam@101
|
202 /*-- Utility functions --*/
|
cannam@101
|
203
|
cannam@101
|
204 BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
|
cannam@101
|
205 char* dest,
|
cannam@101
|
206 unsigned int* destLen,
|
cannam@101
|
207 char* source,
|
cannam@101
|
208 unsigned int sourceLen,
|
cannam@101
|
209 int blockSize100k,
|
cannam@101
|
210 int verbosity,
|
cannam@101
|
211 int workFactor
|
cannam@101
|
212 );
|
cannam@101
|
213
|
cannam@101
|
214 BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
|
cannam@101
|
215 char* dest,
|
cannam@101
|
216 unsigned int* destLen,
|
cannam@101
|
217 char* source,
|
cannam@101
|
218 unsigned int sourceLen,
|
cannam@101
|
219 int small,
|
cannam@101
|
220 int verbosity
|
cannam@101
|
221 );
|
cannam@101
|
222
|
cannam@101
|
223
|
cannam@101
|
224 /*--
|
cannam@101
|
225 Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
|
cannam@101
|
226 to support better zlib compatibility.
|
cannam@101
|
227 This code is not _officially_ part of libbzip2 (yet);
|
cannam@101
|
228 I haven't tested it, documented it, or considered the
|
cannam@101
|
229 threading-safeness of it.
|
cannam@101
|
230 If this code breaks, please contact both Yoshioka and me.
|
cannam@101
|
231 --*/
|
cannam@101
|
232
|
cannam@101
|
233 BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
|
cannam@101
|
234 void
|
cannam@101
|
235 );
|
cannam@101
|
236
|
cannam@101
|
237 #ifndef BZ_NO_STDIO
|
cannam@101
|
238 BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
|
cannam@101
|
239 const char *path,
|
cannam@101
|
240 const char *mode
|
cannam@101
|
241 );
|
cannam@101
|
242
|
cannam@101
|
243 BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
|
cannam@101
|
244 int fd,
|
cannam@101
|
245 const char *mode
|
cannam@101
|
246 );
|
cannam@101
|
247
|
cannam@101
|
248 BZ_EXTERN int BZ_API(BZ2_bzread) (
|
cannam@101
|
249 BZFILE* b,
|
cannam@101
|
250 void* buf,
|
cannam@101
|
251 int len
|
cannam@101
|
252 );
|
cannam@101
|
253
|
cannam@101
|
254 BZ_EXTERN int BZ_API(BZ2_bzwrite) (
|
cannam@101
|
255 BZFILE* b,
|
cannam@101
|
256 void* buf,
|
cannam@101
|
257 int len
|
cannam@101
|
258 );
|
cannam@101
|
259
|
cannam@101
|
260 BZ_EXTERN int BZ_API(BZ2_bzflush) (
|
cannam@101
|
261 BZFILE* b
|
cannam@101
|
262 );
|
cannam@101
|
263
|
cannam@101
|
264 BZ_EXTERN void BZ_API(BZ2_bzclose) (
|
cannam@101
|
265 BZFILE* b
|
cannam@101
|
266 );
|
cannam@101
|
267
|
cannam@101
|
268 BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
|
cannam@101
|
269 BZFILE *b,
|
cannam@101
|
270 int *errnum
|
cannam@101
|
271 );
|
cannam@101
|
272 #endif
|
cannam@101
|
273
|
cannam@101
|
274 #ifdef __cplusplus
|
cannam@101
|
275 }
|
cannam@101
|
276 #endif
|
cannam@101
|
277
|
cannam@101
|
278 #endif
|
cannam@101
|
279
|
cannam@101
|
280 /*-------------------------------------------------------------*/
|
cannam@101
|
281 /*--- end bzlib.h ---*/
|
cannam@101
|
282 /*-------------------------------------------------------------*/
|