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