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