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