VM: full munmap
[minix.git] / dist / bzip2 / bzlib.h
blobc5b75d6d8ff99ce91fcfd7c49bbf0bcd757079fd
2 /*-------------------------------------------------------------*/
3 /*--- Public header file for the library. ---*/
4 /*--- bzlib.h ---*/
5 /*-------------------------------------------------------------*/
7 /* ------------------------------------------------------------------
8 This file is part of bzip2/libbzip2, a program and library for
9 lossless, block-sorting data compression.
11 bzip2/libbzip2 version 1.0.5 of 10 December 2007
12 Copyright (C) 1996-2007 Julian Seward <jseward@bzip.org>
14 Please read the WARNING, DISCLAIMER and PATENTS sections in the
15 README file.
17 This program is released under the terms of the license contained
18 in the file LICENSE.
19 ------------------------------------------------------------------ */
22 #ifndef _BZLIB_H
23 #define _BZLIB_H
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
29 #define BZ_RUN 0
30 #define BZ_FLUSH 1
31 #define BZ_FINISH 2
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)
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;
55 char *next_out;
56 unsigned int avail_out;
57 unsigned int total_out_lo32;
58 unsigned int total_out_hi32;
60 void *state;
62 void *(*bzalloc)(void *,int,int);
63 void (*bzfree)(void *,void *);
64 void *opaque;
66 bz_stream;
69 #ifndef BZ_IMPORT
70 #define BZ_EXPORT
71 #endif
73 #ifndef BZ_NO_STDIO
74 /* Need a definitition for FILE */
75 #include <stdio.h>
76 #endif
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
98 /*-- Core (low-level) library functions --*/
100 BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
101 bz_stream* strm,
102 int blockSize100k,
103 int verbosity,
104 int workFactor
107 BZ_EXTERN int BZ_API(BZ2_bzCompress) (
108 bz_stream* strm,
109 int action
112 BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
113 bz_stream* strm
116 BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
117 bz_stream *strm,
118 int verbosity,
119 int small
122 BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
123 bz_stream* strm
126 BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
127 bz_stream *strm
132 /*-- High(er) level library functions --*/
134 #ifndef BZ_NO_STDIO
135 #define BZ_MAX_UNUSED 5000
137 typedef void BZFILE;
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
148 BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
149 int* bzerror,
150 BZFILE* b
153 BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
154 int* bzerror,
155 BZFILE* b,
156 void** unused,
157 int* nUnused
160 BZ_EXTERN int BZ_API(BZ2_bzRead) (
161 int* bzerror,
162 BZFILE* b,
163 void* buf,
164 int len
167 BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
168 int* bzerror,
169 FILE* f,
170 int blockSize100k,
171 int verbosity,
172 int workFactor
175 BZ_EXTERN void BZ_API(BZ2_bzWrite) (
176 int* bzerror,
177 BZFILE* b,
178 void* buf,
179 int len
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
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
199 #endif
202 /*-- Utility functions --*/
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
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
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 --*/
233 BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
234 void
237 #ifndef BZ_NO_STDIO
238 BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
239 const char *path,
240 const char *mode
243 BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
244 int fd,
245 const char *mode
248 BZ_EXTERN int BZ_API(BZ2_bzread) (
249 BZFILE* b,
250 void* buf,
251 int len
254 BZ_EXTERN int BZ_API(BZ2_bzwrite) (
255 BZFILE* b,
256 void* buf,
257 int len
260 BZ_EXTERN int BZ_API(BZ2_bzflush) (
261 BZFILE* b
264 BZ_EXTERN void BZ_API(BZ2_bzclose) (
265 BZFILE* b
268 BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
269 BZFILE *b,
270 int *errnum
272 #endif
274 #ifdef __cplusplus
276 #endif
278 #endif
280 /*-------------------------------------------------------------*/
281 /*--- end bzlib.h ---*/
282 /*-------------------------------------------------------------*/