Blame bzlib.h

Packit 71fd91
Packit 71fd91
/*-------------------------------------------------------------*/
Packit 71fd91
/*--- Public header file for the library.                   ---*/
Packit 71fd91
/*---                                               bzlib.h ---*/
Packit 71fd91
/*-------------------------------------------------------------*/
Packit 71fd91
Packit 71fd91
/* ------------------------------------------------------------------
Packit 71fd91
   This file is part of bzip2/libbzip2, a program and library for
Packit 71fd91
   lossless, block-sorting data compression.
Packit 71fd91
Packit 71fd91
   bzip2/libbzip2 version 1.0.6 of 6 September 2010
Packit 71fd91
   Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
Packit 71fd91
Packit 71fd91
   Please read the WARNING, DISCLAIMER and PATENTS sections in the 
Packit 71fd91
   README file.
Packit 71fd91
Packit 71fd91
   This program is released under the terms of the license contained
Packit 71fd91
   in the file LICENSE.
Packit 71fd91
   ------------------------------------------------------------------ */
Packit 71fd91
Packit 71fd91
Packit 71fd91
#ifndef _BZLIB_H
Packit 71fd91
#define _BZLIB_H
Packit 71fd91
Packit 71fd91
#ifdef __cplusplus
Packit 71fd91
extern "C" {
Packit 71fd91
#endif
Packit 71fd91
Packit 71fd91
#define BZ_RUN               0
Packit 71fd91
#define BZ_FLUSH             1
Packit 71fd91
#define BZ_FINISH            2
Packit 71fd91
Packit 71fd91
#define BZ_OK                0
Packit 71fd91
#define BZ_RUN_OK            1
Packit 71fd91
#define BZ_FLUSH_OK          2
Packit 71fd91
#define BZ_FINISH_OK         3
Packit 71fd91
#define BZ_STREAM_END        4
Packit 71fd91
#define BZ_SEQUENCE_ERROR    (-1)
Packit 71fd91
#define BZ_PARAM_ERROR       (-2)
Packit 71fd91
#define BZ_MEM_ERROR         (-3)
Packit 71fd91
#define BZ_DATA_ERROR        (-4)
Packit 71fd91
#define BZ_DATA_ERROR_MAGIC  (-5)
Packit 71fd91
#define BZ_IO_ERROR          (-6)
Packit 71fd91
#define BZ_UNEXPECTED_EOF    (-7)
Packit 71fd91
#define BZ_OUTBUFF_FULL      (-8)
Packit 71fd91
#define BZ_CONFIG_ERROR      (-9)
Packit 71fd91
Packit 71fd91
typedef 
Packit 71fd91
   struct {
Packit 71fd91
      char *next_in;
Packit 71fd91
      unsigned int avail_in;
Packit 71fd91
      unsigned int total_in_lo32;
Packit 71fd91
      unsigned int total_in_hi32;
Packit 71fd91
Packit 71fd91
      char *next_out;
Packit 71fd91
      unsigned int avail_out;
Packit 71fd91
      unsigned int total_out_lo32;
Packit 71fd91
      unsigned int total_out_hi32;
Packit 71fd91
Packit 71fd91
      void *state;
Packit 71fd91
Packit 71fd91
      void *(*bzalloc)(void *,int,int);
Packit 71fd91
      void (*bzfree)(void *,void *);
Packit 71fd91
      void *opaque;
Packit 71fd91
   } 
Packit 71fd91
   bz_stream;
Packit 71fd91
Packit 71fd91
Packit 71fd91
#ifndef BZ_IMPORT
Packit 71fd91
#define BZ_EXPORT
Packit 71fd91
#endif
Packit 71fd91
Packit 71fd91
#ifndef BZ_NO_STDIO
Packit 71fd91
/* Need a definitition for FILE */
Packit 71fd91
#include <stdio.h>
Packit 71fd91
#endif
Packit 71fd91
Packit 71fd91
#ifdef _WIN32
Packit 71fd91
#   include <windows.h>
Packit 71fd91
#   ifdef small
Packit 71fd91
      /* windows.h define small to char */
Packit 71fd91
#      undef small
Packit 71fd91
#   endif
Packit 71fd91
#   ifdef BZ_EXPORT
Packit 71fd91
#   define BZ_API(func) WINAPI func
Packit 71fd91
#   define BZ_EXTERN extern
Packit 71fd91
#   else
Packit 71fd91
   /* import windows dll dynamically */
Packit 71fd91
#   define BZ_API(func) (WINAPI * func)
Packit 71fd91
#   define BZ_EXTERN
Packit 71fd91
#   endif
Packit 71fd91
#else
Packit 71fd91
#   define BZ_API(func) func
Packit 71fd91
#   define BZ_EXTERN extern
Packit 71fd91
#endif
Packit 71fd91
Packit 71fd91
Packit 71fd91
/*-- Core (low-level) library functions --*/
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( 
Packit 71fd91
      bz_stream* strm, 
Packit 71fd91
      int        blockSize100k, 
Packit 71fd91
      int        verbosity, 
Packit 71fd91
      int        workFactor 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzCompress) ( 
Packit 71fd91
      bz_stream* strm, 
Packit 71fd91
      int action 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( 
Packit 71fd91
      bz_stream* strm 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( 
Packit 71fd91
      bz_stream *strm, 
Packit 71fd91
      int       verbosity, 
Packit 71fd91
      int       small
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( 
Packit 71fd91
      bz_stream* strm 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( 
Packit 71fd91
      bz_stream *strm 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
Packit 71fd91
Packit 71fd91
/*-- High(er) level library functions --*/
Packit 71fd91
Packit 71fd91
#ifndef BZ_NO_STDIO
Packit 71fd91
#define BZ_MAX_UNUSED 5000
Packit 71fd91
Packit 71fd91
typedef void BZFILE;
Packit 71fd91
Packit 71fd91
BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( 
Packit 71fd91
      int*  bzerror,   
Packit 71fd91
      FILE* f, 
Packit 71fd91
      int   verbosity, 
Packit 71fd91
      int   small,
Packit 71fd91
      void* unused,    
Packit 71fd91
      int   nUnused 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( 
Packit 71fd91
      int*    bzerror, 
Packit 71fd91
      BZFILE* b 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( 
Packit 71fd91
      int*    bzerror, 
Packit 71fd91
      BZFILE* b, 
Packit 71fd91
      void**  unused,  
Packit 71fd91
      int*    nUnused 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzRead) ( 
Packit 71fd91
      int*    bzerror, 
Packit 71fd91
      BZFILE* b, 
Packit 71fd91
      void*   buf, 
Packit 71fd91
      int     len 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( 
Packit 71fd91
      int*  bzerror,      
Packit 71fd91
      FILE* f, 
Packit 71fd91
      int   blockSize100k, 
Packit 71fd91
      int   verbosity, 
Packit 71fd91
      int   workFactor 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN void BZ_API(BZ2_bzWrite) ( 
Packit 71fd91
      int*    bzerror, 
Packit 71fd91
      BZFILE* b, 
Packit 71fd91
      void*   buf, 
Packit 71fd91
      int     len 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( 
Packit 71fd91
      int*          bzerror, 
Packit 71fd91
      BZFILE*       b, 
Packit 71fd91
      int           abandon, 
Packit 71fd91
      unsigned int* nbytes_in, 
Packit 71fd91
      unsigned int* nbytes_out 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( 
Packit 71fd91
      int*          bzerror, 
Packit 71fd91
      BZFILE*       b, 
Packit 71fd91
      int           abandon, 
Packit 71fd91
      unsigned int* nbytes_in_lo32, 
Packit 71fd91
      unsigned int* nbytes_in_hi32, 
Packit 71fd91
      unsigned int* nbytes_out_lo32, 
Packit 71fd91
      unsigned int* nbytes_out_hi32
Packit 71fd91
   );
Packit 71fd91
#endif
Packit 71fd91
Packit 71fd91
Packit 71fd91
/*-- Utility functions --*/
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( 
Packit 71fd91
      char*         dest, 
Packit 71fd91
      unsigned int* destLen,
Packit 71fd91
      char*         source, 
Packit 71fd91
      unsigned int  sourceLen,
Packit 71fd91
      int           blockSize100k, 
Packit 71fd91
      int           verbosity, 
Packit 71fd91
      int           workFactor 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( 
Packit 71fd91
      char*         dest, 
Packit 71fd91
      unsigned int* destLen,
Packit 71fd91
      char*         source, 
Packit 71fd91
      unsigned int  sourceLen,
Packit 71fd91
      int           small, 
Packit 71fd91
      int           verbosity 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
Packit 71fd91
/*--
Packit 71fd91
   Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
Packit 71fd91
   to support better zlib compatibility.
Packit 71fd91
   This code is not _officially_ part of libbzip2 (yet);
Packit 71fd91
   I haven't tested it, documented it, or considered the
Packit 71fd91
   threading-safeness of it.
Packit 71fd91
   If this code breaks, please contact both Yoshioka and me.
Packit 71fd91
--*/
Packit 71fd91
Packit 71fd91
BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
Packit 71fd91
      void
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
#ifndef BZ_NO_STDIO
Packit 71fd91
BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
Packit 71fd91
      const char *path,
Packit 71fd91
      const char *mode
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
Packit 71fd91
      int        fd,
Packit 71fd91
      const char *mode
Packit 71fd91
   );
Packit 71fd91
         
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzread) (
Packit 71fd91
      BZFILE* b, 
Packit 71fd91
      void* buf, 
Packit 71fd91
      int len 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzwrite) (
Packit 71fd91
      BZFILE* b, 
Packit 71fd91
      void*   buf, 
Packit 71fd91
      int     len 
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN int BZ_API(BZ2_bzflush) (
Packit 71fd91
      BZFILE* b
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN void BZ_API(BZ2_bzclose) (
Packit 71fd91
      BZFILE* b
Packit 71fd91
   );
Packit 71fd91
Packit 71fd91
BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
Packit 71fd91
      BZFILE *b, 
Packit 71fd91
      int    *errnum
Packit 71fd91
   );
Packit 71fd91
#endif
Packit 71fd91
Packit 71fd91
#ifdef __cplusplus
Packit 71fd91
}
Packit 71fd91
#endif
Packit 71fd91
Packit 71fd91
#endif
Packit 71fd91
Packit 71fd91
/*-------------------------------------------------------------*/
Packit 71fd91
/*--- end                                           bzlib.h ---*/
Packit 71fd91
/*-------------------------------------------------------------*/