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

/* @(#) $Id$ */

M
Mark Adler 已提交
8 9
#ifndef ZCONF_H
#define ZCONF_H
M
Mark Adler 已提交
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
M
Mark Adler 已提交
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
#  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_
#  define deflateSetDictionary  z_deflateSetDictionary
#  define deflateCopy           z_deflateCopy
#  define deflateReset          z_deflateReset
#  define deflateParams         z_deflateParams
#  define deflateBound          z_deflateBound
#  define deflatePrime          z_deflatePrime
#  define inflateInit2_         z_inflateInit2_
#  define inflateSetDictionary  z_inflateSetDictionary
#  define inflateSync           z_inflateSync
#  define inflateSyncPoint      z_inflateSyncPoint
#  define inflateCopy           z_inflateCopy
#  define inflateReset          z_inflateReset
#  define inflateBack           z_inflateBack
#  define inflateBackEnd        z_inflateBackEnd
#  define compress              z_compress
#  define compress2             z_compress2
#  define compressBound         z_compressBound
#  define uncompress            z_uncompress
#  define adler32               z_adler32
#  define crc32                 z_crc32
#  define get_crc_table         z_get_crc_table
#  define zError                z_zError
M
Mark Adler 已提交
45

M
Mark Adler 已提交
46 47 48 49
#  define alloc_func            z_alloc_func
#  define free_func             z_free_func
#  define in_func               z_in_func
#  define out_func              z_out_func
M
Mark Adler 已提交
50 51 52 53 54 55 56 57 58 59
#  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
M
Mark Adler 已提交
60 61
#endif

M
Mark Adler 已提交
62 63 64 65 66 67 68 69 70
#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
M
Mark Adler 已提交
71 72 73
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
#  define WIN32
#endif
M
Mark Adler 已提交
74 75 76 77 78
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
#    ifndef SYS16BIT
#      define SYS16BIT
#    endif
M
Mark Adler 已提交
79 80 81 82 83 84 85
#  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).
 */
M
Mark Adler 已提交
86
#ifdef SYS16BIT
M
Mark Adler 已提交
87 88 89 90 91 92
#  define MAXSEG_64K
#endif
#ifdef MSDOS
#  define UNALIGNED_OK
#endif

M
Mark Adler 已提交
93
#ifdef __STDC_VERSION__
M
Mark Adler 已提交
94 95 96
#  ifndef STDC
#    define STDC
#  endif
M
Mark Adler 已提交
97 98 99 100
#  if __STDC_VERSION__ >= 199901L
#    ifndef STDC99
#      define STDC99
#    endif
M
Mark Adler 已提交
101 102
#  endif
#endif
M
Mark Adler 已提交
103 104 105 106 107 108 109 110 111 112 113 114
#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
M
Mark Adler 已提交
115

M
Mark Adler 已提交
116 117 118 119
#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
#  define STDC
#endif

M
Mark Adler 已提交
120 121
#ifndef STDC
#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
M
Mark Adler 已提交
122
#    define const       /* note: need a more gentle solution here */
M
Mark Adler 已提交
123 124 125 126
#  endif
#endif

/* Some Mac compilers merge all .h files incorrectly: */
M
Mark Adler 已提交
127
#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
M
Mark Adler 已提交
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 171 172 173 174 175 176 177
#  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.
 */
M
Mark Adler 已提交
178 179 180 181 182 183 184 185 186
#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
M
Mark Adler 已提交
187
#  endif
M
Mark Adler 已提交
188 189
#  if (defined(__SMALL__) || defined(__MEDIUM__))
     /* Turbo C small or medium model */
M
Mark Adler 已提交
190
#    define SMALL_MEDIUM
M
Mark Adler 已提交
191 192 193 194 195
#    ifdef __BORLANDC__
#      define FAR _far
#    else
#      define FAR far
#    endif
M
Mark Adler 已提交
196 197 198
#  endif
#endif

M
Mark Adler 已提交
199 200 201
#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.
M
Mark Adler 已提交
202
    */
M
Mark Adler 已提交
203 204
#  ifdef ZLIB_DLL
#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
M
Mark Adler 已提交
205 206 207 208
#      ifdef ZLIB_INTERNAL
#        define ZEXTERN extern __declspec(dllexport)
#      else
#        define ZEXTERN extern __declspec(dllimport)
M
Mark Adler 已提交
209
#      endif
M
Mark Adler 已提交
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
#    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
#    ifdef FAR
#      undef FAR
#    endif
#    include <windows.h>
     /* No need for _export, use ZLIB.DEF instead. */
     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
#    define ZEXPORT WINAPI
#    ifdef WIN32
#      define ZEXPORTVA WINAPIV
M
Mark Adler 已提交
226
#    else
M
Mark Adler 已提交
227
#      define ZEXPORTVA FAR CDECL
M
Mark Adler 已提交
228 229 230 231 232
#    endif
#  endif
#endif

#if defined (__BEOS__)
M
Mark Adler 已提交
233 234 235 236 237 238 239 240
#  ifdef ZLIB_DLL
#    ifdef ZLIB_INTERNAL
#      define ZEXPORT   __declspec(dllexport)
#      define ZEXPORTVA __declspec(dllexport)
#    else
#      define ZEXPORT   __declspec(dllimport)
#      define ZEXPORTVA __declspec(dllimport)
#    endif
M
Mark Adler 已提交
241 242 243
#  endif
#endif

M
Mark Adler 已提交
244 245 246
#ifndef ZEXTERN
#  define ZEXTERN extern
#endif
M
Mark Adler 已提交
247 248 249 250 251 252 253 254
#ifndef ZEXPORT
#  define ZEXPORT
#endif
#ifndef ZEXPORTVA
#  define ZEXPORTVA
#endif

#ifndef FAR
M
Mark Adler 已提交
255
#  define FAR
M
Mark Adler 已提交
256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276
#endif

#if !defined(__MACTYPES__)
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
   typedef void const *voidpc;
M
Mark Adler 已提交
277 278
   typedef void FAR   *voidpf;
   typedef void       *voidp;
M
Mark Adler 已提交
279 280
#else
   typedef Byte const *voidpc;
M
Mark Adler 已提交
281 282
   typedef Byte FAR   *voidpf;
   typedef Byte       *voidp;
M
Mark Adler 已提交
283 284
#endif

M
Mark Adler 已提交
285
#if 0           /* HAVE_UNISTD_H -- this line is updated by ./configure */
M
Mark Adler 已提交
286 287
#  include <sys/types.h> /* for off_t */
#  include <unistd.h>    /* for SEEK_* and off_t */
M
Mark Adler 已提交
288 289 290
#  ifdef VMS
#    include <unixio.h>   /* for off_t */
#  endif
M
Mark Adler 已提交
291
#  define z_off_t off_t
M
Mark Adler 已提交
292 293 294 295 296 297 298
#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
M
Mark Adler 已提交
299
#  define z_off_t long
M
Mark Adler 已提交
300 301
#endif

M
Mark Adler 已提交
302
#if defined(__OS400__)
M
Mark Adler 已提交
303
#  define NO_vsnprintf
M
Mark Adler 已提交
304
#endif
M
Mark Adler 已提交
305 306 307 308 309 310

#if defined(__MVS__)
#  define NO_vsnprintf
#  ifdef FAR
#    undef FAR
#  endif
M
Mark Adler 已提交
311 312
#endif

M
Mark Adler 已提交
313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329
/* 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")
#   pragma map(deflateBound,"DEBND")
#   pragma map(inflateInit_,"ININ")
#   pragma map(inflateInit2_,"ININ2")
#   pragma map(inflateEnd,"INEND")
#   pragma map(inflateSync,"INSY")
#   pragma map(inflateSetDictionary,"INSEDI")
#   pragma map(compressBound,"CMBND")
#   pragma map(inflate_table,"INTABL")
#   pragma map(inflate_fast,"INFA")
#   pragma map(inflate_copyright,"INCOPY")
#endif

M
Mark Adler 已提交
330
#endif /* ZCONF_H */