zconf.h 8.72 KB
Newer Older
1
/* zconf.h -- configuration of the zlib compression library
2 3
 * Copyright (C) 1995-2003 Jean-loup Gailly.
 * For conditions of distribution and use, see copyright notice in zlib.h
4 5 6 7
 */

/* @(#) $Id$ */

8 9
#ifndef ZCONF_H
#define ZCONF_H
10 11 12 13 14 15

/*
 * If you *really* need a unique prefix for all types and library functions,
 * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
 */
#ifdef Z_PREFIX
16 17 18 19 20 21 22
#  define deflateInit_  z_deflateInit_
#  define deflate       z_deflate
#  define deflateEnd    z_deflateEnd
#  define inflateInit_  z_inflateInit_
#  define inflate       z_inflate
#  define inflateEnd    z_inflateEnd
#  define deflateInit2_ z_deflateInit2_
23
#  define deflateSetDictionary z_deflateSetDictionary
24 25 26 27 28 29
#  define deflateCopy   z_deflateCopy
#  define deflateReset  z_deflateReset
#  define deflatePrime  z_deflatePrime
#  define deflateParams z_deflateParams
#  define deflateBound  z_deflateBound
#  define inflateInit2_ z_inflateInit2_
30
#  define inflateSetDictionary z_inflateSetDictionary
31
#  define inflateSync   z_inflateSync
32
#  define inflateSyncPoint z_inflateSyncPoint
33 34 35 36 37 38 39 40
#  define inflateCopy   z_inflateCopy
#  define inflateReset  z_inflateReset
#  define compress      z_compress
#  define compress2     z_compress2
#  define compressBound z_compressBound
#  define uncompress    z_uncompress
#  define adler32       z_adler32
#  define crc32         z_crc32
41 42
#  define get_crc_table z_get_crc_table

43 44 45 46 47 48 49 50 51 52
#  define Byte          z_Byte
#  define uInt          z_uInt
#  define uLong         z_uLong
#  define Bytef         z_Bytef
#  define charf         z_charf
#  define intf          z_intf
#  define uIntf         z_uIntf
#  define uLongf        z_uLongf
#  define voidpf        z_voidpf
#  define voidp         z_voidp
53 54
#endif

55 56 57 58 59 60 61 62 63
#if defined(__MSDOS__) && !defined(MSDOS)
#  define MSDOS
#endif
#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
#  define OS2
#endif
#if defined(_WINDOWS) && !defined(WINDOWS)
#  define WINDOWS
#endif
64 65 66
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
#  define WIN32
#endif
67 68 69 70 71
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
#    ifndef SYS16BIT
#      define SYS16BIT
#    endif
72 73 74 75 76 77 78
#  endif
#endif

/*
 * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
 * than 64k bytes at a time (needed on systems with 16-bit int).
 */
79
#ifdef SYS16BIT
80 81 82 83 84 85
#  define MAXSEG_64K
#endif
#ifdef MSDOS
#  define UNALIGNED_OK
#endif

86
#ifdef __STDC_VERSION__
87 88 89
#  ifndef STDC
#    define STDC
#  endif
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
#  if __STDC_VERSION__ >= 199901L
#    ifndef STDC99
#      define STDC99
#    endif
#  endif
#endif
#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
#  define STDC
#endif
#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
#  define STDC
#endif
#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
#  define STDC
#endif
#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
#  define STDC
#endif

#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
#  define STDC
111 112 113 114
#endif

#ifndef STDC
#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
115
#    define const       /* note: need a more gentle solution here */
116 117 118 119
#  endif
#endif

/* Some Mac compilers merge all .h files incorrectly: */
120
#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
#  define NO_DUMMY_DECL
#endif

/* Maximum value for memLevel in deflateInit2 */
#ifndef MAX_MEM_LEVEL
#  ifdef MAXSEG_64K
#    define MAX_MEM_LEVEL 8
#  else
#    define MAX_MEM_LEVEL 9
#  endif
#endif

/* Maximum value for windowBits in deflateInit2 and inflateInit2.
 * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
 * created by gzip. (Files created by minigzip can still be extracted by
 * gzip.)
 */
#ifndef MAX_WBITS
#  define MAX_WBITS   15 /* 32K LZ77 window */
#endif

/* The memory requirements for deflate are (in bytes):
            (1 << (windowBits+2)) +  (1 << (memLevel+9))
 that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
 plus a few kilobytes for small objects. For example, if you want to reduce
 the default memory requirements from 256K to 128K, compile with
     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
 Of course this will generally degrade compression (there's no free lunch).

   The memory requirements for inflate are (in bytes) 1 << windowBits
 that is, 32K for windowBits=15 (default value) plus a few kilobytes
 for small objects.
*/

                        /* Type declarations */

#ifndef OF /* function prototypes */
#  ifdef STDC
#    define OF(args)  args
#  else
#    define OF(args)  ()
#  endif
#endif

/* The following definitions for FAR are needed only for MSDOS mixed
 * model programming (small or medium model with some far allocations).
 * This was tested only with MSC; for other MSDOS compilers you may have
 * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
 * just define FAR to be empty.
 */
171 172 173 174 175 176 177 178 179
#ifdef SYS16BIT
#  if defined(M_I86SM) || defined(M_I86MM)
     /* MSC small or medium model */
#    define SMALL_MEDIUM
#    ifdef _MSC_VER
#      define FAR _far
#    else
#      define FAR far
#    endif
180
#  endif
181 182
#  if (defined(__SMALL__) || defined(__MEDIUM__))
     /* Turbo C small or medium model */
183
#    define SMALL_MEDIUM
184 185 186 187 188
#    ifdef __BORLANDC__
#      define FAR _far
#    else
#      define FAR far
#    endif
189 190 191
#  endif
#endif

192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
#if defined(WINDOWS) || defined(WIN32)
   /* If building or using zlib as a DLL, define ZLIB_DLL.
    * This is not mandatory, but it offers a little performance increase.
    */
#  ifdef ZLIB_DLL
#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
#      ifdef ZLIB_INTERNAL
#        define ZEXTERN extern __declspec(dllexport)
#      else
#        define ZEXTERN extern __declspec(dllimport)
#      endif
#    endif
#  endif  /* ZLIB_DLL */
   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
    * define ZLIB_WINAPI.
    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
    */
#  ifdef ZLIB_WINAPI
210 211 212 213
#    ifdef FAR
#      undef FAR
#    endif
#    include <windows.h>
214 215 216
     /* No need for _export, use ZLIB.DEF instead. */
     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
#    define ZEXPORT WINAPI
217
#    ifdef WIN32
218
#      define ZEXPORTVA WINAPIV
219
#    else
220
#      define ZEXPORTVA FAR CDECL
221 222 223 224 225
#    endif
#  endif
#endif

#if defined (__BEOS__)
226 227 228 229 230 231 232 233
#  ifdef ZLIB_DLL
#    ifdef ZLIB_INTERNAL
#      define ZEXPORT   __declspec(dllexport)
#      define ZEXPORTVA __declspec(dllexport)
#    else
#      define ZEXPORT   __declspec(dllimport)
#      define ZEXPORTVA __declspec(dllimport)
#    endif
234 235 236
#  endif
#endif

237 238 239
#ifndef ZEXTERN
#  define ZEXTERN extern
#endif
240 241 242 243 244 245 246 247
#ifndef ZEXPORT
#  define ZEXPORT
#endif
#ifndef ZEXPORTVA
#  define ZEXPORTVA
#endif

#ifndef FAR
248
#  define FAR
249 250
#endif

251
#if !defined(__MACTYPES__)
252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268
typedef unsigned char  Byte;  /* 8 bits */
#endif
typedef unsigned int   uInt;  /* 16 bits or more */
typedef unsigned long  uLong; /* 32 bits or more */

#ifdef SMALL_MEDIUM
   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
#  define Bytef Byte FAR
#else
   typedef Byte  FAR Bytef;
#endif
typedef char  FAR charf;
typedef int   FAR intf;
typedef uInt  FAR uIntf;
typedef uLong FAR uLongf;

#ifdef STDC
269 270 271
   typedef void const *voidpc;
   typedef void FAR   *voidpf;
   typedef void       *voidp;
272
#else
273 274 275
   typedef Byte const *voidpc;
   typedef Byte FAR   *voidpf;
   typedef Byte       *voidp;
276 277
#endif

278
#if 0           /* HAVE_UNISTD_H -- this line is updated by ./configure */
279 280
#  include <sys/types.h> /* for off_t */
#  include <unistd.h>    /* for SEEK_* and off_t */
281 282 283
#  ifdef VMS
#    include <unixio.h>   /* for off_t */
#  endif
284 285 286 287 288 289 290 291 292 293 294
#  define z_off_t  off_t
#endif
#ifndef SEEK_SET
#  define SEEK_SET        0       /* Seek from beginning of file.  */
#  define SEEK_CUR        1       /* Seek from current position.  */
#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
#endif
#ifndef z_off_t
#  define  z_off_t long
#endif

295 296 297 298 299 300 301 302 303 304 305
#if defined(__OS400__)
#define NO_vsnprintf
#endif

#if defined(__MVS__)
#  define NO_vsnprintf
#  ifdef FAR
#    undef FAR
#  endif
#endif

306 307 308 309 310
/* MVS linker does not support external names larger than 8 bytes */
#if defined(__MVS__)
#   pragma map(deflateInit_,"DEIN")
#   pragma map(deflateInit2_,"DEIN2")
#   pragma map(deflateEnd,"DEEND")
311
#   pragma map(deflateBound,"DEBND")
312 313 314 315 316
#   pragma map(inflateInit_,"ININ")
#   pragma map(inflateInit2_,"ININ2")
#   pragma map(inflateEnd,"INEND")
#   pragma map(inflateSync,"INSY")
#   pragma map(inflateSetDictionary,"INSEDI")
317 318
#   pragma map(compressBound,"CMBND")
#   pragma map(inflate_table,"INTABL")
319 320 321 322
#   pragma map(inflate_fast,"INFA")
#   pragma map(inflate_copyright,"INCOPY")
#endif

323
#endif /* ZCONF_H */