1
/* $Xorg: inftrees.h,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */
3
/* inftrees.h -- header to use inftrees.c
4
* Copyright (C) 1995-1998 Mark Adler
5
* For conditions of distribution and use, see copyright notice in zlib.h
8
/* WARNING: this file should *not* be used by applications. It is
9
part of the implementation of the compression library and is
10
subject to change. Applications should only use zlib.h.
13
/* Huffman code lookup table entry--this entry is four bytes for machines
14
that have 16-bit pointers (e.g. PC's in the small or medium model). */
16
typedef struct inflate_huft_s FAR inflate_huft;
18
struct inflate_huft_s {
21
Byte Exop; /* number of extra bits or operation */
22
Byte Bits; /* number of bits in this code or subcode */
24
Bytef *pad; /* pad structure to a power of 2 (4 bytes for */
25
} word; /* 16-bit, 8 bytes for 32-bit machines) */
27
uInt Base; /* literal, length base, or distance base */
28
inflate_huft *Next; /* pointer to next level of table */
33
extern uInt inflate_hufts;
36
extern int inflate_trees_bits OF((
37
uIntf *, /* 19 code lengths */
38
uIntf *, /* bits tree desired/actual depth */
39
inflate_huft * FAR *, /* bits tree result */
40
z_streamp )); /* for zalloc, zfree functions */
42
extern 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
z_streamp )); /* for zalloc, zfree functions */
52
extern int inflate_trees_fixed OF((
53
uIntf *, /* literal desired/actual bit depth */
54
uIntf *, /* distance desired/actual bit depth */
55
inflate_huft * FAR *, /* literal/length tree result */
56
inflate_huft * FAR *)); /* distance tree result */
58
extern int inflate_trees_free OF((
59
inflate_huft *, /* tables to free */
60
z_streamp )); /* for zfree function */