Lines Matching +full:block +full:- +full:copy
1 /* inflate.h -- internal inflate state definition
2 * Copyright (C) 1995-2004 Mark Adler
32 TYPE, /* i: waiting for type bits, including last-flag bit */
33 TYPEDO, /* i: same, but skip check to exit inflate on new block */
35 COPY, /* i/o: waiting for input or output to copy stored block */ enumerator
36 TABLE, /* i: waiting for dynamic block table lengths */
43 MATCH, /* o: waiting for output space to copy string */
45 CHECK, /* i: waiting for 32-bit check value */
46 LENGTH, /* i: waiting for 32-bit length (gzip) */
47 DONE, /* finished check, done -- remain here until reset */
48 BAD, /* got a data error -- remain here until reset */
49 MEM, /* got an inflate() memory error -- remain here until reset */
54 State transitions between above modes -
56 (most modes can go to the BAD or MEM mode -- not shown for clarity)
59 HEAD -> (gzip) or (zlib)
60 (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME
61 NAME -> COMMENT -> HCRC -> TYPE
62 (zlib) -> DICTID or TYPE
63 DICTID -> DICT -> TYPE
65 TYPE -> STORED or TABLE or LEN or CHECK
66 STORED -> COPY -> TYPE
67 TABLE -> LENLENS -> CODELENS -> LEN
69 LEN -> LENEXT or LIT or TYPE
70 LENEXT -> DIST -> DISTEXT -> MATCH -> LEN
71 LIT -> LEN
73 CHECK -> LENGTH -> DONE
79 int last; /* true if processing last block */
84 unsigned long check; /* protected copy of check value */
85 unsigned long total; /* protected copy of output count */
96 /* for string and stored block copying */
97 unsigned length; /* literal or length of data to copy */
98 unsigned offset; /* distance back to copy string from */