|  | /* | 
|  | * This file is a modified version of bzlib.h from the bzip2-1.0.2 | 
|  | * distribution which can be found at http://sources.redhat.com/bzip2/ | 
|  | */ | 
|  |  | 
|  | /*-------------------------------------------------------------*/ | 
|  | /*--- Public header file for the library.                   ---*/ | 
|  | /*---                                               bzlib.h ---*/ | 
|  | /*-------------------------------------------------------------*/ | 
|  |  | 
|  | /*-- | 
|  | This file is a part of bzip2 and/or libbzip2, a program and | 
|  | library for lossless, block-sorting data compression. | 
|  |  | 
|  | Copyright (C) 1996-2002 Julian R Seward.  All rights reserved. | 
|  |  | 
|  | Redistribution and use in source and binary forms, with or without | 
|  | modification, are permitted provided that the following conditions | 
|  | are met: | 
|  |  | 
|  | 1. Redistributions of source code must retain the above copyright | 
|  | notice, this list of conditions and the following disclaimer. | 
|  |  | 
|  | 2. The origin of this software must not be misrepresented; you must | 
|  | not claim that you wrote the original software.  If you use this | 
|  | software in a product, an acknowledgment in the product | 
|  | documentation would be appreciated but is not required. | 
|  |  | 
|  | 3. Altered source versions must be plainly marked as such, and must | 
|  | not be misrepresented as being the original software. | 
|  |  | 
|  | 4. The name of the author may not be used to endorse or promote | 
|  | products derived from this software without specific prior written | 
|  | permission. | 
|  |  | 
|  | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS | 
|  | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 
|  | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 
|  | ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | 
|  | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | 
|  | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | 
|  | GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 
|  | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | 
|  | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | 
|  | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 
|  | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
|  |  | 
|  | Julian Seward, Cambridge, UK. | 
|  | jseward@acm.org | 
|  | bzip2/libbzip2 version 1.0 of 21 March 2000 | 
|  |  | 
|  | This program is based on (at least) the work of: | 
|  | Mike Burrows | 
|  | David Wheeler | 
|  | Peter Fenwick | 
|  | Alistair Moffat | 
|  | Radford Neal | 
|  | Ian H. Witten | 
|  | Robert Sedgewick | 
|  | Jon L. Bentley | 
|  |  | 
|  | For more information on these sources, see the manual. | 
|  | --*/ | 
|  |  | 
|  |  | 
|  | #ifndef _BZLIB_H | 
|  | #define _BZLIB_H | 
|  |  | 
|  | /* Configure for U-Boot environment */ | 
|  | #define BZ_NO_STDIO | 
|  | #define BZ_NO_COMPRESS | 
|  | /* End of configuration for U-Boot environment */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #define BZ_RUN               0 | 
|  | #define BZ_FLUSH             1 | 
|  | #define BZ_FINISH            2 | 
|  |  | 
|  | #define BZ_OK                0 | 
|  | #define BZ_RUN_OK            1 | 
|  | #define BZ_FLUSH_OK          2 | 
|  | #define BZ_FINISH_OK         3 | 
|  | #define BZ_STREAM_END        4 | 
|  | #define BZ_SEQUENCE_ERROR    (-1) | 
|  | #define BZ_PARAM_ERROR       (-2) | 
|  | #define BZ_MEM_ERROR         (-3) | 
|  | #define BZ_DATA_ERROR        (-4) | 
|  | #define BZ_DATA_ERROR_MAGIC  (-5) | 
|  | #define BZ_IO_ERROR          (-6) | 
|  | #define BZ_UNEXPECTED_EOF    (-7) | 
|  | #define BZ_OUTBUFF_FULL      (-8) | 
|  | #define BZ_CONFIG_ERROR      (-9) | 
|  |  | 
|  | typedef | 
|  | struct { | 
|  | char *next_in; | 
|  | unsigned int avail_in; | 
|  | unsigned int total_in_lo32; | 
|  | unsigned int total_in_hi32; | 
|  |  | 
|  | char *next_out; | 
|  | unsigned int avail_out; | 
|  | unsigned int total_out_lo32; | 
|  | unsigned int total_out_hi32; | 
|  |  | 
|  | void *state; | 
|  |  | 
|  | void *(*bzalloc)(void *,int,int); | 
|  | void (*bzfree)(void *,void *); | 
|  | void *opaque; | 
|  | } | 
|  | bz_stream; | 
|  |  | 
|  |  | 
|  | #ifndef BZ_IMPORT | 
|  | #define BZ_EXPORT | 
|  | #endif | 
|  |  | 
|  | #ifdef _WIN32 | 
|  | #   include <windows.h> | 
|  | #   ifdef small | 
|  | /* windows.h define small to char */ | 
|  | #      undef small | 
|  | #   endif | 
|  | #   ifdef BZ_EXPORT | 
|  | #   define BZ_API(func) WINAPI func | 
|  | #   define BZ_EXTERN extern | 
|  | #   else | 
|  | /* import windows dll dynamically */ | 
|  | #   define BZ_API(func) (WINAPI * func) | 
|  | #   define BZ_EXTERN | 
|  | #   endif | 
|  | #else | 
|  | #   define BZ_API(func) func | 
|  | #   define BZ_EXTERN extern | 
|  | #endif | 
|  |  | 
|  |  | 
|  | /*-- Core (low-level) library functions --*/ | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( | 
|  | bz_stream* strm, | 
|  | int        blockSize100k, | 
|  | int        verbosity, | 
|  | int        workFactor | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzCompress) ( | 
|  | bz_stream* strm, | 
|  | int action | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( | 
|  | bz_stream* strm | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( | 
|  | bz_stream *strm, | 
|  | int       verbosity, | 
|  | int       small | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( | 
|  | bz_stream* strm | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( | 
|  | bz_stream *strm | 
|  | ); | 
|  |  | 
|  |  | 
|  | /*-- High(er) level library functions --*/ | 
|  |  | 
|  | #ifndef BZ_NO_STDIO | 
|  | #define BZ_MAX_UNUSED 5000 | 
|  |  | 
|  | /* Need a definitition for FILE */ | 
|  | #include <stdio.h> | 
|  |  | 
|  | typedef void BZFILE; | 
|  |  | 
|  | BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( | 
|  | int*  bzerror, | 
|  | FILE* f, | 
|  | int   verbosity, | 
|  | int   small, | 
|  | void* unused, | 
|  | int   nUnused | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( | 
|  | int*    bzerror, | 
|  | BZFILE* b | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( | 
|  | int*    bzerror, | 
|  | BZFILE* b, | 
|  | void**  unused, | 
|  | int*    nUnused | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzRead) ( | 
|  | int*    bzerror, | 
|  | BZFILE* b, | 
|  | void*   buf, | 
|  | int     len | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( | 
|  | int*  bzerror, | 
|  | FILE* f, | 
|  | int   blockSize100k, | 
|  | int   verbosity, | 
|  | int   workFactor | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN void BZ_API(BZ2_bzWrite) ( | 
|  | int*    bzerror, | 
|  | BZFILE* b, | 
|  | void*   buf, | 
|  | int     len | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( | 
|  | int*          bzerror, | 
|  | BZFILE*       b, | 
|  | int           abandon, | 
|  | unsigned int* nbytes_in, | 
|  | unsigned int* nbytes_out | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( | 
|  | int*          bzerror, | 
|  | BZFILE*       b, | 
|  | int           abandon, | 
|  | unsigned int* nbytes_in_lo32, | 
|  | unsigned int* nbytes_in_hi32, | 
|  | unsigned int* nbytes_out_lo32, | 
|  | unsigned int* nbytes_out_hi32 | 
|  | ); | 
|  | #endif | 
|  |  | 
|  |  | 
|  | /*-- Utility functions --*/ | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( | 
|  | char*         dest, | 
|  | unsigned int* destLen, | 
|  | char*         source, | 
|  | unsigned int  sourceLen, | 
|  | int           blockSize100k, | 
|  | int           verbosity, | 
|  | int           workFactor | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( | 
|  | char*         dest, | 
|  | unsigned int* destLen, | 
|  | char*         source, | 
|  | unsigned int  sourceLen, | 
|  | int           small, | 
|  | int           verbosity | 
|  | ); | 
|  |  | 
|  |  | 
|  | /*-- | 
|  | Code contributed by Yoshioka Tsuneo | 
|  | (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.jp), | 
|  | to support better zlib compatibility. | 
|  | This code is not _officially_ part of libbzip2 (yet); | 
|  | I haven't tested it, documented it, or considered the | 
|  | threading-safeness of it. | 
|  | If this code breaks, please contact both Yoshioka and me. | 
|  | --*/ | 
|  |  | 
|  | BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) ( | 
|  | void | 
|  | ); | 
|  |  | 
|  | #ifndef BZ_NO_STDIO | 
|  | BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) ( | 
|  | const char *path, | 
|  | const char *mode | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) ( | 
|  | int        fd, | 
|  | const char *mode | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzread) ( | 
|  | BZFILE* b, | 
|  | void* buf, | 
|  | int len | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzwrite) ( | 
|  | BZFILE* b, | 
|  | void*   buf, | 
|  | int     len | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN int BZ_API(BZ2_bzflush) ( | 
|  | BZFILE* b | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN void BZ_API(BZ2_bzclose) ( | 
|  | BZFILE* b | 
|  | ); | 
|  |  | 
|  | BZ_EXTERN const char * BZ_API(BZ2_bzerror) ( | 
|  | BZFILE *b, | 
|  | int    *errnum | 
|  | ); | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*-------------------------------------------------------------*/ | 
|  | /*--- end                                           bzlib.h ---*/ | 
|  | /*-------------------------------------------------------------*/ |