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