ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitCommon/OptIO/src/bzlib.h
Revision: 1.1
Committed: Tue Feb 24 11:56:42 2009 UTC (16 years, 2 months ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_032, Mit_031, Mit_025c_branch2, Mit_025c_branch1, Mit_030, Mit_029c, Mit_030_pre1, Mit_029a, Mit_029, Mit_029_pre1, Mit_028a, Mit_025c_branch0, Mit_028, Mit_027a, Mit_027, Mit_026, Mit_025e, Mit_025d, Mit_025c, Mit_025b, Mit_025a, Mit_025, Mit_025pre2, Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_020d, TMit_020d, Mit_020c, Mit_021, Mit_021pre2, Mit_021pre1, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, Mit_018, Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, V07-05-00, Mit_016, Mit_015b, Mit_015a, Mit_015, Mit_014e, Mit_014d, Mit_014c, Mit_014b, ConvRejection-10-06-09, Mit_014a, Mit_014, Mit_014pre3, Mit_014pre2, Mit_014pre1, Mit_013d, Mit_013c, Mit_013b, Mit_013a, Mit_013, Mit_013pre1, Mit_012i, Mit_012g, Mit_012f, Mit_012e, Mit_012d, Mit_012c, Mit_012b, Mit_012a, Mit_012, Mit_011a, Mit_011, Mit_010a, Mit_010, Mit_009c, Mit_009b, Mit_009a, Mit_009, Mit_008, Mit_008pre2, Mit_008pre1, HEAD
Branch point for: Mit_025c_branch
Log Message:
Preload lib for compression improvements.

File Contents

# User Rev Content
1 loizides 1.1
2     /*-------------------------------------------------------------*/
3     /*--- Public header file for the library. ---*/
4     /*--- bzlib.h ---*/
5     /*-------------------------------------------------------------*/
6    
7     /* ------------------------------------------------------------------
8     This file is part of bzip2/libbzip2, a program and library for
9     lossless, block-sorting data compression.
10    
11     bzip2/libbzip2 version 1.0.5 of 10 December 2007
12     Copyright (C) 1996-2007 Julian Seward <jseward@bzip.org>
13    
14     Please read the WARNING, DISCLAIMER and PATENTS sections in the
15     README file.
16    
17     This program is released under the terms of the license contained
18     in the file LICENSE.
19     ------------------------------------------------------------------ */
20    
21    
22     #ifndef _BZLIB_H
23     #define _BZLIB_H
24    
25     #ifdef __cplusplus
26     extern "C" {
27     #endif
28    
29     #define BZ_RUN 0
30     #define BZ_FLUSH 1
31     #define BZ_FINISH 2
32    
33     #define BZ_OK 0
34     #define BZ_RUN_OK 1
35     #define BZ_FLUSH_OK 2
36     #define BZ_FINISH_OK 3
37     #define BZ_STREAM_END 4
38     #define BZ_SEQUENCE_ERROR (-1)
39     #define BZ_PARAM_ERROR (-2)
40     #define BZ_MEM_ERROR (-3)
41     #define BZ_DATA_ERROR (-4)
42     #define BZ_DATA_ERROR_MAGIC (-5)
43     #define BZ_IO_ERROR (-6)
44     #define BZ_UNEXPECTED_EOF (-7)
45     #define BZ_OUTBUFF_FULL (-8)
46     #define BZ_CONFIG_ERROR (-9)
47    
48     typedef
49     struct {
50     char *next_in;
51     unsigned int avail_in;
52     unsigned int total_in_lo32;
53     unsigned int total_in_hi32;
54    
55     char *next_out;
56     unsigned int avail_out;
57     unsigned int total_out_lo32;
58     unsigned int total_out_hi32;
59    
60     void *state;
61    
62     void *(*bzalloc)(void *,int,int);
63     void (*bzfree)(void *,void *);
64     void *opaque;
65     }
66     bz_stream;
67    
68    
69     #ifndef BZ_IMPORT
70     #define BZ_EXPORT
71     #endif
72    
73     #ifndef BZ_NO_STDIO
74     /* Need a definitition for FILE */
75     #include <stdio.h>
76     #endif
77    
78     #ifdef _WIN32
79     # include <windows.h>
80     # ifdef small
81     /* windows.h define small to char */
82     # undef small
83     # endif
84     # ifdef BZ_EXPORT
85     # define BZ_API(func) WINAPI func
86     # define BZ_EXTERN extern
87     # else
88     /* import windows dll dynamically */
89     # define BZ_API(func) (WINAPI * func)
90     # define BZ_EXTERN
91     # endif
92     #else
93     # define BZ_API(func) func
94     # define BZ_EXTERN extern
95     #endif
96    
97    
98     /*-- Core (low-level) library functions --*/
99    
100     BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
101     bz_stream* strm,
102     int blockSize100k,
103     int verbosity,
104     int workFactor
105     );
106    
107     BZ_EXTERN int BZ_API(BZ2_bzCompress) (
108     bz_stream* strm,
109     int action
110     );
111    
112     BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
113     bz_stream* strm
114     );
115    
116     BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
117     bz_stream *strm,
118     int verbosity,
119     int small
120     );
121    
122     BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
123     bz_stream* strm
124     );
125    
126     BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
127     bz_stream *strm
128     );
129    
130    
131    
132     /*-- High(er) level library functions --*/
133    
134     #ifndef BZ_NO_STDIO
135     #define BZ_MAX_UNUSED 5000
136    
137     typedef void BZFILE;
138    
139     BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) (
140     int* bzerror,
141     FILE* f,
142     int verbosity,
143     int small,
144     void* unused,
145     int nUnused
146     );
147    
148     BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
149     int* bzerror,
150     BZFILE* b
151     );
152    
153     BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
154     int* bzerror,
155     BZFILE* b,
156     void** unused,
157     int* nUnused
158     );
159    
160     BZ_EXTERN int BZ_API(BZ2_bzRead) (
161     int* bzerror,
162     BZFILE* b,
163     void* buf,
164     int len
165     );
166    
167     BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
168     int* bzerror,
169     FILE* f,
170     int blockSize100k,
171     int verbosity,
172     int workFactor
173     );
174    
175     BZ_EXTERN void BZ_API(BZ2_bzWrite) (
176     int* bzerror,
177     BZFILE* b,
178     void* buf,
179     int len
180     );
181    
182     BZ_EXTERN void BZ_API(BZ2_bzWriteClose) (
183     int* bzerror,
184     BZFILE* b,
185     int abandon,
186     unsigned int* nbytes_in,
187     unsigned int* nbytes_out
188     );
189    
190     BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) (
191     int* bzerror,
192     BZFILE* b,
193     int abandon,
194     unsigned int* nbytes_in_lo32,
195     unsigned int* nbytes_in_hi32,
196     unsigned int* nbytes_out_lo32,
197     unsigned int* nbytes_out_hi32
198     );
199     #endif
200    
201    
202     /*-- Utility functions --*/
203    
204     BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
205     char* dest,
206     unsigned int* destLen,
207     char* source,
208     unsigned int sourceLen,
209     int blockSize100k,
210     int verbosity,
211     int workFactor
212     );
213    
214     BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
215     char* dest,
216     unsigned int* destLen,
217     char* source,
218     unsigned int sourceLen,
219     int small,
220     int verbosity
221     );
222    
223    
224     /*--
225     Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
226     to support better zlib compatibility.
227     This code is not _officially_ part of libbzip2 (yet);
228     I haven't tested it, documented it, or considered the
229     threading-safeness of it.
230     If this code breaks, please contact both Yoshioka and me.
231     --*/
232    
233     BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
234     void
235     );
236    
237     #ifndef BZ_NO_STDIO
238     BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
239     const char *path,
240     const char *mode
241     );
242    
243     BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
244     int fd,
245     const char *mode
246     );
247    
248     BZ_EXTERN int BZ_API(BZ2_bzread) (
249     BZFILE* b,
250     void* buf,
251     int len
252     );
253    
254     BZ_EXTERN int BZ_API(BZ2_bzwrite) (
255     BZFILE* b,
256     void* buf,
257     int len
258     );
259    
260     BZ_EXTERN int BZ_API(BZ2_bzflush) (
261     BZFILE* b
262     );
263    
264     BZ_EXTERN void BZ_API(BZ2_bzclose) (
265     BZFILE* b
266     );
267    
268     BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
269     BZFILE *b,
270     int *errnum
271     );
272     #endif
273    
274     #ifdef __cplusplus
275     }
276     #endif
277    
278    
279     #endif
280    
281     /*-------------------------------------------------------------*/
282     /*--- end bzlib.h ---*/
283     /*-------------------------------------------------------------*/