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