A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/zlib_2inflate_8h_source.html below:

NCBI C++ ToolKit: src/util/compress/zlib/inflate.h Source File

Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* inflate.h -- internal inflate state definition 2  * Copyright (C) 1995-2019 Mark Adler 3  * For conditions of distribution and use, see copyright notice in zlib.h 6 /* WARNING: this file should *not* be used by applications. It is 7  part of the implementation of the compression library and is 8  subject to change. Applications should only use zlib.h. 11 /* define NO_GZIP when compiling if you want to disable gzip header and 12  trailer decoding by inflate(). NO_GZIP would be used to avoid linking in 13  the crc code when it is not needed. For shared libraries, gzip decoding 14  should be left enabled. */ 19 /* Possible inflate modes between inflate() calls */ 21  HEAD

= 16180,

/* i: waiting for magic header */ 22  FLAGS

,

/* i: waiting for method and flags (gzip) */ 23  TIME

,

/* i: waiting for modification time (gzip) */ 24  OS

,

/* i: waiting for extra flags and operating system (gzip) */ 25  EXLEN

,

/* i: waiting for extra length (gzip) */ 26  EXTRA

,

/* i: waiting for extra bytes (gzip) */ 27  NAME

,

/* i: waiting for end of file name (gzip) */ 28  COMMENT

,

/* i: waiting for end of comment (gzip) */ 29  HCRC

,

/* i: waiting for header crc (gzip) */ 30  DICTID

,

/* i: waiting for dictionary check value */ 31  DICT

,

/* waiting for inflateSetDictionary() call */ 32  TYPE

,

/* i: waiting for type bits, including last-flag bit */ 33  TYPEDO

,

/* i: same, but skip check to exit inflate on new block */ 34  STORED

,

/* i: waiting for stored size (length and complement) */ 35  COPY_

,

/* i/o: same as COPY below, but only first time in */ 36  COPY

,

/* i/o: waiting for input or output to copy stored block */ 37  TABLE

,

/* i: waiting for dynamic block table lengths */ 38  LENLENS

,

/* i: waiting for code length code lengths */ 39  CODELENS

,

/* i: waiting for length/lit and distance code lengths */ 40  LEN_

,

/* i: same as LEN below, but only first time in */ 41  LEN

,

/* i: waiting for length/lit/eob code */ 42  LENEXT

,

/* i: waiting for length extra bits */ 43  DIST

,

/* i: waiting for distance code */ 44  DISTEXT

,

/* i: waiting for distance extra bits */ 45  MATCH

,

/* o: waiting for output space to copy string */ 46  LIT

,

/* o: waiting for output space to write literal */ 47  CHECK

,

/* i: waiting for 32-bit check value */ 48  LENGTH

,

/* i: waiting for 32-bit length (gzip) */ 49  DONE

,

/* finished check, done -- remain here until reset */ 50  BAD

,

/* got a data error -- remain here until reset */ 51  MEM

,

/* got an inflate() memory error -- remain here until reset */ 52  SYNC /* looking for synchronization bytes to restart inflate() */ 56  State transitions between above modes - 58  (most modes can go to BAD or MEM on error -- not shown for clarity) 61  HEAD -> (gzip) or (zlib) or (raw) 62  (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT -> 64  (zlib) -> DICTID or TYPE 65  DICTID -> DICT -> TYPE 68  TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK 69  STORED -> COPY_ -> COPY -> TYPE 70  TABLE -> LENLENS -> CODELENS -> LEN_ 72  Read deflate codes in fixed or dynamic block: 73  LEN -> LENEXT or LIT or TYPE 74  LENEXT -> DIST -> DISTEXT -> MATCH -> LEN 77  CHECK -> LENGTH -> DONE 80 /* State maintained between inflate() calls -- approximately 7K bytes, not 81  including the allocated sliding window, which is up to 32K bytes. */ 85  int last

;

/* true if processing last block */ 86  int wrap

;

/* bit 0 true for zlib, bit 1 true for gzip, 87  bit 2 true to validate check value */ 88  int havedict

;

/* true if dictionary provided */ 89  int flags

;

/* gzip header method and flags, 0 if zlib, or 90  -1 if raw or no header yet */ 91  unsigned dmax

;

/* zlib header max distance (INFLATE_STRICT) */ 92  unsigned long check

;

/* protected copy of check value */ 93  unsigned long total

;

/* protected copy of output count */ 96  unsigned wbits

;

/* log base 2 of requested window size */ 97  unsigned wsize

;

/* window size or zero if not using window */ 98  unsigned whave

;

/* valid bytes in the window */ 99  unsigned wnext

;

/* window write index */ 100  unsigned char FAR

*

window

;

/* allocated sliding window, if needed */ 101  /* bit accumulator */ 102  unsigned long hold

;

/* input bit accumulator */ 103  unsigned bits

;

/* number of bits in "in" */ 104  /* for string and stored block copying */ 105  unsigned length

;

/* literal or length of data to copy */ 106  unsigned offset

;

/* distance back to copy string from */ 107  /* for table and code decoding */ 108  unsigned extra

;

/* extra bits needed */ 109  /* fixed and dynamic code tables */ 112  unsigned lenbits

;

/* index bits for lencode */ 114  /* dynamic table building */ 115  unsigned ncode

;

/* number of code length code lengths */ 116  unsigned nlen

;

/* number of length code lengths */ 117  unsigned ndist

;

/* number of distance code lengths */ 118  unsigned have

;

/* number of code lengths in lens[] */ 120  unsigned short lens

[320];

/* temporary storage for code lengths */ 121  unsigned short work

[288];

/* work area for code table building */ 123  int sane

;

/* if false, allow invalid distance too far */ 124  int back

;

/* bits back of last unprocessed length/lit */ 125  unsigned was

;

/* initial length of match */

unsigned char FAR * window

code const FAR * distcode


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4