100 void makefixed OF((
void));
102 local unsigned syncsearch
OF((
unsigned FAR *have,
const unsigned char FAR *buf,
108 struct inflate_state
FAR *state;
110 strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0)
112 state = (
struct inflate_state
FAR *)strm->state;
113 if (state ==
Z_NULL || state->strm != strm ||
114 state->mode < HEAD || state->mode > SYNC)
122 struct inflate_state
FAR *state;
125 state = (
struct inflate_state
FAR *)strm->state;
126 strm->total_in = strm->total_out = state->total = 0;
129 strm->adler = state->wrap & 1;
133 state->dmax = 32768U;
137 state->lencode = state->distcode = state->next = state->codes;
140 Tracev((stderr,
"inflate: reset\n"));
147 struct inflate_state
FAR *state;
150 state = (
struct inflate_state
FAR *)strm->state;
154 return inflateResetKeep(strm);
162 struct inflate_state
FAR *state;
166 state = (
struct inflate_state
FAR *)strm->state;
169 if (windowBits < 0) {
171 windowBits = -windowBits;
174 wrap = (windowBits >> 4) + 5;
182 if (windowBits && (windowBits < 8 || windowBits > 15))
184 if (state->window !=
Z_NULL && state->wbits != (
unsigned)windowBits) {
185 ZFREE(strm, state->window);
191 state->wbits = (
unsigned)windowBits;
192 return inflateReset(strm);
202 struct inflate_state
FAR *state;
205 stream_size != (
int)(
sizeof(z_stream)))
209 if (strm->zalloc == (alloc_func)0) {
211 return Z_STREAM_ERROR;
213 strm->zalloc = zcalloc;
214 strm->opaque = (voidpf)0;
217 if (strm->zfree == (free_func)0)
219 return Z_STREAM_ERROR;
221 strm->zfree = zcfree;
223 state = (
struct inflate_state
FAR *)
224 ZALLOC(strm, 1,
sizeof(
struct inflate_state));
226 Tracev((stderr,
"inflate: allocated\n"));
227 strm->state = (
struct internal_state
FAR *)state;
231 ret = inflateReset2(strm, windowBits);
244 return inflateInit2_(strm,
DEF_WBITS, version, stream_size);
252 struct inflate_state
FAR *state;
255 state = (
struct inflate_state
FAR *)strm->state;
261 if (bits > 16 || state->bits + (uInt)bits > 32)
return Z_STREAM_ERROR;
262 value &= (1L << bits) - 1;
263 state->hold += (
unsigned)value << state->bits;
264 state->bits += (uInt)bits;
282 static int virgin = 1;
283 static code *lenfix, *distfix;
284 static code fixed[544];
293 while (sym < 144) state->lens[sym++] = 8;
294 while (sym < 256) state->lens[sym++] = 9;
295 while (sym < 280) state->lens[sym++] = 7;
296 while (sym < 288) state->lens[sym++] = 8;
300 inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
304 while (sym < 32) state->lens[sym++] = 5;
307 inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
315 state->lencode = lenfix;
317 state->distcode = distfix;
345 struct inflate_state state;
348 puts(
" /* inffixed.h -- table for decoding fixed codes");
349 puts(
" * Generated automatically by makefixed().");
352 puts(
" /* WARNING: this file should *not* be used by applications.");
353 puts(
" It is part of the implementation of this library and is");
354 puts(
" subject to change. Applications should only use zlib.h.");
358 printf(
" static const code lenfix[%u] = {", size);
361 if ((low % 7) == 0) printf(
"\n ");
362 printf(
"{%u,%u,%d}", (low & 127) == 99 ? 64 : state.lencode[low].op,
363 state.lencode[low].bits, state.lencode[low].val);
364 if (++low == size)
break;
369 printf(
"\n static const code distfix[%u] = {", size);
372 if ((low % 6) == 0) printf(
"\n ");
373 printf(
"{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits,
374 state.distcode[low].val);
375 if (++low == size)
break;
401 struct inflate_state
FAR *state;
404 state = (
struct inflate_state
FAR *)strm->state;
407 if (state->window ==
Z_NULL) {
408 state->window = (
unsigned char FAR *)
409 ZALLOC(strm, 1U << state->wbits,
410 sizeof(
unsigned char));
411 if (state->window ==
Z_NULL)
return 1;
415 if (state->wsize == 0) {
416 state->wsize = 1U << state->wbits;
422 if (copy >= state->wsize) {
423 zmemcpy(state->window, end - state->wsize, state->wsize);
425 state->whave = state->wsize;
428 dist = state->wsize - state->wnext;
429 if (dist > copy) dist = copy;
430 zmemcpy(state->window + state->wnext, end - copy, dist);
433 zmemcpy(state->window, end - copy, copy);
435 state->whave = state->wsize;
438 state->wnext += dist;
439 if (state->wnext == state->wsize) state->wnext = 0;
440 if (state->whave < state->wsize) state->whave += dist;
450 # define UPDATE(check, buf, len) 451 (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) 453 # define UPDATE(check, buf, len) adler32(check, buf, len) 458 # define CRC2(check, word) 460 hbuf[0
] = (unsigned char)(word); 461 hbuf[1
] = (unsigned char)((word) >> 8
); 462 check = crc32(check, hbuf, 2
); 465 # define CRC4(check, word) 467 hbuf[0
] = (unsigned char)(word); 468 hbuf[1
] = (unsigned char)((word) >> 8
); 469 hbuf[2
] = (unsigned char)((word) >> 16
); 470 hbuf[3
] = (unsigned char)((word) >> 24
); 471 check = crc32(check, hbuf, 4
); 478 put = strm->next_out; 479 left = strm->avail_out; 480 next = strm->next_in; 481 have = strm->avail_in; 489 strm->next_out = put; 490 strm->avail_out = left; 491 strm->next_in = next; 492 strm->avail_in = have; 508 if (have == 0
) goto inf_leave; 510 hold += (unsigned long)(*next++) << bits; 518 while (bits < (unsigned)(n)) 524 ((unsigned)hold & ((1U
<< (n)) - 1
)) 530 bits -= (unsigned)(n); 626 struct inflate_state
FAR *state;
628 unsigned char FAR *put;
634 unsigned char FAR *from;
640 unsigned char hbuf[4];
642 static const unsigned short order[19] =
643 {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
645 if (inflateStateCheck(strm) || strm->next_out ==
Z_NULL ||
646 (strm->next_in ==
Z_NULL && strm->avail_in != 0))
649 state = (
struct inflate_state
FAR *)strm->state;
650 if (state->mode == TYPE) state->mode = TYPEDO;
656 switch (state->mode) {
658 if (state->wrap == 0) {
659 state->mode = TYPEDO;
664 if ((state->wrap & 2) && hold == 0x8b1f) {
665 if (state->wbits == 0)
667 state->check = crc32(0L,
Z_NULL, 0);
668 CRC2(state->check, hold);
674 if (state->head !=
Z_NULL)
675 state->head->done = -1;
676 if (!(state->wrap & 1) ||
680 ((
BITS(8) << 8) + (hold >> 8)) % 31) {
681 strm->msg = (
char *)
"incorrect header check";
686 strm->msg = (
char *)
"unknown compression method";
692 if (state->wbits == 0)
694 if (len > 15 || len > state->wbits) {
695 strm->msg = (
char *)
"invalid window size";
699 state->dmax = 1U << len;
700 Tracev((stderr,
"inflate: zlib header ok\n"));
701 strm->adler = state->check = adler32(0L,
Z_NULL, 0);
702 state->mode = hold & 0x200 ? DICTID : TYPE;
708 state->flags = (
int)(hold);
710 strm->msg = (
char *)
"unknown compression method";
714 if (state->flags & 0xe000) {
715 strm->msg = (
char *)
"unknown header flags set";
719 if (state->head !=
Z_NULL)
720 state->head->text = (
int)((hold >> 8) & 1);
721 if ((state->flags & 0x0200) && (state->wrap & 4))
722 CRC2(state->check, hold);
727 if (state->head !=
Z_NULL)
728 state->head->time = hold;
729 if ((state->flags & 0x0200) && (state->wrap & 4))
730 CRC4(state->check, hold);
735 if (state->head !=
Z_NULL) {
736 state->head->xflags = (
int)(hold & 0xff);
737 state->head->os = (
int)(hold >> 8);
739 if ((state->flags & 0x0200) && (state->wrap & 4))
740 CRC2(state->check, hold);
744 if (state->flags & 0x0400) {
746 state->length = (
unsigned)(hold);
747 if (state->head !=
Z_NULL)
748 state->head->extra_len = (
unsigned)hold;
749 if ((state->flags & 0x0200) && (state->wrap & 4))
750 CRC2(state->check, hold);
753 else if (state->head !=
Z_NULL)
754 state->head->extra =
Z_NULL;
757 if (state->flags & 0x0400) {
758 copy = state->length;
759 if (copy > have) copy = have;
761 if (state->head !=
Z_NULL &&
762 state->head->extra !=
Z_NULL) {
763 len = state->head->extra_len - state->length;
764 zmemcpy(state->head->extra + len, next,
765 len + copy > state->head->extra_max ?
766 state->head->extra_max - len : copy);
768 if ((state->flags & 0x0200) && (state->wrap & 4))
769 state->check = crc32(state->check, next, copy);
772 state->length -= copy;
774 if (state->length)
goto inf_leave;
779 if (state->flags & 0x0800) {
780 if (have == 0)
goto inf_leave;
783 len = (
unsigned)(next[copy++]);
784 if (state->head !=
Z_NULL &&
785 state->head->name !=
Z_NULL &&
786 state->length < state->head->name_max)
787 state->head->name[state->length++] = (Bytef)len;
788 }
while (len && copy < have);
789 if ((state->flags & 0x0200) && (state->wrap & 4))
790 state->check = crc32(state->check, next, copy);
793 if (len)
goto inf_leave;
795 else if (state->head !=
Z_NULL)
796 state->head->name =
Z_NULL;
798 state->mode = COMMENT;
800 if (state->flags & 0x1000) {
801 if (have == 0)
goto inf_leave;
804 len = (
unsigned)(next[copy++]);
805 if (state->head !=
Z_NULL &&
806 state->head->comment !=
Z_NULL &&
807 state->length < state->head->comm_max)
808 state->head->comment[state->length++] = (Bytef)len;
809 }
while (len && copy < have);
810 if ((state->flags & 0x0200) && (state->wrap & 4))
811 state->check = crc32(state->check, next, copy);
814 if (len)
goto inf_leave;
816 else if (state->head !=
Z_NULL)
817 state->head->comment =
Z_NULL;
820 if (state->flags & 0x0200) {
822 if ((state->wrap & 4) && hold != (state->check & 0xffff)) {
823 strm->msg = (
char *)
"header crc mismatch";
829 if (state->head !=
Z_NULL) {
830 state->head->hcrc = (
int)((state->flags >> 9) & 1);
831 state->head->done = 1;
833 strm->adler = state->check = crc32(0L,
Z_NULL, 0);
839 strm->adler = state->check =
ZSWAP32(hold);
843 if (state->havedict == 0) {
847 strm->adler = state->check = adler32(0L,
Z_NULL, 0);
858 state->last =
BITS(1);
862 Tracev((stderr,
"inflate: stored block%s\n",
863 state->last ?
" (last)" :
""));
864 state->mode = STORED;
868 Tracev((stderr,
"inflate: fixed codes block%s\n",
869 state->last ?
" (last)" :
""));
877 Tracev((stderr,
"inflate: dynamic codes block%s\n",
878 state->last ?
" (last)" :
""));
882 strm->msg = (
char *)
"invalid block type";
890 if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
891 strm->msg = (
char *)
"invalid stored block lengths";
895 state->length = (
unsigned)hold & 0xffff;
896 Tracev((stderr,
"inflate: stored length %u\n",
900 if (flush ==
Z_TREES)
goto inf_leave;
904 copy = state->length;
906 if (copy > have) copy = have;
907 if (copy > left) copy = left;
908 if (copy == 0)
goto inf_leave;
909 zmemcpy(put, next, copy);
914 state->length -= copy;
917 Tracev((stderr,
"inflate: stored end\n"));
922 state->nlen =
BITS(5) + 257;
924 state->ndist =
BITS(5) + 1;
926 state->ncode =
BITS(4) + 4;
928 #ifndef PKZIP_BUG_WORKAROUND 929 if (state->nlen > 286 || state->ndist > 30) {
930 strm->msg = (
char *)
"too many length or distance symbols";
935 Tracev((stderr,
"inflate: table sizes ok\n"));
937 state->mode = LENLENS;
939 while (state->have < state->ncode) {
941 state->lens[order[state->have++]] = (
unsigned short)
BITS(3);
944 while (state->have < 19)
945 state->lens[order[state->have++]] = 0;
946 state->next = state->codes;
947 state->lencode = (
const code
FAR *)(state->next);
949 ret = inflate_table(CODES, state->lens, 19, &(state->next),
950 &(state->lenbits), state->work);
952 strm->msg = (
char *)
"invalid code lengths set";
956 Tracev((stderr,
"inflate: code lengths ok\n"));
958 state->mode = CODELENS;
960 while (state->have < state->nlen + state->ndist) {
962 here = state->lencode[
BITS(state->lenbits)];
963 if ((
unsigned)(here.bits) <= bits)
break;
968 state->lens[state->have++] = here.val;
971 if (here.val == 16) {
974 if (state->have == 0) {
975 strm->msg = (
char *)
"invalid bit length repeat";
979 len = state->lens[state->have - 1];
983 else if (here.val == 17) {
997 if (state->have + copy > state->nlen + state->ndist) {
998 strm->msg = (
char *)
"invalid bit length repeat";
1003 state->lens[state->have++] = (
unsigned short)len;
1008 if (state->mode == BAD)
break;
1011 if (state->lens[256] == 0) {
1012 strm->msg = (
char *)
"invalid code -- missing end-of-block";
1020 state->next = state->codes;
1021 state->lencode = (
const code
FAR *)(state->next);
1023 ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
1024 &(state->lenbits), state->work);
1026 strm->msg = (
char *)
"invalid literal/lengths set";
1030 state->distcode = (
const code
FAR *)(state->next);
1031 state->distbits = 6;
1032 ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
1033 &(state->next), &(state->distbits), state->work);
1035 strm->msg = (
char *)
"invalid distances set";
1039 Tracev((stderr,
"inflate: codes ok\n"));
1041 if (flush ==
Z_TREES)
goto inf_leave;
1045 if (have >= 6 && left >= 258) {
1047 inflate_fast(strm, out);
1049 if (state->mode == TYPE)
1055 here = state->lencode[
BITS(state->lenbits)];
1056 if ((
unsigned)(here.bits) <= bits)
break;
1059 if (here.op && (here.op & 0xf0) == 0) {
1062 here = state->lencode[last.val +
1063 (
BITS(last.bits + last.op) >> last.bits)];
1064 if ((
unsigned)(last.bits + here.bits) <= bits)
break;
1068 state->back += last.bits;
1071 state->back += here.bits;
1072 state->length = (
unsigned)here.val;
1073 if ((
int)(here.op) == 0) {
1074 Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
1075 "inflate: literal '%c'\n" :
1076 "inflate: literal 0x%02x\n", here.val));
1081 Tracevv((stderr,
"inflate: end of block\n"));
1087 strm->msg = (
char *)
"invalid literal/length code";
1091 state->extra = (
unsigned)(here.op) & 15;
1092 state->mode = LENEXT;
1096 state->length +=
BITS(state->extra);
1098 state->back += state->extra;
1100 Tracevv((stderr,
"inflate: length %u\n", state->length));
1101 state->was = state->length;
1105 here = state->distcode[
BITS(state->distbits)];
1106 if ((
unsigned)(here.bits) <= bits)
break;
1109 if ((here.op & 0xf0) == 0) {
1112 here = state->distcode[last.val +
1113 (
BITS(last.bits + last.op) >> last.bits)];
1114 if ((
unsigned)(last.bits + here.bits) <= bits)
break;
1118 state->back += last.bits;
1121 state->back += here.bits;
1123 strm->msg = (
char *)
"invalid distance code";
1127 state->offset = (
unsigned)here.val;
1128 state->extra = (
unsigned)(here.op) & 15;
1129 state->mode = DISTEXT;
1133 state->offset +=
BITS(state->extra);
1135 state->back += state->extra;
1137 #ifdef INFLATE_STRICT 1138 if (state->offset > state->dmax) {
1139 strm->msg = (
char *)
"invalid distance too far back";
1144 Tracevv((stderr,
"inflate: distance %u\n", state->offset));
1145 state->mode = MATCH;
1147 if (left == 0)
goto inf_leave;
1149 if (state->offset > copy) {
1150 copy = state->offset - copy;
1151 if (copy > state->whave) {
1153 strm->msg = (
char *)
"invalid distance too far back";
1157 #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR 1158 Trace((stderr,
"inflate.c too far\n"));
1159 copy -= state->whave;
1160 if (copy > state->length) copy = state->length;
1161 if (copy > left) copy = left;
1163 state->length -= copy;
1167 if (state->length == 0) state->mode = LEN;
1171 if (copy > state->wnext) {
1172 copy -= state->wnext;
1173 from = state->window + (state->wsize - copy);
1176 from = state->window + (state->wnext - copy);
1177 if (copy > state->length) copy = state->length;
1180 from = put - state->offset;
1181 copy = state->length;
1183 if (copy > left) copy = left;
1185 state->length -= copy;
1189 if (state->length == 0) state->mode = LEN;
1192 if (left == 0)
goto inf_leave;
1193 *put++ = (
unsigned char)(state->length);
1201 strm->total_out += out;
1202 state->total += out;
1203 if ((state->wrap & 4) && out)
1204 strm->adler = state->check =
1205 UPDATE(state->check, put - out, out);
1207 if ((state->wrap & 4) && (
1209 state->flags ? hold :
1211 ZSWAP32(hold)) != state->check) {
1212 strm->msg = (
char *)
"incorrect data check";
1217 Tracev((stderr,
"inflate: check matches trailer\n"));
1220 state->mode = LENGTH;
1222 if (state->wrap && state->flags) {
1224 if (hold != (state->total & 0xffffffffUL)) {
1225 strm->msg = (
char *)
"incorrect length check";
1230 Tracev((stderr,
"inflate: length matches trailer\n"));
1255 if (state->wsize || (out != strm->avail_out && state->mode < BAD &&
1256 (state->mode < CHECK || flush !=
Z_FINISH)))
1257 if (updatewindow(strm, strm->next_out, out - strm->avail_out)) {
1261 in -= strm->avail_in;
1262 out -= strm->avail_out;
1263 strm->total_in += in;
1264 strm->total_out += out;
1265 state->total += out;
1266 if ((state->wrap & 4) && out)
1267 strm->adler = state->check =
1268 UPDATE(state->check, strm->next_out - out, out);
1269 strm->data_type = (
int)state->bits + (state->last ? 64 : 0) +
1270 (state->mode == TYPE ? 128 : 0) +
1271 (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0);
1272 if (((in == 0 && out == 0) || flush ==
Z_FINISH) && ret ==
Z_OK)
1280 struct inflate_state
FAR *state;
1281 if (inflateStateCheck(strm))
1283 state = (
struct inflate_state
FAR *)strm->state;
1284 if (state->window !=
Z_NULL)
ZFREE(strm, state->window);
1285 ZFREE(strm, strm->state);
1287 Tracev((stderr,
"inflate: end\n"));
1296 struct inflate_state
FAR *state;
1300 state = (
struct inflate_state
FAR *)strm->state;
1303 if (state->whave && dictionary !=
Z_NULL) {
1304 zmemcpy(dictionary, state->window + state->wnext,
1305 state->whave - state->wnext);
1306 zmemcpy(dictionary + state->whave - state->wnext,
1307 state->window, state->wnext);
1309 if (dictLength !=
Z_NULL)
1310 *dictLength = state->whave;
1316 const Bytef *dictionary;
1319 struct inflate_state
FAR *state;
1320 unsigned long dictid;
1325 state = (
struct inflate_state
FAR *)strm->state;
1326 if (state->wrap != 0 && state->mode != DICT)
1330 if (state->mode == DICT) {
1331 dictid = adler32(0L,
Z_NULL, 0);
1332 dictid = adler32(dictid, dictionary, dictLength);
1333 if (dictid != state->check)
1339 ret = updatewindow(strm, dictionary + dictLength, dictLength);
1344 state->havedict = 1;
1345 Tracev((stderr,
"inflate: dictionary set\n"));
1353 struct inflate_state
FAR *state;
1357 state = (
struct inflate_state
FAR *)strm->state;
1379 const unsigned char FAR *buf;
1387 while (next < len && got < 4) {
1388 if ((
int)(buf[next]) == (got < 2 ? 0 : 0xff))
1404 unsigned long in, out;
1405 unsigned char buf[4];
1406 struct inflate_state
FAR *state;
1410 state = (
struct inflate_state
FAR *)strm->state;
1411 if (strm->avail_in == 0 && state->bits < 8)
return Z_BUF_ERROR;
1414 if (state->mode != SYNC) {
1416 state->hold <<= state->bits & 7;
1417 state->bits -= state->bits & 7;
1419 while (state->bits >= 8) {
1420 buf[len++] = (
unsigned char)(state->hold);
1425 syncsearch(&(state->have), buf, len);
1429 len = syncsearch(&(state->have), strm->next_in, strm->avail_in);
1430 strm->avail_in -= len;
1431 strm->next_in += len;
1432 strm->total_in += len;
1436 in = strm->total_in; out = strm->total_out;
1438 strm->total_in = in; strm->total_out = out;
1454 struct inflate_state
FAR *state;
1457 state = (
struct inflate_state
FAR *)strm->state;
1458 return state->mode == STORED && state->bits == 0;
1465 struct inflate_state
FAR *state;
1466 struct inflate_state
FAR *copy;
1467 unsigned char FAR *window;
1471 if (inflateStateCheck(source) || dest ==
Z_NULL)
1473 state = (
struct inflate_state
FAR *)source->state;
1476 copy = (
struct inflate_state
FAR *)
1477 ZALLOC(source, 1,
sizeof(
struct inflate_state));
1480 if (state->window !=
Z_NULL) {
1481 window = (
unsigned char FAR *)
1482 ZALLOC(source, 1U << state->wbits,
sizeof(
unsigned char));
1484 ZFREE(source, copy);
1490 zmemcpy((voidpf)dest, (voidpf)source,
sizeof(z_stream));
1491 zmemcpy((voidpf)copy, (voidpf)state,
sizeof(
struct inflate_state));
1493 if (state->lencode >= state->codes &&
1494 state->lencode <= state->codes +
ENOUGH - 1) {
1495 copy->lencode = copy->codes + (state->lencode - state->codes);
1496 copy->distcode = copy->codes + (state->distcode - state->codes);
1498 copy->next = copy->codes + (state->next - state->codes);
1500 wsize = 1U << state->wbits;
1501 zmemcpy(window, state->window, wsize);
1503 copy->window = window;
1504 dest->state = (
struct internal_state
FAR *)copy;
1512 struct inflate_state
FAR *state;
1515 state = (
struct inflate_state
FAR *)strm->state;
1516 #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR 1517 state->sane = !subvert;
1530 struct inflate_state
FAR *state;
1533 state = (
struct inflate_state
FAR *)strm->state;
1544 struct inflate_state
FAR *state;
1546 if (inflateStateCheck(strm))
1548 state = (
struct inflate_state
FAR *)strm->state;
1549 return (
long)(((
unsigned long)((
long)state->back)) << 16) +
1550 (state->mode == COPY ? state->length :
1551 (state->mode == MATCH ? state->was - state->length : 0));
1557 struct inflate_state
FAR *state;
1558 if (inflateStateCheck(strm))
return (
unsigned long)-1;
1559 state = (
struct inflate_state
FAR *)strm->state;
1560 return (
unsigned long)(state->next - state->codes);
local int inflateStateCheck(z_streamp strm)
int ZEXPORT inflateReset(z_streamp strm)
local void fixedtables(struct inflate_state FAR *state)
int ZEXPORT inflateValidate(z_streamp strm, int check)
int ZEXPORT inflateResetKeep(z_streamp strm)
int ZEXPORT inflateInit_(z_streamp strm, const char *version, int stream_size)
gz_header FAR * gz_headerp
local unsigned syncsearch(unsigned FAR *have, const unsigned char FAR *buf, unsigned len)
int ZEXPORT inflateReset2(z_streamp strm, int windowBits)
int ZEXPORT inflateSetDictionary(z_streamp strm, const Bytef *dictionary, uInt dictLength)
int ZEXPORT inflateSyncPoint(z_streamp strm)
#define ZALLOC(strm, items, size)
#define CRC2(check, word)
unsigned long ZEXPORT inflateCodesUsed(z_streamp strm)
#define ZFREE(strm, addr)
#define UPDATE(check, buf, len)
int ZEXPORT inflateSync(z_streamp strm)
int ZEXPORT inflateUndermine(z_streamp strm, int subvert)
int ZEXPORT inflateGetHeader(z_streamp strm, gz_headerp head)
int ZEXPORT inflateGetDictionary(z_streamp strm, Bytef *dictionary, uInt *dictLength)
int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, const char *version, int stream_size)
int ZEXPORT inflatePrime(z_streamp strm, int bits, int value)
long ZEXPORT inflateMark(z_streamp strm)
int ZEXPORT inflate(z_streamp strm, int flush)
#define CRC4(check, word)
int ZEXPORT inflateCopy(z_streamp dest, z_streamp source)
local int updatewindow(z_streamp strm, const Bytef *end, unsigned copy)
int ZEXPORT inflateEnd(z_streamp strm)