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