Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
23 | h266 | 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 | /*-------------------------------------------------------------*/ |