xref: /rk3399_rockchip-uboot/lib/zlib/zutil.h (revision e89516f031dbf711b71e6ee4d131cdc8b9946fb0)
1*e89516f0SMike Frysinger /* zutil.h -- internal interface and configuration of the compression library
2*e89516f0SMike Frysinger  * Copyright (C) 1995-2005 Jean-loup Gailly.
3*e89516f0SMike Frysinger  * For conditions of distribution and use, see copyright notice in zlib.h
4*e89516f0SMike Frysinger  */
5*e89516f0SMike Frysinger 
6*e89516f0SMike Frysinger /* WARNING: this file should *not* be used by applications. It is
7*e89516f0SMike Frysinger    part of the implementation of the compression library and is
8*e89516f0SMike Frysinger    subject to change. Applications should only use zlib.h.
9*e89516f0SMike Frysinger  */
10*e89516f0SMike Frysinger 
11*e89516f0SMike Frysinger /* @(#) $Id$ */
12*e89516f0SMike Frysinger 
13*e89516f0SMike Frysinger #ifndef ZUTIL_H
14*e89516f0SMike Frysinger #define ZUTIL_H
15*e89516f0SMike Frysinger 
16*e89516f0SMike Frysinger #define ZLIB_INTERNAL
17*e89516f0SMike Frysinger #include "zlib.h"
18*e89516f0SMike Frysinger 
19*e89516f0SMike Frysinger #ifdef STDC
20*e89516f0SMike Frysinger #  ifndef _WIN32_WCE
21*e89516f0SMike Frysinger #    include <stddef.h>
22*e89516f0SMike Frysinger #  endif
23*e89516f0SMike Frysinger #  include <string.h>
24*e89516f0SMike Frysinger #  include <stdlib.h>
25*e89516f0SMike Frysinger #endif
26*e89516f0SMike Frysinger #ifdef NO_ERRNO_H
27*e89516f0SMike Frysinger #   ifdef _WIN32_WCE
28*e89516f0SMike Frysinger       /* The Microsoft C Run-Time Library for Windows CE doesn't have
29*e89516f0SMike Frysinger        * errno.  We define it as a global variable to simplify porting.
30*e89516f0SMike Frysinger        * Its value is always 0 and should not be used.  We rename it to
31*e89516f0SMike Frysinger        * avoid conflict with other libraries that use the same workaround.
32*e89516f0SMike Frysinger        */
33*e89516f0SMike Frysinger #     define errno z_errno
34*e89516f0SMike Frysinger #   endif
35*e89516f0SMike Frysinger     extern int errno;
36*e89516f0SMike Frysinger #else
37*e89516f0SMike Frysinger #  ifndef _WIN32_WCE
38*e89516f0SMike Frysinger #    include <errno.h>
39*e89516f0SMike Frysinger #  endif
40*e89516f0SMike Frysinger #endif
41*e89516f0SMike Frysinger 
42*e89516f0SMike Frysinger #ifndef local
43*e89516f0SMike Frysinger #  define local static
44*e89516f0SMike Frysinger #endif
45*e89516f0SMike Frysinger /* compile with -Dlocal if your debugger can't find static symbols */
46*e89516f0SMike Frysinger 
47*e89516f0SMike Frysinger typedef unsigned char  uch;
48*e89516f0SMike Frysinger typedef uch FAR uchf;
49*e89516f0SMike Frysinger typedef unsigned short ush;
50*e89516f0SMike Frysinger typedef ush FAR ushf;
51*e89516f0SMike Frysinger typedef unsigned long  ulg;
52*e89516f0SMike Frysinger 
53*e89516f0SMike Frysinger extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
54*e89516f0SMike Frysinger /* (size given to avoid silly warnings with Visual C++) */
55*e89516f0SMike Frysinger 
56*e89516f0SMike Frysinger #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
57*e89516f0SMike Frysinger 
58*e89516f0SMike Frysinger #define ERR_RETURN(strm,err) \
59*e89516f0SMike Frysinger   return (strm->msg = (char*)ERR_MSG(err), (err))
60*e89516f0SMike Frysinger /* To be used only when the state is known to be valid */
61*e89516f0SMike Frysinger 
62*e89516f0SMike Frysinger         /* common constants */
63*e89516f0SMike Frysinger 
64*e89516f0SMike Frysinger #ifndef DEF_WBITS
65*e89516f0SMike Frysinger #  define DEF_WBITS MAX_WBITS
66*e89516f0SMike Frysinger #endif
67*e89516f0SMike Frysinger /* default windowBits for decompression. MAX_WBITS is for compression only */
68*e89516f0SMike Frysinger 
69*e89516f0SMike Frysinger #if MAX_MEM_LEVEL >= 8
70*e89516f0SMike Frysinger #  define DEF_MEM_LEVEL 8
71*e89516f0SMike Frysinger #else
72*e89516f0SMike Frysinger #  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
73*e89516f0SMike Frysinger #endif
74*e89516f0SMike Frysinger /* default memLevel */
75*e89516f0SMike Frysinger 
76*e89516f0SMike Frysinger #define STORED_BLOCK 0
77*e89516f0SMike Frysinger #define STATIC_TREES 1
78*e89516f0SMike Frysinger #define DYN_TREES    2
79*e89516f0SMike Frysinger /* The three kinds of block type */
80*e89516f0SMike Frysinger 
81*e89516f0SMike Frysinger #define MIN_MATCH  3
82*e89516f0SMike Frysinger #define MAX_MATCH  258
83*e89516f0SMike Frysinger /* The minimum and maximum match lengths */
84*e89516f0SMike Frysinger 
85*e89516f0SMike Frysinger 	 /* functions */
86*e89516f0SMike Frysinger 
87*e89516f0SMike Frysinger #include <linux/string.h>
88*e89516f0SMike Frysinger #define zmemcpy memcpy
89*e89516f0SMike Frysinger #define zmemcmp memcmp
90*e89516f0SMike Frysinger #define zmemzero(dest, len) memset(dest, 0, len)
91*e89516f0SMike Frysinger 
92*e89516f0SMike Frysinger /* Diagnostic functions */
93*e89516f0SMike Frysinger #ifdef DEBUG
94*e89516f0SMike Frysinger #  include <stdio.h>
95*e89516f0SMike Frysinger    extern int z_verbose;
96*e89516f0SMike Frysinger    extern void z_error    OF((char *m));
97*e89516f0SMike Frysinger #  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
98*e89516f0SMike Frysinger #  define Trace(x) {if (z_verbose>=0) fprintf x ;}
99*e89516f0SMike Frysinger #  define Tracev(x) {if (z_verbose>0) fprintf x ;}
100*e89516f0SMike Frysinger #  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
101*e89516f0SMike Frysinger #  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
102*e89516f0SMike Frysinger #  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
103*e89516f0SMike Frysinger #else
104*e89516f0SMike Frysinger #  define Assert(cond,msg)
105*e89516f0SMike Frysinger #  define Trace(x)
106*e89516f0SMike Frysinger #  define Tracev(x)
107*e89516f0SMike Frysinger #  define Tracevv(x)
108*e89516f0SMike Frysinger #  define Tracec(c,x)
109*e89516f0SMike Frysinger #  define Tracecv(c,x)
110*e89516f0SMike Frysinger #endif
111*e89516f0SMike Frysinger 
112*e89516f0SMike Frysinger 
113*e89516f0SMike Frysinger voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
114*e89516f0SMike Frysinger void   zcfree  OF((voidpf opaque, voidpf ptr, unsigned size));
115*e89516f0SMike Frysinger 
116*e89516f0SMike Frysinger #define ZALLOC(strm, items, size) \
117*e89516f0SMike Frysinger            (*((strm)->zalloc))((strm)->opaque, (items), (size))
118*e89516f0SMike Frysinger #define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr), 0)
119*e89516f0SMike Frysinger #define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
120*e89516f0SMike Frysinger 
121*e89516f0SMike Frysinger #endif /* ZUTIL_H */
122