zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
inftrees.h
Go to the documentation of this file.
1 /* inftrees.h -- header to use inftrees.c
2  * Copyright (C) 1995-2002 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 /* Huffman code lookup table entry--this entry is four bytes for machines
12  that have 16-bit pointers (e.g. PC's in the small or medium model). */
13 
14 #ifndef _INFTREES_H
15 #define _INFTREES_H
16 
18 
20  union {
21  struct {
22  Byte Exop; /* number of extra bits or operation */
23  Byte Bits; /* number of bits in this code or subcode */
24  } what;
25  uInt pad; /* pad structure to a power of 2 (4 bytes for */
26  } word; /* 16-bit, 8 bytes for 32-bit int's) */
27  uInt base; /* literal, length base, distance base,
28  or table offset */
29 };
30 
31 /* Maximum size of dynamic tree. The maximum found in a long but non-
32  exhaustive search was 1004 huft structures (850 for length/literals
33  and 154 for distances, the latter actually the result of an
34  exhaustive search). The actual maximum is not known, but the
35  value below is more than safe. */
36 #define MANY 1440
37 
39  uIntf *, /* 19 code lengths */
40  uIntf *, /* bits tree desired/actual depth */
41  inflate_huft * FAR *, /* bits tree result */
42  inflate_huft *, /* space for trees */
43  z_streamp)); /* for messages */
44 
46  uInt, /* number of literal/length codes */
47  uInt, /* number of distance codes */
48  uIntf *, /* that many (total) code lengths */
49  uIntf *, /* literal desired/actual bit depth */
50  uIntf *, /* distance desired/actual bit depth */
51  inflate_huft * FAR *, /* literal/length tree result */
52  inflate_huft * FAR *, /* distance tree result */
53  inflate_huft *, /* space for trees */
54  z_streamp)); /* for messages */
55 
57  uIntf *, /* literal desired/actual bit depth */
58  uIntf *, /* distance desired/actual bit depth */
59  const inflate_huft * FAR *, /* literal/length tree result */
60  const inflate_huft * FAR *, /* distance tree result */
61  z_streamp)); /* for memory allocation */
62 
63 #endif /* _INFTREES_H */
local int inflate_trees_fixed(uIntf *bl, uIntf *bd, const inflate_huft *FAR *tl, const inflate_huft *FAR *td, z_streamp z)
Definition: inftrees.c:409
#define local
Definition: zutil.h:30
unsigned int uInt
Definition: zconf.h:221
union inflate_huft_s::@32 word
struct inflate_huft_s::@32::@33 what
local int inflate_trees_bits(uIntf *c, uIntf *bb, inflate_huft *FAR *tb, inflate_huft *hp, z_streamp z)
Definition: inftrees.c:299
#define FAR
Definition: zconf.h:215
#define OF(args)
Definition: zconf.h:146
z_stream FAR * z_streamp
Definition: zlib.h:89
unsigned char Byte
Definition: zconf.h:219
uInt FAR uIntf
Definition: zconf.h:232
struct inflate_huft_s FAR inflate_huft
Definition: inftrees.h:17
local int inflate_trees_dynamic(uInt nl, uInt nd, uIntf *c, uIntf *bl, uIntf *bd, inflate_huft *FAR *tl, inflate_huft *FAR *td, inflate_huft *hp, z_streamp z)
Definition: inftrees.c:327