You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					283 lines
				
				6.1 KiB
			
		
		
			
		
	
	
					283 lines
				
				6.1 KiB
			| 
											6 years ago
										 | 
 | ||
|  | /*-------------------------------------------------------------*/
 | ||
|  | /*--- 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.6 of 6 September 2010
 | ||
|  |    Copyright (C) 1996-2010 Julian Seward <jseward@bzip.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 ---*/
 | ||
|  | /*-------------------------------------------------------------*/
 |