xref: /utopia/UTPA2-700.0.x/modules/gpd/drv/gpd/inftrees.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 /* inftrees.h -- header to use inftrees.c
79  * Copyright (C) 1995-2005 Mark Adler
80  * For conditions of distribution and use, see copyright notice in zlib.h
81  */
82 
83 /* WARNING: this file should *not* be used by applications. It is
84    part of the implementation of the compression library and is
85    subject to change. Applications should only use zlib.h.
86  */
87 
88 /* Structure for decoding tables.  Each entry provides either the
89    information needed to do the operation requested by the code that
90    indexed that table entry, or it provides a pointer to another
91    table that indexes more bits of the code.  op indicates whether
92    the entry is a pointer to another table, a literal, a length or
93    distance, an end-of-block, or an invalid code.  For a table
94    pointer, the low four bits of op is the number of index bits of
95    that table.  For a length or distance, the low four bits of op
96    is the number of extra bits to get after the code.  bits is
97    the number of bits in this code or part of the code to drop off
98    of the bit buffer.  val is the actual byte to output in the case
99    of a literal, the base length or distance, or the offset from
100    the current table to the next table.  Each entry is four bytes. */
101 typedef struct {
102     MS_U8 op;           /* operation, extra bits, table bits */
103     MS_U8 bits;         /* bits in this part of the code */
104     MS_U16 val;         /* offset in table or code value */
105 } code;
106 
107 /* op values as set by inflate_table():
108     00000000 - literal
109     0000tttt - table link, tttt != 0 is the number of table index bits
110     0001eeee - length or distance, eeee is the number of extra bits
111     01100000 - end of block
112     01000000 - invalid code
113  */
114 
115 /* Maximum size of dynamic tree.  The maximum found in a long but non-
116    exhaustive search was 1444 code structures (852 for length/literals
117    and 592 for distances, the latter actually the result of an
118    exhaustive search).  The true maximum is not known, but the value
119    below is more than safe. */
120 #define ENOUGH 2048
121 #define MAXD 592
122 
123 /* Type of code to build for inftable() */
124 typedef enum {
125     CODES,
126     LENS,
127     DISTS
128 } codetype;
129 
130 extern MS_U32 gpdinflate_table OF((codetype type, MS_U16 FAR *lens,
131                              MS_U32 codes, code FAR * FAR *table,
132                              MS_U32 FAR *bits, MS_U16 FAR *work));
133