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