source: trunk/third/zlib/inftrees.h @ 15211

Revision 15211, 2.6 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r15210, which included commits to RCS files with non-trunk default branches.
Line 
1/* inftrees.h -- header to use inftrees.c
2 * Copyright (C) 1995-1998 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
14typedef struct inflate_huft_s FAR inflate_huft;
15
16struct inflate_huft_s {
17  union {
18    struct {
19      Byte Exop;        /* number of extra bits or operation */
20      Byte Bits;        /* number of bits in this code or subcode */
21    } what;
22    uInt pad;           /* pad structure to a power of 2 (4 bytes for */
23  } word;               /*  16-bit, 8 bytes for 32-bit int's) */
24  uInt base;            /* literal, length base, distance base,
25                           or table offset */
26};
27
28/* Maximum size of dynamic tree.  The maximum found in a long but non-
29   exhaustive search was 1004 huft structures (850 for length/literals
30   and 154 for distances, the latter actually the result of an
31   exhaustive search).  The actual maximum is not known, but the
32   value below is more than safe. */
33#define MANY 1440
34
35extern int inflate_trees_bits OF((
36    uIntf *,                    /* 19 code lengths */
37    uIntf *,                    /* bits tree desired/actual depth */
38    inflate_huft * FAR *,       /* bits tree result */
39    inflate_huft *,             /* space for trees */
40    z_streamp));                /* for messages */
41
42extern int inflate_trees_dynamic OF((
43    uInt,                       /* number of literal/length codes */
44    uInt,                       /* number of distance codes */
45    uIntf *,                    /* that many (total) code lengths */
46    uIntf *,                    /* literal desired/actual bit depth */
47    uIntf *,                    /* distance desired/actual bit depth */
48    inflate_huft * FAR *,       /* literal/length tree result */
49    inflate_huft * FAR *,       /* distance tree result */
50    inflate_huft *,             /* space for trees */
51    z_streamp));                /* for messages */
52
53extern int inflate_trees_fixed OF((
54    uIntf *,                    /* literal desired/actual bit depth */
55    uIntf *,                    /* distance desired/actual bit depth */
56    inflate_huft * FAR *,       /* literal/length tree result */
57    inflate_huft * FAR *,       /* distance tree result */
58    z_streamp));                /* for memory allocation */
Note: See TracBrowser for help on using the repository browser.