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