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