The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/lib/libz/inftrees.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $NetBSD: inftrees.h,v 1.6 2005/02/26 22:58:57 perry Exp $ */
    2 
    3 /* inftrees.h -- header to use inftrees.c
    4  * Copyright (C) 1995-2002 Mark Adler
    5  * For conditions of distribution and use, see copyright notice in zlib.h
    6  */
    7 
    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.
   11  */
   12 
   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). */
   15 
   16 typedef struct inflate_huft_s FAR inflate_huft;
   17 
   18 struct inflate_huft_s {
   19   union {
   20     struct {
   21       Byte Exop;        /* number of extra bits or operation */
   22       Byte Bits;        /* number of bits in this code or subcode */
   23     } what;
   24     uInt pad;           /* pad structure to a power of 2 (4 bytes for */
   25   } word;               /*  16-bit, 8 bytes for 32-bit int's) */
   26   uInt base;            /* literal, length base, distance base,
   27                            or table offset */
   28 };
   29 
   30 /* Maximum size of dynamic tree.  The maximum found in a long but non-
   31    exhaustive search was 1004 huft structures (850 for length/literals
   32    and 154 for distances, the latter actually the result of an
   33    exhaustive search).  The actual maximum is not known, but the
   34    value below is more than safe. */
   35 #define MANY 1440
   36 
   37 extern int inflate_trees_bits __P((
   38     uIntf *,                    /* 19 code lengths */
   39     uIntf *,                    /* bits tree desired/actual depth */
   40     inflate_huft * FAR *,       /* bits tree result */
   41     inflate_huft *,             /* space for trees */
   42     z_streamp));                /* for messages */
   43 
   44 extern int inflate_trees_dynamic __P((
   45     uInt,                       /* number of literal/length codes */
   46     uInt,                       /* number of distance codes */
   47     uIntf *,                    /* that many (total) code lengths */
   48     uIntf *,                    /* literal desired/actual bit depth */
   49     uIntf *,                    /* distance desired/actual bit depth */
   50     inflate_huft * FAR *,       /* literal/length tree result */
   51     inflate_huft * FAR *,       /* distance tree result */
   52     inflate_huft *,             /* space for trees */
   53     z_streamp));                /* for messages */
   54 
   55 extern int inflate_trees_fixed __P((
   56     uIntf *,                    /* literal desired/actual bit depth */
   57     uIntf *,                    /* distance desired/actual bit depth */
   58     const inflate_huft * FAR *, /* literal/length tree result */
   59     const inflate_huft * FAR *, /* distance tree result */
   60     z_streamp));                /* for memory allocation */

Cache object: d05de203f50301f078387556339c9ea9


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.