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