[BACK]Return to zlib.h CVS log [TXT][DIR] Up to [local] / sys / net

Annotation of sys/net/zlib.h, Revision 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