Annotation of sys/net/zlib.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: zlib.h,v 1.4 2001/06/09 06:16:39 angelos Exp $ */
2: /* $NetBSD: zlib.h,v 1.1 1996/03/15 02:28:17 paulus Exp $ */
3:
4: /*
5: * This file is derived from zlib.h and zconf.h from the zlib-0.95
6: * distribution by Jean-loup Gailly and Mark Adler, with some additions
7: * by Paul Mackerras to aid in implementing Deflate compression and
8: * decompression for PPP packets.
9: */
10:
11: /* zlib.h -- interface of the 'zlib' general purpose compression library
12: version 0.95, Aug 16th, 1995.
13:
14: Copyright (C) 1995 Jean-loup Gailly and Mark Adler
15:
16: This software is provided 'as-is', without any express or implied
17: warranty. In no event will the authors be held liable for any damages
18: arising from the use of this software.
19:
20: Permission is granted to anyone to use this software for any purpose,
21: including commercial applications, and to alter it and redistribute it
22: freely, subject to the following restrictions:
23:
24: 1. The origin of this software must not be misrepresented; you must not
25: claim that you wrote the original software. If you use this software
26: in a product, an acknowledgment in the product documentation would be
27: appreciated but is not required.
28: 2. Altered source versions must be plainly marked as such, and must not be
29: misrepresented as being the original software.
30: 3. This notice may not be removed or altered from any source distribution.
31:
32: Jean-loup Gailly Mark Adler
33: gzip@prep.ai.mit.edu madler@alumni.caltech.edu
34: */
35:
36: #ifndef _NET_ZLIB_H_
37: #define _NET_ZLIB_H_
38:
39: /* #include "zconf.h" */ /* included directly here */
40:
41: /* zconf.h -- configuration of the zlib compression library
42: * Copyright (C) 1995 Jean-loup Gailly.
43: * For conditions of distribution and use, see copyright notice in zlib.h
44: */
45:
46: /* From: zconf.h,v 1.12 1995/05/03 17:27:12 jloup Exp */
47:
48: /*
49: The library does not install any signal handler. It is recommended to
50: add at least a handler for SIGSEGV when decompressing; the library checks
51: the consistency of the input data whenever possible but may go nuts
52: for some forms of corrupted input.
53: */
54:
55: /*
56: * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
57: * than 64k bytes at a time (needed on systems with 16-bit int).
58: * Compile with -DUNALIGNED_OK if it is OK to access shorts or ints
59: * at addresses which are not a multiple of their size.
60: * Under DOS, -DFAR=far or -DFAR=__far may be needed.
61: */
62:
63: #ifndef STDC
64: # if defined(MSDOS) || defined(__STDC__) || defined(__cplusplus)
65: # define STDC
66: # endif
67: #endif
68:
69: #ifdef __MWERKS__ /* Metrowerks CodeWarrior declares fileno() in unix.h */
70: # include <unix.h>
71: #endif
72:
73: /* Maximum value for memLevel in deflateInit2 */
74: #ifndef MAX_MEM_LEVEL
75: # ifdef MAXSEG_64K
76: # define MAX_MEM_LEVEL 8
77: # else
78: # define MAX_MEM_LEVEL 9
79: # endif
80: #endif
81:
82: #ifndef FAR
83: # define FAR
84: #endif
85:
86: /* Maximum value for windowBits in deflateInit2 and inflateInit2 */
87: #ifndef MAX_WBITS
88: # define MAX_WBITS 15 /* 32K LZ77 window */
89: #endif
90:
91: /* The memory requirements for deflate are (in bytes):
92: 1 << (windowBits+2) + 1 << (memLevel+9)
93: that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
94: plus a few kilobytes for small objects. For example, if you want to reduce
95: the default memory requirements from 256K to 128K, compile with
96: make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
97: Of course this will generally degrade compression (there's no free lunch).
98:
99: The memory requirements for inflate are (in bytes) 1 << windowBits
100: that is, 32K for windowBits=15 (default value) plus a few kilobytes
101: for small objects.
102: */
103:
104: /* Type declarations */
105:
106: #ifndef OF /* function prototypes */
107: # ifdef STDC
108: # define OF(args) args
109: # else
110: # define OF(args) ()
111: # endif
112: #endif
113:
114: typedef unsigned char Byte; /* 8 bits */
115: typedef unsigned int uInt; /* 16 bits or more */
116: typedef unsigned long uLong; /* 32 bits or more */
117:
118: typedef Byte FAR Bytef;
119: typedef char FAR charf;
120: typedef int FAR intf;
121: typedef uInt FAR uIntf;
122: typedef uLong FAR uLongf;
123:
124: #ifdef STDC
125: typedef void FAR *voidpf;
126: typedef void *voidp;
127: #else
128: typedef Byte FAR *voidpf;
129: typedef Byte *voidp;
130: #endif
131:
132: /* end of original zconf.h */
133:
134: #define ZLIB_VERSION "0.95P"
135:
136: /*
137: The 'zlib' compression library provides in-memory compression and
138: decompression functions, including integrity checks of the uncompressed
139: data. This version of the library supports only one compression method
140: (deflation) but other algorithms may be added later and will have the same
141: stream interface.
142:
143: For compression the application must provide the output buffer and
144: may optionally provide the input buffer for optimization. For decompression,
145: the application must provide the input buffer and may optionally provide
146: the output buffer for optimization.
147:
148: Compression can be done in a single step if the buffers are large
149: enough (for example if an input file is mmap'ed), or can be done by
150: repeated calls of the compression function. In the latter case, the
151: application must provide more input and/or consume the output
152: (providing more output space) before each call.
153: */
154:
155: typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
156: typedef void (*free_func) OF((voidpf opaque, voidpf address, uInt nbytes));
157:
158: struct internal_state;
159:
160: typedef struct z_stream_s {
161: Bytef *next_in; /* next input byte */
162: uInt avail_in; /* number of bytes available at next_in */
163: uLong total_in; /* total nb of input bytes read so far */
164:
165: Bytef *next_out; /* next output byte should be put there */
166: uInt avail_out; /* remaining free space at next_out */
167: uLong total_out; /* total nb of bytes output so far */
168:
169: char *msg; /* last error message, NULL if no error */
170: struct internal_state FAR *state; /* not visible by applications */
171:
172: alloc_func zalloc; /* used to allocate the internal state */
173: free_func zfree; /* used to free the internal state */
174: voidp opaque; /* private data object passed to zalloc and zfree */
175:
176: Byte data_type; /* best guess about the data type: ascii or binary */
177:
178: } z_stream;
179:
180: /*
181: The application must update next_in and avail_in when avail_in has
182: dropped to zero. It must update next_out and avail_out when avail_out
183: has dropped to zero. The application must initialize zalloc, zfree and
184: opaque before calling the init function. All other fields are set by the
185: compression library and must not be updated by the application.
186:
187: The opaque value provided by the application will be passed as the first
188: parameter for calls of zalloc and zfree. This can be useful for custom
189: memory management. The compression library attaches no meaning to the
190: opaque value.
191:
192: zalloc must return Z_NULL if there is not enough memory for the object.
193: On 16-bit systems, the functions zalloc and zfree must be able to allocate
194: exactly 65536 bytes, but will not be required to allocate more than this
195: if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
196: pointers returned by zalloc for objects of exactly 65536 bytes *must*
197: have their offset normalized to zero. The default allocation function
198: provided by this library ensures this (see zutil.c). To reduce memory
199: requirements and avoid any allocation of 64K objects, at the expense of
200: compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
201:
202: The fields total_in and total_out can be used for statistics or
203: progress reports. After compression, total_in holds the total size of
204: the uncompressed data and may be saved for use in the decompressor
205: (particularly if the decompressor wants to decompress everything in
206: a single step).
207: */
208:
209: /* constants */
210:
211: #define Z_NO_FLUSH 0
212: #define Z_PARTIAL_FLUSH 1
213: #define Z_FULL_FLUSH 2
214: #define Z_SYNC_FLUSH 3 /* experimental: partial_flush + byte align */
215: #define Z_FINISH 4
216: #define Z_PACKET_FLUSH 5
217: /* See deflate() below for the usage of these constants */
218:
219: #define Z_OK 0
220: #define Z_STREAM_END 1
221: #define Z_ERRNO (-1)
222: #define Z_STREAM_ERROR (-2)
223: #define Z_DATA_ERROR (-3)
224: #define Z_MEM_ERROR (-4)
225: #define Z_BUF_ERROR (-5)
226: /* error codes for the compression/decompression functions */
227:
228: #define Z_BEST_SPEED 1
229: #define Z_BEST_COMPRESSION 9
230: #define Z_DEFAULT_COMPRESSION (-1)
231: /* compression levels */
232:
233: #define Z_FILTERED 1
234: #define Z_HUFFMAN_ONLY 2
235: #define Z_DEFAULT_STRATEGY 0
236:
237: #define Z_BINARY 0
238: #define Z_ASCII 1
239: #define Z_UNKNOWN 2
240: /* Used to set the data_type field */
241:
242: #define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
243:
244: extern char *zlib_version;
245: /* The application can compare zlib_version and ZLIB_VERSION for consistency.
246: If the first character differs, the library code actually used is
247: not compatible with the zlib.h header file used by the application.
248: */
249:
250: /* basic functions */
251:
252: extern int deflateInit OF((z_stream *strm, int level));
253: /*
254: Initializes the internal stream state for compression. The fields
255: zalloc, zfree and opaque must be initialized before by the caller.
256: If zalloc and zfree are set to Z_NULL, deflateInit updates them to
257: use default allocation functions.
258:
259: The compression level must be Z_DEFAULT_COMPRESSION, or between 1 and 9:
260: 1 gives best speed, 9 gives best compression. Z_DEFAULT_COMPRESSION requests
261: a default compromise between speed and compression (currently equivalent
262: to level 6).
263:
264: deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
265: enough memory, Z_STREAM_ERROR if level is not a valid compression level.
266: msg is set to null if there is no error message. deflateInit does not
267: perform any compression: this will be done by deflate().
268: */
269:
270:
271: extern int deflate OF((z_stream *strm, int flush));
272: /*
273: Performs one or both of the following actions:
274:
275: - Compress more input starting at next_in and update next_in and avail_in
276: accordingly. If not all input can be processed (because there is not
277: enough room in the output buffer), next_in and avail_in are updated and
278: processing will resume at this point for the next call of deflate().
279:
280: - Provide more output starting at next_out and update next_out and avail_out
281: accordingly. This action is forced if the parameter flush is non zero.
282: Forcing flush frequently degrades the compression ratio, so this parameter
283: should be set only when necessary (in interactive applications).
284: Some output may be provided even if flush is not set.
285:
286: Before the call of deflate(), the application should ensure that at least
287: one of the actions is possible, by providing more input and/or consuming
288: more output, and updating avail_in or avail_out accordingly; avail_out
289: should never be zero before the call. The application can consume the
290: compressed output when it wants, for example when the output buffer is full
291: (avail_out == 0), or after each call of deflate().
292:
293: If the parameter flush is set to Z_PARTIAL_FLUSH, the current compression
294: block is terminated and flushed to the output buffer so that the
295: decompressor can get all input data available so far. For method 9, a future
296: variant on method 8, the current block will be flushed but not terminated.
297: If flush is set to Z_FULL_FLUSH, the compression block is terminated, a
298: special marker is output and the compression dictionary is discarded; this
299: is useful to allow the decompressor to synchronize if one compressed block
300: has been damaged (see inflateSync below). Flushing degrades compression and
301: so should be used only when necessary. Using Z_FULL_FLUSH too often can
302: seriously degrade the compression. If deflate returns with avail_out == 0,
303: this function must be called again with the same value of the flush
304: parameter and more output space (updated avail_out), until the flush is
305: complete (deflate returns with non-zero avail_out).
306:
307: If the parameter flush is set to Z_PACKET_FLUSH, the compression
308: block is terminated, and a zero-length stored block is output,
309: omitting the length bytes (the effect of this is that the 3-bit type
310: code 000 for a stored block is output, and the output is then
311: byte-aligned). This is designed for use at the end of a PPP packet.
312: In addition, if the current compression block contains all the data
313: since the last Z_PACKET_FLUSH, it is never output as a stored block.
314: If the current compression block output as a static or dynamic block
315: would not be at least `minCompression' bytes smaller than the
316: original data, then nothing is output for that block. (The type
317: code for the zero-length stored block is still output, resulting in
318: a single zero byte being output for the whole packet.)
319: `MinCompression' is a parameter to deflateInit2, or 0 if deflateInit
320: is used.
321:
322: If the parameter flush is set to Z_FINISH, all pending input is processed,
323: all pending output is flushed and deflate returns with Z_STREAM_END if there
324: was enough output space; if deflate returns with Z_OK, this function must be
325: called again with Z_FINISH and more output space (updated avail_out) but no
326: more input data, until it returns with Z_STREAM_END or an error. After
327: deflate has returned Z_STREAM_END, the only possible operations on the
328: stream are deflateReset or deflateEnd.
329:
330: Z_FINISH can be used immediately after deflateInit if all the compression
331: is to be done in a single step. In this case, avail_out must be at least
332: 0.1% larger than avail_in plus 12 bytes. If deflate does not return
333: Z_STREAM_END, then it must be called again as described above.
334:
335: deflate() may update data_type if it can make a good guess about
336: the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
337: binary. This field is only for information purposes and does not affect
338: the compression algorithm in any manner.
339:
340: deflate() returns Z_OK if some progress has been made (more input
341: processed or more output produced), Z_STREAM_END if all input has been
342: consumed and all output has been produced (only when flush is set to
343: Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
344: if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible.
345: */
346:
347:
348: extern int deflateEnd OF((z_stream *strm));
349: /*
350: All dynamically allocated data structures for this stream are freed.
351: This function discards any unprocessed input and does not flush any
352: pending output.
353:
354: deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
355: stream state was inconsistent. In the error case, msg may be set
356: but then points to a static string (which must not be deallocated).
357: */
358:
359:
360: extern int inflateInit OF((z_stream *strm));
361: /*
362: Initializes the internal stream state for decompression. The fields
363: zalloc and zfree must be initialized before by the caller. If zalloc and
364: zfree are set to Z_NULL, inflateInit updates them to use default allocation
365: functions.
366:
367: inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
368: enough memory. msg is set to null if there is no error message.
369: inflateInit does not perform any decompression: this will be done by
370: inflate().
371: */
372:
373:
374: extern int inflate OF((z_stream *strm, int flush));
375: /*
376: Performs one or both of the following actions:
377:
378: - Decompress more input starting at next_in and update next_in and avail_in
379: accordingly. If not all input can be processed (because there is not
380: enough room in the output buffer), next_in is updated and processing
381: will resume at this point for the next call of inflate().
382:
383: - Provide more output starting at next_out and update next_out and avail_out
384: accordingly. inflate() always provides as much output as possible
385: (until there is no more input data or no more space in the output buffer).
386:
387: Before the call of inflate(), the application should ensure that at least
388: one of the actions is possible, by providing more input and/or consuming
389: more output, and updating the next_* and avail_* values accordingly.
390: The application can consume the uncompressed output when it wants, for
391: example when the output buffer is full (avail_out == 0), or after each
392: call of inflate().
393:
394: If the parameter flush is set to Z_PARTIAL_FLUSH or Z_PACKET_FLUSH,
395: inflate flushes as much output as possible to the output buffer. The
396: flushing behavior of inflate is not specified for values of the flush
397: parameter other than Z_PARTIAL_FLUSH, Z_PACKET_FLUSH or Z_FINISH, but the
398: current implementation actually flushes as much output as possible
399: anyway. For Z_PACKET_FLUSH, inflate checks that once all the input data
400: has been consumed, it is expecting to see the length field of a stored
401: block; if not, it returns Z_DATA_ERROR.
402:
403: inflate() should normally be called until it returns Z_STREAM_END or an
404: error. However if all decompression is to be performed in a single step
405: (a single call of inflate), the parameter flush should be set to
406: Z_FINISH. In this case all pending input is processed and all pending
407: output is flushed; avail_out must be large enough to hold all the
408: uncompressed data. (The size of the uncompressed data may have been saved
409: by the compressor for this purpose.) The next operation on this stream must
410: be inflateEnd to deallocate the decompression state. The use of Z_FINISH
411: is never required, but can be used to inform inflate that a faster routine
412: may be used for the single inflate() call.
413:
414: inflate() returns Z_OK if some progress has been made (more input
415: processed or more output produced), Z_STREAM_END if the end of the
416: compressed data has been reached and all uncompressed output has been
417: produced, Z_DATA_ERROR if the input data was corrupted, Z_STREAM_ERROR if
418: the stream structure was inconsistent (for example if next_in or next_out
419: was NULL), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if no
420: progress is possible or if there was not enough room in the output buffer
421: when Z_FINISH is used. In the Z_DATA_ERROR case, the application may then
422: call inflateSync to look for a good compression block. */
423:
424:
425: extern int inflateEnd OF((z_stream *strm));
426: /*
427: All dynamically allocated data structures for this stream are freed.
428: This function discards any unprocessed input and does not flush any
429: pending output.
430:
431: inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
432: was inconsistent. In the error case, msg may be set but then points to a
433: static string (which must not be deallocated).
434: */
435:
436: /* advanced functions */
437:
438: /*
439: The following functions are needed only in some special applications.
440: */
441:
442: extern int deflateInit2 OF((z_stream *strm,
443: int level,
444: int method,
445: int windowBits,
446: int memLevel,
447: int strategy,
448: int minCompression));
449: /*
450: This is another version of deflateInit with more compression options. The
451: fields next_in, zalloc and zfree must be initialized before by the caller.
452:
453: The method parameter is the compression method. It must be 8 in this
454: version of the library. (Method 9 will allow a 64K history buffer and
455: partial block flushes.)
456:
457: The windowBits parameter is the base two logarithm of the window size
458: (the size of the history buffer). It should be in the range 8..15 for this
459: version of the library (the value 16 will be allowed for method 9). Larger
460: values of this parameter result in better compression at the expense of
461: memory usage. The default value is 15 if deflateInit is used instead.
462:
463: The memLevel parameter specifies how much memory should be allocated
464: for the internal compression state. memLevel=1 uses minimum memory but
465: is slow and reduces compression ratio; memLevel=9 uses maximum memory
466: for optimal speed. The default value is 8. See zconf.h for total memory
467: usage as a function of windowBits and memLevel.
468:
469: The strategy parameter is used to tune the compression algorithm. Use
470: the value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data
471: produced by a filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman
472: encoding only (no string match). Filtered data consists mostly of small
473: values with a somewhat random distribution. In this case, the
474: compression algorithm is tuned to compress them better. The strategy
475: parameter only affects the compression ratio but not the correctness of
476: the compressed output even if it is not set appropriately.
477:
478: The minCompression parameter specifies the minimum reduction in size
479: required for a compressed block to be output when Z_PACKET_FLUSH is
480: used (see the description of deflate above).
481:
482: If next_in is not null, the library will use this buffer to hold also
483: some history information; the buffer must either hold the entire input
484: data, or have at least 1<<(windowBits+1) bytes and be writable. If next_in
485: is null, the library will allocate its own history buffer (and leave next_in
486: null). next_out need not be provided here but must be provided by the
487: application for the next call of deflate().
488:
489: If the history buffer is provided by the application, next_in must
490: must never be changed by the application since the compressor maintains
491: information inside this buffer from call to call; the application
492: must provide more input only by increasing avail_in. next_in is always
493: reset by the library in this case.
494:
495: deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
496: not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
497: an invalid method). msg is set to null if there is no error message.
498: deflateInit2 does not perform any compression: this will be done by
499: deflate().
500: */
501:
502: extern int deflateCopy OF((z_stream *dest,
503: z_stream *source));
504: /*
505: Sets the destination stream as a complete copy of the source stream. If
506: the source stream is using an application-supplied history buffer, a new
507: buffer is allocated for the destination stream. The compressed output
508: buffer is always application-supplied. It's the responsibility of the
509: application to provide the correct values of next_out and avail_out for the
510: next call of deflate.
511:
512: This function is useful when several compression strategies will be
513: tried, for example when there are several ways of pre-processing the input
514: data with a filter. The streams that will be discarded should then be freed
515: by calling deflateEnd. Note that deflateCopy duplicates the internal
516: compression state which can be quite large, so this strategy is slow and
517: can consume lots of memory.
518:
519: deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
520: enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
521: (such as zalloc being NULL). msg is left unchanged in both source and
522: destination.
523: */
524:
525: extern int deflateReset OF((z_stream *strm));
526: /*
527: This function is equivalent to deflateEnd followed by deflateInit,
528: but does not free and reallocate all the internal compression state.
529: The stream will keep the same compression level and any other attributes
530: that may have been set by deflateInit2.
531:
532: deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
533: stream state was inconsistent (such as zalloc or state being NULL).
534: */
535:
536: extern int inflateInit2 OF((z_stream *strm,
537: int windowBits));
538: /*
539: This is another version of inflateInit with more compression options. The
540: fields next_out, zalloc and zfree must be initialized before by the caller.
541:
542: The windowBits parameter is the base two logarithm of the maximum window
543: size (the size of the history buffer). It should be in the range 8..15 for
544: this version of the library (the value 16 will be allowed soon). The
545: default value is 15 if inflateInit is used instead. If a compressed stream
546: with a larger window size is given as input, inflate() will return with
547: the error code Z_DATA_ERROR instead of trying to allocate a larger window.
548:
549: If next_out is not null, the library will use this buffer for the history
550: buffer; the buffer must either be large enough to hold the entire output
551: data, or have at least 1<<windowBits bytes. If next_out is null, the
552: library will allocate its own buffer (and leave next_out null). next_in
553: need not be provided here but must be provided by the application for the
554: next call of inflate().
555:
556: If the history buffer is provided by the application, next_out must
557: never be changed by the application since the decompressor maintains
558: history information inside this buffer from call to call; the application
559: can only reset next_out to the beginning of the history buffer when
560: avail_out is zero and all output has been consumed.
561:
562: inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
563: not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
564: windowBits < 8). msg is set to null if there is no error message.
565: inflateInit2 does not perform any decompression: this will be done by
566: inflate().
567: */
568:
569: extern int inflateSync OF((z_stream *strm));
570: /*
571: Skips invalid compressed data until the special marker (see deflate()
572: above) can be found, or until all available input is skipped. No output
573: is provided.
574:
575: inflateSync returns Z_OK if the special marker has been found, Z_BUF_ERROR
576: if no more input was provided, Z_DATA_ERROR if no marker has been found,
577: or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
578: case, the application may save the current current value of total_in which
579: indicates where valid compressed data was found. In the error case, the
580: application may repeatedly call inflateSync, providing more input each time,
581: until success or end of the input data.
582: */
583:
584: extern int inflateReset OF((z_stream *strm));
585: /*
586: This function is equivalent to inflateEnd followed by inflateInit,
587: but does not free and reallocate all the internal decompression state.
588: The stream will keep attributes that may have been set by inflateInit2.
589:
590: inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
591: stream state was inconsistent (such as zalloc or state being NULL).
592: */
593:
594: extern int inflateIncomp OF((z_stream *strm));
595: /*
596: This function adds the data at next_in (avail_in bytes) to the output
597: history without performing any output. There must be no pending output,
598: and the decompressor must be expecting to see the start of a block.
599: Calling this function is equivalent to decompressing a stored block
600: containing the data at next_in (except that the data is not output).
601: */
602:
603: /* checksum functions */
604:
605: /*
606: This function is not related to compression but is exported
607: anyway because it might be useful in applications using the
608: compression library.
609: */
610:
611: extern uLong adler32 OF((uLong adler, Bytef *buf, uInt len));
612:
613: /*
614: Update a running Adler-32 checksum with the bytes buf[0..len-1] and
615: return the updated checksum. If buf is NULL, this function returns
616: the required initial value for the checksum.
617: An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
618: much faster. Usage example:
619:
620: uLong adler = adler32(0L, Z_NULL, 0);
621:
622: while (read_buffer(buffer, length) != EOF) {
623: adler = adler32(adler, buffer, length);
624: }
625: if (adler != original_adler) error();
626: */
627:
628: #ifndef _Z_UTIL_H
629: struct internal_state {int dummy;}; /* hack for buggy compilers */
630: #endif
631: #endif /* _NET_ZLIB_H_ */
CVSweb