123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- /*-------------------------------------------------------------*/
- /*--- Public header file for the library. ---*/
- /*--- bzlib.h ---*/
- /*-------------------------------------------------------------*/
- /* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
- bzip2/libbzip2 version 1.0.8 of 13 July 2019
- Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
- #ifndef _BZLIB_H
- #define _BZLIB_H
- #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
- #ifndef BZ_NO_STDIO
- /* Need a definitition for FILE */
- #include <stdio.h>
- #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
- 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 (tsuneo@rr.iij4u.or.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 ---*/
- /*-------------------------------------------------------------*/
|