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