diff options
Diffstat (limited to 'include/bzlib.h')
| -rw-r--r-- | include/bzlib.h | 330 | 
1 files changed, 330 insertions, 0 deletions
| diff --git a/include/bzlib.h b/include/bzlib.h new file mode 100644 index 000000000..64f397de9 --- /dev/null +++ b/include/bzlib.h @@ -0,0 +1,330 @@ +/* + * 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 ---*/ +/*-------------------------------------------------------------*/ |