blob: 46522c8e653f18c416c46e2bbd474a6b1a2259ea [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 */
86
87#include <linux/string.h>
88#define zmemcpy memcpy
89#define zmemcmp memcmp
90#define zmemzero(dest, len) memset(dest, 0, len)
91
92/* Diagnostic functions */
93#ifdef DEBUG
94# include <stdio.h>
95 extern int z_verbose;
96 extern void z_error OF((char *m));
97# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
98# define Trace(x) {if (z_verbose>=0) fprintf x ;}
99# define Tracev(x) {if (z_verbose>0) fprintf x ;}
100# define Tracevv(x) {if (z_verbose>1) fprintf x ;}
101# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
102# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
103#else
104# define Assert(cond,msg)
105# define Trace(x)
106# define Tracev(x)
107# define Tracevv(x)
108# define Tracec(c,x)
109# define Tracecv(c,x)
110#endif
111
112
113voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
114void zcfree OF((voidpf opaque, voidpf ptr, unsigned size));
115
116#define ZALLOC(strm, items, size) \
117 (*((strm)->zalloc))((strm)->opaque, (items), (size))
118#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr), 0)
119#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
120
121#endif /* ZUTIL_H */