Rizin
unix-like reverse engineering framework and cli tools
inflate9.h
Go to the documentation of this file.
1 /* inflate9.h -- internal inflate state definition
2  * Copyright (C) 1995-2003 Mark Adler
3  * For conditions of distribution and use, see copyright notice in zlib.h
4  */
5 
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.
9  */
10 
11 /* Possible inflate modes between inflate() calls */
12 typedef enum {
13  TYPE, /* i: waiting for type bits, including last-flag bit */
14  STORED, /* i: waiting for stored size (length and complement) */
15  TABLE, /* i: waiting for dynamic block table lengths */
16  LEN, /* i: waiting for length/lit code */
17  DONE, /* finished check, done -- remain here until reset */
18  BAD /* got a data error -- remain here until reset */
20 
21 /*
22  State transitions between above modes -
23 
24  (most modes can go to the BAD mode -- not shown for clarity)
25 
26  Read deflate blocks:
27  TYPE -> STORED or TABLE or LEN or DONE
28  STORED -> TYPE
29  TABLE -> LENLENS -> CODELENS -> LEN
30  Read deflate codes:
31  LEN -> LEN or TYPE
32  */
33 
34 /* state maintained between inflate() calls. Approximately 7K bytes. */
35 struct inflate_state {
36  /* sliding window */
37  unsigned char FAR *window; /* allocated sliding window, if needed */
38  /* dynamic table building */
39  unsigned ncode; /* number of code length code lengths */
40  unsigned nlen; /* number of length code lengths */
41  unsigned ndist; /* number of distance code lengths */
42  unsigned have; /* number of code lengths in lens[] */
43  code FAR *next; /* next available space in codes[] */
44  unsigned short lens[320]; /* temporary storage for code lengths */
45  unsigned short work[288]; /* work area for code table building */
46  code codes[ENOUGH]; /* space for code tables */
47 };
inflate_mode
Definition: inflate9.h:12
@ TABLE
Definition: inflate9.h:15
@ STORED
Definition: inflate9.h:14
@ DONE
Definition: inflate9.h:17
@ TYPE
Definition: inflate9.h:13
@ BAD
Definition: inflate9.h:18
@ LEN
Definition: inflate9.h:16
#define ENOUGH
Definition: inftree9.h:50
Definition: inftree9.h:24
unsigned short work[288]
Definition: inflate9.h:45
unsigned short lens[320]
Definition: inflate9.h:44
unsigned char FAR * window
Definition: inflate9.h:37
unsigned ndist
Definition: inflate9.h:41
unsigned nlen
Definition: inflate9.h:40
unsigned have
Definition: inflate9.h:42
unsigned ncode
Definition: inflate9.h:39
code FAR * next
Definition: inflate9.h:43
code codes[ENOUGH]
Definition: inflate9.h:46
#define FAR
Definition: zconf.h:387