OLD | NEW |
| (Empty) |
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.6 of 6 September 2010 | |
12 Copyright (C) 1996-2010 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 /*-------------------------------------------------------------*/ | |
OLD | NEW |