1*37da2899SCharles.Forsyth /* zconf.h -- configuration of the zlib compression library 2*37da2899SCharles.Forsyth * Copyright (C) 1995-2002 Jean-loup Gailly. 3*37da2899SCharles.Forsyth * For conditions of distribution and use, see copyright notice in zlib.h 4*37da2899SCharles.Forsyth */ 5*37da2899SCharles.Forsyth 6*37da2899SCharles.Forsyth /* @(#) $Id: zconf.h,v 1.2 2002/11/06 22:32:54 davidT Exp $ */ 7*37da2899SCharles.Forsyth 8*37da2899SCharles.Forsyth #ifndef _ZCONF_H 9*37da2899SCharles.Forsyth #define _ZCONF_H 10*37da2899SCharles.Forsyth 11*37da2899SCharles.Forsyth /* 12*37da2899SCharles.Forsyth * If you *really* need a unique prefix for all types and library functions, 13*37da2899SCharles.Forsyth * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. 14*37da2899SCharles.Forsyth */ 15*37da2899SCharles.Forsyth #ifdef Z_PREFIX 16*37da2899SCharles.Forsyth # define deflateInit_ z_deflateInit_ 17*37da2899SCharles.Forsyth # define deflate z_deflate 18*37da2899SCharles.Forsyth # define deflateEnd z_deflateEnd 19*37da2899SCharles.Forsyth # define inflateInit_ z_inflateInit_ 20*37da2899SCharles.Forsyth # define inflate z_inflate 21*37da2899SCharles.Forsyth # define inflateEnd z_inflateEnd 22*37da2899SCharles.Forsyth # define deflateInit2_ z_deflateInit2_ 23*37da2899SCharles.Forsyth # define deflateSetDictionary z_deflateSetDictionary 24*37da2899SCharles.Forsyth # define deflateCopy z_deflateCopy 25*37da2899SCharles.Forsyth # define deflateReset z_deflateReset 26*37da2899SCharles.Forsyth # define deflateParams z_deflateParams 27*37da2899SCharles.Forsyth # define inflateInit2_ z_inflateInit2_ 28*37da2899SCharles.Forsyth # define inflateSetDictionary z_inflateSetDictionary 29*37da2899SCharles.Forsyth # define inflateSync z_inflateSync 30*37da2899SCharles.Forsyth # define inflateSyncPoint z_inflateSyncPoint 31*37da2899SCharles.Forsyth # define inflateReset z_inflateReset 32*37da2899SCharles.Forsyth # define compress z_compress 33*37da2899SCharles.Forsyth # define compress2 z_compress2 34*37da2899SCharles.Forsyth # define uncompress z_uncompress 35*37da2899SCharles.Forsyth # define adler32 z_adler32 36*37da2899SCharles.Forsyth # define crc32 z_crc32 37*37da2899SCharles.Forsyth # define get_crc_table z_get_crc_table 38*37da2899SCharles.Forsyth 39*37da2899SCharles.Forsyth # define Byte z_Byte 40*37da2899SCharles.Forsyth # define uInt z_uInt 41*37da2899SCharles.Forsyth # define uLong z_uLong 42*37da2899SCharles.Forsyth # define Bytef z_Bytef 43*37da2899SCharles.Forsyth # define charf z_charf 44*37da2899SCharles.Forsyth # define intf z_intf 45*37da2899SCharles.Forsyth # define uIntf z_uIntf 46*37da2899SCharles.Forsyth # define uLongf z_uLongf 47*37da2899SCharles.Forsyth # define voidpf z_voidpf 48*37da2899SCharles.Forsyth # define voidp z_voidp 49*37da2899SCharles.Forsyth #endif 50*37da2899SCharles.Forsyth 51*37da2899SCharles.Forsyth #if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) 52*37da2899SCharles.Forsyth # define WIN32 53*37da2899SCharles.Forsyth #endif 54*37da2899SCharles.Forsyth #if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386) 55*37da2899SCharles.Forsyth # ifndef __32BIT__ 56*37da2899SCharles.Forsyth # define __32BIT__ 57*37da2899SCharles.Forsyth # endif 58*37da2899SCharles.Forsyth #endif 59*37da2899SCharles.Forsyth #if defined(__MSDOS__) && !defined(MSDOS) 60*37da2899SCharles.Forsyth # define MSDOS 61*37da2899SCharles.Forsyth #endif 62*37da2899SCharles.Forsyth 63*37da2899SCharles.Forsyth /* 64*37da2899SCharles.Forsyth * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 65*37da2899SCharles.Forsyth * than 64k bytes at a time (needed on systems with 16-bit int). 66*37da2899SCharles.Forsyth */ 67*37da2899SCharles.Forsyth #if defined(MSDOS) && !defined(__32BIT__) 68*37da2899SCharles.Forsyth # define MAXSEG_64K 69*37da2899SCharles.Forsyth #endif 70*37da2899SCharles.Forsyth #ifdef MSDOS 71*37da2899SCharles.Forsyth # define UNALIGNED_OK 72*37da2899SCharles.Forsyth #endif 73*37da2899SCharles.Forsyth 74*37da2899SCharles.Forsyth #if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) && !defined(STDC) 75*37da2899SCharles.Forsyth # define STDC 76*37da2899SCharles.Forsyth #endif 77*37da2899SCharles.Forsyth #if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__) 78*37da2899SCharles.Forsyth # ifndef STDC 79*37da2899SCharles.Forsyth # define STDC 80*37da2899SCharles.Forsyth # endif 81*37da2899SCharles.Forsyth #endif 82*37da2899SCharles.Forsyth 83*37da2899SCharles.Forsyth #ifndef STDC 84*37da2899SCharles.Forsyth # ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 85*37da2899SCharles.Forsyth # define const 86*37da2899SCharles.Forsyth # endif 87*37da2899SCharles.Forsyth #endif 88*37da2899SCharles.Forsyth 89*37da2899SCharles.Forsyth /* Some Mac compilers merge all .h files incorrectly: */ 90*37da2899SCharles.Forsyth #if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__) 91*37da2899SCharles.Forsyth # define NO_DUMMY_DECL 92*37da2899SCharles.Forsyth #endif 93*37da2899SCharles.Forsyth 94*37da2899SCharles.Forsyth /* Old Borland C incorrectly complains about missing returns: */ 95*37da2899SCharles.Forsyth #if defined(__BORLANDC__) && (__BORLANDC__ < 0x500) 96*37da2899SCharles.Forsyth # define NEED_DUMMY_RETURN 97*37da2899SCharles.Forsyth #endif 98*37da2899SCharles.Forsyth 99*37da2899SCharles.Forsyth 100*37da2899SCharles.Forsyth /* Maximum value for memLevel in deflateInit2 */ 101*37da2899SCharles.Forsyth #ifndef MAX_MEM_LEVEL 102*37da2899SCharles.Forsyth # ifdef MAXSEG_64K 103*37da2899SCharles.Forsyth # define MAX_MEM_LEVEL 8 104*37da2899SCharles.Forsyth # else 105*37da2899SCharles.Forsyth # define MAX_MEM_LEVEL 9 106*37da2899SCharles.Forsyth # endif 107*37da2899SCharles.Forsyth #endif 108*37da2899SCharles.Forsyth 109*37da2899SCharles.Forsyth /* Maximum value for windowBits in deflateInit2 and inflateInit2. 110*37da2899SCharles.Forsyth * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 111*37da2899SCharles.Forsyth * created by gzip. (Files created by minigzip can still be extracted by 112*37da2899SCharles.Forsyth * gzip.) 113*37da2899SCharles.Forsyth */ 114*37da2899SCharles.Forsyth #ifndef MAX_WBITS 115*37da2899SCharles.Forsyth # define MAX_WBITS 15 /* 32K LZ77 window */ 116*37da2899SCharles.Forsyth #endif 117*37da2899SCharles.Forsyth 118*37da2899SCharles.Forsyth /* The memory requirements for deflate are (in bytes): 119*37da2899SCharles.Forsyth (1 << (windowBits+2)) + (1 << (memLevel+9)) 120*37da2899SCharles.Forsyth that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 121*37da2899SCharles.Forsyth plus a few kilobytes for small objects. For example, if you want to reduce 122*37da2899SCharles.Forsyth the default memory requirements from 256K to 128K, compile with 123*37da2899SCharles.Forsyth make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 124*37da2899SCharles.Forsyth Of course this will generally degrade compression (there's no free lunch). 125*37da2899SCharles.Forsyth 126*37da2899SCharles.Forsyth The memory requirements for inflate are (in bytes) 1 << windowBits 127*37da2899SCharles.Forsyth that is, 32K for windowBits=15 (default value) plus a few kilobytes 128*37da2899SCharles.Forsyth for small objects. 129*37da2899SCharles.Forsyth */ 130*37da2899SCharles.Forsyth 131*37da2899SCharles.Forsyth /* Type declarations */ 132*37da2899SCharles.Forsyth 133*37da2899SCharles.Forsyth #ifndef OF /* function prototypes */ 134*37da2899SCharles.Forsyth # ifdef STDC 135*37da2899SCharles.Forsyth # define OF(args) args 136*37da2899SCharles.Forsyth # else 137*37da2899SCharles.Forsyth # define OF(args) () 138*37da2899SCharles.Forsyth # endif 139*37da2899SCharles.Forsyth #endif 140*37da2899SCharles.Forsyth 141*37da2899SCharles.Forsyth /* The following definitions for FAR are needed only for MSDOS mixed 142*37da2899SCharles.Forsyth * model programming (small or medium model with some far allocations). 143*37da2899SCharles.Forsyth * This was tested only with MSC; for other MSDOS compilers you may have 144*37da2899SCharles.Forsyth * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 145*37da2899SCharles.Forsyth * just define FAR to be empty. 146*37da2899SCharles.Forsyth */ 147*37da2899SCharles.Forsyth #if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__) 148*37da2899SCharles.Forsyth /* MSC small or medium model */ 149*37da2899SCharles.Forsyth # define SMALL_MEDIUM 150*37da2899SCharles.Forsyth # ifdef _MSC_VER 151*37da2899SCharles.Forsyth # define FAR _far 152*37da2899SCharles.Forsyth # else 153*37da2899SCharles.Forsyth # define FAR far 154*37da2899SCharles.Forsyth # endif 155*37da2899SCharles.Forsyth #endif 156*37da2899SCharles.Forsyth #if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__)) 157*37da2899SCharles.Forsyth # ifndef __32BIT__ 158*37da2899SCharles.Forsyth # define SMALL_MEDIUM 159*37da2899SCharles.Forsyth # define FAR _far 160*37da2899SCharles.Forsyth # endif 161*37da2899SCharles.Forsyth #endif 162*37da2899SCharles.Forsyth 163*37da2899SCharles.Forsyth /* Compile with -DZLIB_DLL for Windows DLL support */ 164*37da2899SCharles.Forsyth #if defined(ZLIB_DLL) 165*37da2899SCharles.Forsyth # if defined(_WINDOWS) || defined(WINDOWS) 166*37da2899SCharles.Forsyth # ifdef FAR 167*37da2899SCharles.Forsyth # undef FAR 168*37da2899SCharles.Forsyth # endif 169*37da2899SCharles.Forsyth # include <windows.h> 170*37da2899SCharles.Forsyth # define ZEXPORT WINAPI 171*37da2899SCharles.Forsyth # ifdef WIN32 172*37da2899SCharles.Forsyth # define ZEXPORTVA WINAPIV 173*37da2899SCharles.Forsyth # else 174*37da2899SCharles.Forsyth # define ZEXPORTVA FAR _cdecl _export 175*37da2899SCharles.Forsyth # endif 176*37da2899SCharles.Forsyth # endif 177*37da2899SCharles.Forsyth # if defined (__BORLANDC__) 178*37da2899SCharles.Forsyth # if (__BORLANDC__ >= 0x0500) && defined (WIN32) 179*37da2899SCharles.Forsyth # include <windows.h> 180*37da2899SCharles.Forsyth # define ZEXPORT __declspec(dllexport) WINAPI 181*37da2899SCharles.Forsyth # define ZEXPORTRVA __declspec(dllexport) WINAPIV 182*37da2899SCharles.Forsyth # else 183*37da2899SCharles.Forsyth # if defined (_Windows) && defined (__DLL__) 184*37da2899SCharles.Forsyth # define ZEXPORT _export 185*37da2899SCharles.Forsyth # define ZEXPORTVA _export 186*37da2899SCharles.Forsyth # endif 187*37da2899SCharles.Forsyth # endif 188*37da2899SCharles.Forsyth # endif 189*37da2899SCharles.Forsyth #endif 190*37da2899SCharles.Forsyth 191*37da2899SCharles.Forsyth 192*37da2899SCharles.Forsyth #ifndef ZEXPORT 193*37da2899SCharles.Forsyth # define ZEXPORT 194*37da2899SCharles.Forsyth #endif 195*37da2899SCharles.Forsyth #ifndef ZEXPORTVA 196*37da2899SCharles.Forsyth # define ZEXPORTVA 197*37da2899SCharles.Forsyth #endif 198*37da2899SCharles.Forsyth #ifndef ZEXTERN 199*37da2899SCharles.Forsyth # define ZEXTERN static 200*37da2899SCharles.Forsyth #endif 201*37da2899SCharles.Forsyth #ifndef ZEXTERNDEF 202*37da2899SCharles.Forsyth # define ZEXTERNDEF static 203*37da2899SCharles.Forsyth #endif 204*37da2899SCharles.Forsyth 205*37da2899SCharles.Forsyth #ifndef FAR 206*37da2899SCharles.Forsyth # define FAR 207*37da2899SCharles.Forsyth #endif 208*37da2899SCharles.Forsyth 209*37da2899SCharles.Forsyth #if !defined(MACOS) && !defined(TARGET_OS_MAC) 210*37da2899SCharles.Forsyth typedef unsigned char Byte; /* 8 bits */ 211*37da2899SCharles.Forsyth #endif 212*37da2899SCharles.Forsyth typedef unsigned int uInt; /* 16 bits or more */ 213*37da2899SCharles.Forsyth typedef unsigned long uLong; /* 32 bits or more */ 214*37da2899SCharles.Forsyth 215*37da2899SCharles.Forsyth #ifdef SMALL_MEDIUM 216*37da2899SCharles.Forsyth /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 217*37da2899SCharles.Forsyth # define Bytef Byte FAR 218*37da2899SCharles.Forsyth #else 219*37da2899SCharles.Forsyth typedef Byte FAR Bytef; 220*37da2899SCharles.Forsyth #endif 221*37da2899SCharles.Forsyth typedef char FAR charf; 222*37da2899SCharles.Forsyth typedef int FAR intf; 223*37da2899SCharles.Forsyth typedef uInt FAR uIntf; 224*37da2899SCharles.Forsyth typedef uLong FAR uLongf; 225*37da2899SCharles.Forsyth 226*37da2899SCharles.Forsyth #ifdef STDC 227*37da2899SCharles.Forsyth typedef void FAR *voidpf; 228*37da2899SCharles.Forsyth typedef void *voidp; 229*37da2899SCharles.Forsyth #else 230*37da2899SCharles.Forsyth typedef Byte FAR *voidpf; 231*37da2899SCharles.Forsyth typedef Byte *voidp; 232*37da2899SCharles.Forsyth #endif 233*37da2899SCharles.Forsyth 234*37da2899SCharles.Forsyth #ifdef HAVE_UNISTD_H 235*37da2899SCharles.Forsyth # include <sys/types.h> /* for off_t */ 236*37da2899SCharles.Forsyth # include <unistd.h> /* for SEEK_* and off_t */ 237*37da2899SCharles.Forsyth # define z_off_t off_t 238*37da2899SCharles.Forsyth #endif 239*37da2899SCharles.Forsyth #ifndef SEEK_SET 240*37da2899SCharles.Forsyth # define SEEK_SET 0 /* Seek from beginning of file. */ 241*37da2899SCharles.Forsyth # define SEEK_CUR 1 /* Seek from current position. */ 242*37da2899SCharles.Forsyth # define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 243*37da2899SCharles.Forsyth #endif 244*37da2899SCharles.Forsyth #ifndef z_off_t 245*37da2899SCharles.Forsyth # define z_off_t long 246*37da2899SCharles.Forsyth #endif 247*37da2899SCharles.Forsyth 248*37da2899SCharles.Forsyth /* MVS linker does not support external names larger than 8 bytes */ 249*37da2899SCharles.Forsyth #if defined(__MVS__) 250*37da2899SCharles.Forsyth # pragma map(deflateInit_,"DEIN") 251*37da2899SCharles.Forsyth # pragma map(deflateInit2_,"DEIN2") 252*37da2899SCharles.Forsyth # pragma map(deflateEnd,"DEEND") 253*37da2899SCharles.Forsyth # pragma map(inflateInit_,"ININ") 254*37da2899SCharles.Forsyth # pragma map(inflateInit2_,"ININ2") 255*37da2899SCharles.Forsyth # pragma map(inflateEnd,"INEND") 256*37da2899SCharles.Forsyth # pragma map(inflateSync,"INSY") 257*37da2899SCharles.Forsyth # pragma map(inflateSetDictionary,"INSEDI") 258*37da2899SCharles.Forsyth # pragma map(inflate_blocks,"INBL") 259*37da2899SCharles.Forsyth # pragma map(inflate_blocks_new,"INBLNE") 260*37da2899SCharles.Forsyth # pragma map(inflate_blocks_free,"INBLFR") 261*37da2899SCharles.Forsyth # pragma map(inflate_blocks_reset,"INBLRE") 262*37da2899SCharles.Forsyth # pragma map(inflate_codes_free,"INCOFR") 263*37da2899SCharles.Forsyth # pragma map(inflate_codes,"INCO") 264*37da2899SCharles.Forsyth # pragma map(inflate_fast,"INFA") 265*37da2899SCharles.Forsyth # pragma map(inflate_flush,"INFLU") 266*37da2899SCharles.Forsyth # pragma map(inflate_mask,"INMA") 267*37da2899SCharles.Forsyth # pragma map(inflate_set_dictionary,"INSEDI2") 268*37da2899SCharles.Forsyth # pragma map(inflate_copyright,"INCOPY") 269*37da2899SCharles.Forsyth # pragma map(inflate_trees_bits,"INTRBI") 270*37da2899SCharles.Forsyth # pragma map(inflate_trees_dynamic,"INTRDY") 271*37da2899SCharles.Forsyth # pragma map(inflate_trees_fixed,"INTRFI") 272*37da2899SCharles.Forsyth # pragma map(inflate_trees_free,"INTRFR") 273*37da2899SCharles.Forsyth #endif 274*37da2899SCharles.Forsyth 275*37da2899SCharles.Forsyth #endif /* _ZCONF_H */ 276