Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / bzlib.h @ 13

History | View | Annotate | Download (6.16 KB)

1 13 up20180614
/*        $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
/*-------------------------------------------------------------*/