Lines Matching +full:runs +full:- +full:on
1 /* SPDX-License-Identifier: Zlib */
2 /* zlib.h -- interface of the 'zlib' general purpose compression library
5 Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler
7 This software is provided 'as-is', without any express or implied
23 Jean-loup Gailly Mark Adler
49 The 'zlib' compression library provides in-memory compression and
60 The compressed data format used by default by the in-memory functions is
73 and on communications channels. The gzip format was designed for single-
74 file compression on file systems, has a larger header than zlib to maintain
105 uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */
113 for more details on the meanings of these fields.
123 Bytef *name; /* pointer to zero-terminated file name or Z_NULL */
125 Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */
147 If zlib is used in a multi-threaded application, zalloc and zfree must be
148 thread safe. In that case, zlib is thread-safe. When zalloc and zfree are
149 Z_NULL on entry to the initialization function, they are set to internal
152 On 16-bit systems, the functions zalloc and zfree must be able to allocate
154 the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers
159 the library with -DMAX_WBITS=14 (see zconf.h).
181 #define Z_ERRNO (-1)
182 #define Z_STREAM_ERROR (-2)
183 #define Z_DATA_ERROR (-3)
184 #define Z_MEM_ERROR (-4)
185 #define Z_BUF_ERROR (-5)
186 #define Z_VERSION_ERROR (-6)
194 #define Z_DEFAULT_COMPRESSION (-1)
261 - Compress more input starting at next_in and update next_in and avail_in
266 - Generate more output starting at next_out and update next_out and avail_out
288 flushed to the output buffer and the output is aligned on a byte boundary, so
306 for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to
322 avail_out), until the flush is complete (deflate returns with non-zero
325 avail_out == 0 on return.
333 on the stream are deflateReset or deflateEnd.
342 deflate() sets strm->adler to the Adler-32 checksum of all input read
344 strm->adler will be the CRC-32 checksum of the input read so far. (See
347 deflate() may update strm->data_type if it can make a good guess about
385 the first call of inflate (if the decompression does not complete on the
396 implementation of inflateInit() does not process any header information --
411 - Decompress more input starting at next_in and update next_in and avail_in
417 - Generate more output starting at next_out and update next_out and avail_out
440 gets to the end of that block, or when it runs out of data.
443 To assist in this, on return inflate() always sets strm->data_type to the
444 number of unused bits in the last byte taken from strm->next_in, plus 64 if
446 128 if inflate() returned immediately after decoding an end-of-block code or
448 stream. The end-of-block will not be indicated until all of the uncompressed
449 data from that block has been written to strm->next_out. The number of
460 256 is added to the value of strm->data_type when inflate() returns
480 possible to the output buffer, and always uses the faster approach on the
482 on the return value of inflate() as noted below, when inflate() returns early
487 below), inflate sets strm->adler to the Adler-32 checksum of the dictionary
489 strm->adler to the Adler-32 checksum of all output produced so far (that is,
491 below. At the end of the stream, inflate() checks that its computed Adler-32
495 inflate() can decompress and check either zlib-wrapped or gzip-wrapped
499 gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output
500 produced so far. The CRC-32 is checked against the gzip trailer, as is the
508 value, in which case strm->msg points to a string with a more specific
560 will result in 9 (a 512-byte window). In that case, providing 8 to
566 windowBits can also be -8..-15 for raw deflate. In this case, -windowBits
576 being written, strm->adler is a CRC-32 instead of an Adler-32.
578 For raw deflate or gzip encoding, a request for a 256-byte window is
591 string match), or Z_RLE to limit match distances to one (run-length
633 Depending on the size of the compression data structures selected by
641 Upon return of this function, strm->adler is set to the Adler-32 value
643 which dictionary has been used by the compressor. (The Adler-32 value
646 Adler-32 value is not computed and strm->adler is not set.
670 up to 258 bytes long. If the application needs the last window-size bytes of
673 deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
683 tried, for example when there are several ways of pre-processing the input
727 In order to assure a change in the parameters on the first try, the
735 deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream
758 returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.
764 deflateBound() returns an upper bound on the compressed size after
816 ignored -- the extra flags are set according to the compression level). The
820 the current versions of the command-line version of gzip (up through version
821 1.3.x) do not support header crc's, and will report that it is a "multi-part
852 windowBits can also be -8..-15 for raw inflate. In this case, -windowBits
859 recommended that a check value such as an Adler-32 or a CRC-32 be applied to
862 above on the use in deflateInit2() applies to the magnitude of windowBits.
867 return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a
868 CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see
883 of inflateInit2() does not process any header information -- that is
894 can be determined from the Adler-32 value returned by that call of inflate.
905 expected one (incorrect Adler-32 value). inflateSetDictionary does not
921 inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
1009 return value down 16 bits. If the upper value is -1 and the lower value is
1011 If the upper value is -1 and the lower value is non-zero, then inflate is in
1013 bytes from the input remaining to copy. If the upper value is not -1, then
1029 inflateMark returns the value noted above, or -65536 if the provided
1039 As inflate() processes the gzip stream, head->done is zero until the header
1040 is completed, at which time head->done is set to one. If a zlib stream is
1041 being decoded, then head->done is set to -1 to indicate that there will be
1079 before the call. If zalloc and zfree are Z_NULL, then the default library-
1089 inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of
1103 inflateBack() does a raw inflate with a single call using a call-back
1107 buffer. inflate() can be faster on modern CPUs when used with large
1112 and to initialize the state with the user-provided window buffer.
1120 header and process the trailer on its own, hence this routine expects only
1132 there is no input available, in() must return zero -- buf is ignored in that
1133 case -- and inflateBack() will return a buffer error. inflateBack() will
1134 call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].
1135 out() should return zero on success, or non-zero on failure. If out()
1136 returns non-zero, inflateBack() will return with an error. Neither in() nor
1139 The length written by out() will be at most the window size. Any non-zero
1142 For convenience, inflateBack() can be provided input on the first call by
1143 setting strm->next_in and strm->avail_in. If that input is exhausted, then
1144 in() will be called. Therefore strm->next_in must be initialized before
1145 calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called
1146 immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in
1147 must also be initialized, and then if strm->avail_in is not zero, input will
1148 initially be taken from strm->next_in[0 .. strm->avail_in - 1].
1152 descriptors can be optionally used to pass any information that the caller-
1155 On return, inflateBack() will set strm->next_in and strm->avail_in to
1157 return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR
1159 in the deflate stream (in which case strm->msg is set to indicate the nature
1162 using strm->next_in which will be Z_NULL only if in() returned an error. If
1163 strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning
1164 non-zero. (in() will always be called before out(), so strm->next_in is
1165 assured to be defined if out() returns non-zero.) Note that inflateBack()
1173 inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream
1178 /* Return flags indicating compile-time options.
1188 9: ASMV or ASMINF -- use ASM code
1189 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
1192 One-time table building (smaller code, but not thread-safe if true):
1193 12: BUILDFIXED -- build static block decoding tables when needed
1194 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed
1198 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking
1200 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect
1202 18-19: 0 (reserved)
1205 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate
1206 21: FASTEST -- deflate algorithm with only one, lowest compression level
1210 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format
1211 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!
1212 26: 0 = returns value, 1 = void -- 1 means inferred string length returned
1215 27-31: 0 (reserved)
1223 The following utility functions are implemented on top of the basic
1224 stream-oriented functions. To simplify the interface, some default options
1263 compressBound() returns an upper bound on the compressed size after
1264 compress() or compress2() on sourceLen bytes. It would be used before a
1290 length of the source is *sourceLen. On return, *sourceLen is the number of
1303 typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */
1311 filtered data as in "wb6f", 'h' for Huffman-only compression as in "wb1h",
1312 'R' for run-length encoding as in "wb1R", or 'F' for fixed code compression
1321 already exists. On systems that support it, the addition of "e" when
1322 reading or writing will set the flag to close the file on an execve() call.
1333 reading, this will be detected automatically by looking for the magic two-
1349 The next call of gzclose on the returned gzFile will also close the file
1355 double-close()ing the file descriptor. Both gzclose() and fclose() will
1361 provided, or '+' was provided), or if fd is -1. The file descriptor is not
1363 will not detect if fd is invalid (unless fd is -1).
1378 gzbuffer() returns 0 on success, or -1 on failure, such as being called
1410 on the last gzread. Z_BUF_ERROR indicates that the input file ended in the
1411 middle of a gzip stream. Note that gzread does not return -1 in the event
1418 len for end of file, or -1 for error. If len is too large to fit in an int,
1419 then nothing is read, -1 is returned, and the error state is set to
1442 and the end-of-file flag is set. The length of the partial item read is not
1446 file, reseting and retrying on end-of-file, when size is not 1.
1486 Compress and write the given null-terminated string s to file, excluding
1489 gzputs returns the number of characters written, or -1 in case of error.
1494 Read and decompress bytes from file into buf, until len-1 characters are
1496 end-of-file condition is encountered. If any characters are read or if len
1498 are read due to an end-of-file or len is less than one, then the buffer is
1501 gzgets returns buf which is a null-terminated string, or it returns NULL
1502 for end-of-file or in case of error. If there was an error, the contents at
1509 returns the value that was written, or -1 in case of error.
1514 Read and decompress one byte from file. gzgetc returns this byte or -1
1523 Push c back onto the stream for file to be read as the first character on
1524 the next read. At least one character of push-back is always allowed.
1525 gzungetc() returns the character pushed, or -1 on failure. gzungetc() will
1526 fail if c is -1, and may fail if a character has been pushed but not read
1553 or gzwrite on file. The offset represents a number of bytes in the
1563 the beginning of the uncompressed stream, or -1 in case of error, in
1578 Return the starting position for the next gzread or gzwrite on file.
1593 be used for a progress indicator. On error, gzoffset() returns -1.
1598 Return true (1) if the end-of-file indicator for file has been set while
1599 reading, false (0) otherwise. Note that the end-of-file indicator is set
1607 unless the end-of-file indicator is reset by gzclearerr() and the input file
1637 gzclose must not be called more than once on the same file, just as free
1638 must not be called more than once on the same allocation.
1640 gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a
1642 last read ended in the middle of a gzip stream, or Z_OK on success.
1659 Return the error message for the last error which occurred on file.
1669 gzerror() should be used to distinguish errors from end-of-file for those
1675 Clear the error and end-of-file flags for file. This is analogous to the
1692 Update a running Adler-32 checksum with the bytes buf[0..len-1] and
1693 return the updated checksum. An Adler-32 value is in the range of a 32-bit
1697 An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed
1720 Combine two Adler-32 checksums into one. For two sequences of bytes, seq1
1721 and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for
1722 each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of
1730 Update a running CRC-32 with the bytes buf[0..len-1] and return the
1731 updated CRC-32. A CRC-32 value is in the range of a 32-bit unsigned integer.
1733 crc. Pre- and post-conditioning (one's complement) is performed within this
1755 Combine two CRC-32 check values into one. For two sequences of bytes,
1756 seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
1757 calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32
1844 ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))
1847 ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))
1850 /* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or
1853 * functions are changed to 64 bits) -- in case these are set on systems