178556Sobrien 278556Sobrien/*-------------------------------------------------------------*/ 378556Sobrien/*--- Public header file for the library. ---*/ 478556Sobrien/*--- bzlib.h ---*/ 578556Sobrien/*-------------------------------------------------------------*/ 678556Sobrien 7167974Sdelphij/* ------------------------------------------------------------------ 8167974Sdelphij This file is part of bzip2/libbzip2, a program and library for 9167974Sdelphij lossless, block-sorting data compression. 1078556Sobrien 11215041Sobrien bzip2/libbzip2 version 1.0.6 of 6 September 2010 12215041Sobrien Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org> 1378556Sobrien 14167974Sdelphij Please read the WARNING, DISCLAIMER and PATENTS sections in the 15167974Sdelphij README file. 1678556Sobrien 17167974Sdelphij This program is released under the terms of the license contained 18167974Sdelphij in the file LICENSE. 19167974Sdelphij ------------------------------------------------------------------ */ 2078556Sobrien 2178556Sobrien 2278556Sobrien#ifndef _BZLIB_H 2378556Sobrien#define _BZLIB_H 2478556Sobrien 2578556Sobrien#ifdef __cplusplus 2678556Sobrienextern "C" { 2778556Sobrien#endif 2878556Sobrien 2978556Sobrien#define BZ_RUN 0 3078556Sobrien#define BZ_FLUSH 1 3178556Sobrien#define BZ_FINISH 2 3278556Sobrien 3378556Sobrien#define BZ_OK 0 3478556Sobrien#define BZ_RUN_OK 1 3578556Sobrien#define BZ_FLUSH_OK 2 3678556Sobrien#define BZ_FINISH_OK 3 3778556Sobrien#define BZ_STREAM_END 4 3878556Sobrien#define BZ_SEQUENCE_ERROR (-1) 3978556Sobrien#define BZ_PARAM_ERROR (-2) 4078556Sobrien#define BZ_MEM_ERROR (-3) 4178556Sobrien#define BZ_DATA_ERROR (-4) 4278556Sobrien#define BZ_DATA_ERROR_MAGIC (-5) 4378556Sobrien#define BZ_IO_ERROR (-6) 4478556Sobrien#define BZ_UNEXPECTED_EOF (-7) 4578556Sobrien#define BZ_OUTBUFF_FULL (-8) 4678556Sobrien#define BZ_CONFIG_ERROR (-9) 4778556Sobrien 4878556Sobrientypedef 4978556Sobrien struct { 5078556Sobrien char *next_in; 5178556Sobrien unsigned int avail_in; 5278556Sobrien unsigned int total_in_lo32; 5378556Sobrien unsigned int total_in_hi32; 5478556Sobrien 5578556Sobrien char *next_out; 5678556Sobrien unsigned int avail_out; 5778556Sobrien unsigned int total_out_lo32; 5878556Sobrien unsigned int total_out_hi32; 5978556Sobrien 6078556Sobrien void *state; 6178556Sobrien 6278556Sobrien void *(*bzalloc)(void *,int,int); 6378556Sobrien void (*bzfree)(void *,void *); 6478556Sobrien void *opaque; 6578556Sobrien } 6678556Sobrien bz_stream; 6778556Sobrien 6878556Sobrien 6978556Sobrien#ifndef BZ_IMPORT 7078556Sobrien#define BZ_EXPORT 7178556Sobrien#endif 7278556Sobrien 73146293Sobrien#ifndef BZ_NO_STDIO 7490067Ssobomax/* Need a definitition for FILE */ 7590067Ssobomax#include <stdio.h> 76146293Sobrien#endif 7790067Ssobomax 7878556Sobrien#ifdef _WIN32 7978556Sobrien# include <windows.h> 8078556Sobrien# ifdef small 8178556Sobrien /* windows.h define small to char */ 8278556Sobrien# undef small 8378556Sobrien# endif 8478556Sobrien# ifdef BZ_EXPORT 8578556Sobrien# define BZ_API(func) WINAPI func 8678556Sobrien# define BZ_EXTERN extern 8778556Sobrien# else 8878556Sobrien /* import windows dll dynamically */ 8978556Sobrien# define BZ_API(func) (WINAPI * func) 9078556Sobrien# define BZ_EXTERN 9178556Sobrien# endif 9278556Sobrien#else 9378556Sobrien# define BZ_API(func) func 9478556Sobrien# define BZ_EXTERN extern 9578556Sobrien#endif 9678556Sobrien 9778556Sobrien 9878556Sobrien/*-- Core (low-level) library functions --*/ 9978556Sobrien 10078556SobrienBZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( 10178556Sobrien bz_stream* strm, 10278556Sobrien int blockSize100k, 10378556Sobrien int verbosity, 10478556Sobrien int workFactor 10578556Sobrien ); 10678556Sobrien 10778556SobrienBZ_EXTERN int BZ_API(BZ2_bzCompress) ( 10878556Sobrien bz_stream* strm, 10978556Sobrien int action 11078556Sobrien ); 11178556Sobrien 11278556SobrienBZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( 11378556Sobrien bz_stream* strm 11478556Sobrien ); 11578556Sobrien 11678556SobrienBZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( 11778556Sobrien bz_stream *strm, 11878556Sobrien int verbosity, 11978556Sobrien int small 12078556Sobrien ); 12178556Sobrien 12278556SobrienBZ_EXTERN int BZ_API(BZ2_bzDecompress) ( 12378556Sobrien bz_stream* strm 12478556Sobrien ); 12578556Sobrien 12678556SobrienBZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( 12778556Sobrien bz_stream *strm 12878556Sobrien ); 12978556Sobrien 13078556Sobrien 13178556Sobrien 13278556Sobrien/*-- High(er) level library functions --*/ 13378556Sobrien 13478556Sobrien#ifndef BZ_NO_STDIO 13578556Sobrien#define BZ_MAX_UNUSED 5000 13678556Sobrien 13778556Sobrientypedef void BZFILE; 13878556Sobrien 13978556SobrienBZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( 14078556Sobrien int* bzerror, 14178556Sobrien FILE* f, 14278556Sobrien int verbosity, 14378556Sobrien int small, 14478556Sobrien void* unused, 14578556Sobrien int nUnused 14678556Sobrien ); 14778556Sobrien 14878556SobrienBZ_EXTERN void BZ_API(BZ2_bzReadClose) ( 14978556Sobrien int* bzerror, 15078556Sobrien BZFILE* b 15178556Sobrien ); 15278556Sobrien 15378556SobrienBZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( 15478556Sobrien int* bzerror, 15578556Sobrien BZFILE* b, 15678556Sobrien void** unused, 15778556Sobrien int* nUnused 15878556Sobrien ); 15978556Sobrien 16078556SobrienBZ_EXTERN int BZ_API(BZ2_bzRead) ( 16178556Sobrien int* bzerror, 16278556Sobrien BZFILE* b, 16378556Sobrien void* buf, 16478556Sobrien int len 16578556Sobrien ); 16678556Sobrien 16778556SobrienBZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( 16878556Sobrien int* bzerror, 16978556Sobrien FILE* f, 17078556Sobrien int blockSize100k, 17178556Sobrien int verbosity, 17278556Sobrien int workFactor 17378556Sobrien ); 17478556Sobrien 17578556SobrienBZ_EXTERN void BZ_API(BZ2_bzWrite) ( 17678556Sobrien int* bzerror, 17778556Sobrien BZFILE* b, 17878556Sobrien void* buf, 17978556Sobrien int len 18078556Sobrien ); 18178556Sobrien 18278556SobrienBZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( 18378556Sobrien int* bzerror, 18478556Sobrien BZFILE* b, 18578556Sobrien int abandon, 18678556Sobrien unsigned int* nbytes_in, 18778556Sobrien unsigned int* nbytes_out 18878556Sobrien ); 18978556Sobrien 19078556SobrienBZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( 19178556Sobrien int* bzerror, 19278556Sobrien BZFILE* b, 19378556Sobrien int abandon, 19478556Sobrien unsigned int* nbytes_in_lo32, 19578556Sobrien unsigned int* nbytes_in_hi32, 19678556Sobrien unsigned int* nbytes_out_lo32, 19778556Sobrien unsigned int* nbytes_out_hi32 19878556Sobrien ); 19978556Sobrien#endif 20078556Sobrien 20178556Sobrien 20278556Sobrien/*-- Utility functions --*/ 20378556Sobrien 20478556SobrienBZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( 20578556Sobrien char* dest, 20678556Sobrien unsigned int* destLen, 20778556Sobrien char* source, 20878556Sobrien unsigned int sourceLen, 20978556Sobrien int blockSize100k, 21078556Sobrien int verbosity, 21178556Sobrien int workFactor 21278556Sobrien ); 21378556Sobrien 21478556SobrienBZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( 21578556Sobrien char* dest, 21678556Sobrien unsigned int* destLen, 21778556Sobrien char* source, 21878556Sobrien unsigned int sourceLen, 21978556Sobrien int small, 22078556Sobrien int verbosity 22178556Sobrien ); 22278556Sobrien 22378556Sobrien 22478556Sobrien/*-- 225167974Sdelphij Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp) 22678556Sobrien to support better zlib compatibility. 22778556Sobrien This code is not _officially_ part of libbzip2 (yet); 22878556Sobrien I haven't tested it, documented it, or considered the 22978556Sobrien threading-safeness of it. 23078556Sobrien If this code breaks, please contact both Yoshioka and me. 23178556Sobrien--*/ 23278556Sobrien 23378556SobrienBZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) ( 23478556Sobrien void 23578556Sobrien ); 23678556Sobrien 23778556Sobrien#ifndef BZ_NO_STDIO 23878556SobrienBZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) ( 23978556Sobrien const char *path, 24078556Sobrien const char *mode 24178556Sobrien ); 24278556Sobrien 24378556SobrienBZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) ( 24478556Sobrien int fd, 24578556Sobrien const char *mode 24678556Sobrien ); 24778556Sobrien 24878556SobrienBZ_EXTERN int BZ_API(BZ2_bzread) ( 24978556Sobrien BZFILE* b, 25078556Sobrien void* buf, 25178556Sobrien int len 25278556Sobrien ); 25378556Sobrien 25478556SobrienBZ_EXTERN int BZ_API(BZ2_bzwrite) ( 25578556Sobrien BZFILE* b, 25678556Sobrien void* buf, 25778556Sobrien int len 25878556Sobrien ); 25978556Sobrien 26078556SobrienBZ_EXTERN int BZ_API(BZ2_bzflush) ( 26178556Sobrien BZFILE* b 26278556Sobrien ); 26378556Sobrien 26478556SobrienBZ_EXTERN void BZ_API(BZ2_bzclose) ( 26578556Sobrien BZFILE* b 26678556Sobrien ); 26778556Sobrien 26878556SobrienBZ_EXTERN const char * BZ_API(BZ2_bzerror) ( 26978556Sobrien BZFILE *b, 27078556Sobrien int *errnum 27178556Sobrien ); 27278556Sobrien#endif 27378556Sobrien 27478556Sobrien#ifdef __cplusplus 27578556Sobrien} 27678556Sobrien#endif 27778556Sobrien 27878556Sobrien#endif 27978556Sobrien 28078556Sobrien/*-------------------------------------------------------------*/ 28178556Sobrien/*--- end bzlib.h ---*/ 28278556Sobrien/*-------------------------------------------------------------*/ 283