10a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/* zconf.h -- configuration of the zlib compression library
20a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * Copyright (C) 1995-2005 Jean-loup Gailly.
30a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * For conditions of distribution and use, see copyright notice in zlib.h
40a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath */
50a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
60a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/* @(#) $Id$ */
70a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
80a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef ZCONF_H
90a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#define ZCONF_H
100a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
110a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/*
120a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * If you *really* need a unique prefix for all types and library functions,
130a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
140a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath */
150a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifdef Z_PREFIX
160a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflateInit_          z_deflateInit_
170a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflate               z_deflate
180a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflateEnd            z_deflateEnd
190a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateInit_          z_inflateInit_
200a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflate               z_inflate
210a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateEnd            z_inflateEnd
220a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflateInit2_         z_deflateInit2_
230a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflateSetDictionary  z_deflateSetDictionary
240a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflateCopy           z_deflateCopy
250a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflateReset          z_deflateReset
260a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflateParams         z_deflateParams
270a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflateBound          z_deflateBound
280a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define deflatePrime          z_deflatePrime
290a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateInit2_         z_inflateInit2_
300a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateSetDictionary  z_inflateSetDictionary
310a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateSync           z_inflateSync
320a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateSyncPoint      z_inflateSyncPoint
330a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateCopy           z_inflateCopy
340a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateReset          z_inflateReset
350a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateBack           z_inflateBack
360a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define inflateBackEnd        z_inflateBackEnd
370a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define compress              z_compress
380a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define compress2             z_compress2
390a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define compressBound         z_compressBound
400a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define uncompress            z_uncompress
410a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define adler32               z_adler32
420a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define crc32                 z_crc32
430a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define get_crc_table         z_get_crc_table
440a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define zError                z_zError
450a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
460a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define alloc_func            z_alloc_func
470a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define free_func             z_free_func
480a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define in_func               z_in_func
490a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define out_func              z_out_func
500a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define Byte                  z_Byte
510a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define uInt                  z_uInt
520a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define uLong                 z_uLong
530a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define Bytef                 z_Bytef
540a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define charf                 z_charf
550a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define intf                  z_intf
560a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define uIntf                 z_uIntf
570a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define uLongf                z_uLongf
580a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define voidpf                z_voidpf
590a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define voidp                 z_voidp
600a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
610a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
620a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined(__MSDOS__) && !defined(MSDOS)
630a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define MSDOS
640a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
650a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
660a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define OS2
670a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
680a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined(_WINDOWS) && !defined(WINDOWS)
690a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define WINDOWS
700a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
710a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
720a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifndef WIN32
730a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define WIN32
740a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
750a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
760a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
770a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
780a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    ifndef SYS16BIT
790a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define SYS16BIT
800a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    endif
810a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
820a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
830a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
840a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/*
850a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
860a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * than 64k bytes at a time (needed on systems with 16-bit int).
870a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath */
880a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifdef SYS16BIT
890a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define MAXSEG_64K
900a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
910a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifdef MSDOS
920a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define UNALIGNED_OK
930a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
940a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
950a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifdef __STDC_VERSION__
960a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifndef STDC
970a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define STDC
980a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
990a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  if __STDC_VERSION__ >= 199901L
1000a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    ifndef STDC99
1010a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define STDC99
1020a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    endif
1030a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
1040a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1050a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
1060a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define STDC
1070a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1080a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
1090a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define STDC
1100a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1110a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
1120a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define STDC
1130a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1140a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
1150a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define STDC
1160a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1170a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1180a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
1190a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define STDC
1200a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1210a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1220a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef STDC
1230a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
1240a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define const       /* note: need a more gentle solution here */
1250a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
1260a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1270a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1280a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/* Some Mac compilers merge all .h files incorrectly: */
1290a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
1300a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define NO_DUMMY_DECL
1310a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1320a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1330a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/* Maximum value for memLevel in deflateInit2 */
1340a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef MAX_MEM_LEVEL
1350a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifdef MAXSEG_64K
1360a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define MAX_MEM_LEVEL 8
1370a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  else
1380a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define MAX_MEM_LEVEL 9
1390a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
1400a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1410a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1420a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/* Maximum value for windowBits in deflateInit2 and inflateInit2.
1430a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
1440a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * created by gzip. (Files created by minigzip can still be extracted by
1450a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * gzip.)
1460a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath */
1470a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef MAX_WBITS
1480a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define MAX_WBITS   15 /* 32K LZ77 window */
1490a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1500a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1510a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/* The memory requirements for deflate are (in bytes):
1520a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath            (1 << (windowBits+2)) +  (1 << (memLevel+9))
1530a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
1540a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath plus a few kilobytes for small objects. For example, if you want to reduce
1550a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath the default memory requirements from 256K to 128K, compile with
1560a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
1570a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath Of course this will generally degrade compression (there's no free lunch).
1580a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1590a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   The memory requirements for inflate are (in bytes) 1 << windowBits
1600a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath that is, 32K for windowBits=15 (default value) plus a few kilobytes
1610a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath for small objects.
1620a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath*/
1630a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1640a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath                        /* Type declarations */
1650a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1660a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef OF /* function prototypes */
1670a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifdef STDC
1680a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define OF(args)  args
1690a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  else
1700a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define OF(args)  ()
1710a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
1720a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
1730a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
1740a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/* The following definitions for FAR are needed only for MSDOS mixed
1750a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * model programming (small or medium model with some far allocations).
1760a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * This was tested only with MSC; for other MSDOS compilers you may have
1770a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
1780a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath * just define FAR to be empty.
1790a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath */
1800a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifdef SYS16BIT
1810a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  if defined(M_I86SM) || defined(M_I86MM)
1820a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath     /* MSC small or medium model */
1830a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define SMALL_MEDIUM
1840a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    ifdef _MSC_VER
1850a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define FAR _far
1860a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    else
1870a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define FAR far
1880a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    endif
1890a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
1900a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  if (defined(__SMALL__) || defined(__MEDIUM__))
1910a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath     /* Turbo C small or medium model */
1920a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define SMALL_MEDIUM
1930a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    ifdef __BORLANDC__
1940a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define FAR _far
1950a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    else
1960a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define FAR far
1970a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    endif
1980a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
1990a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2000a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
2010a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined(WINDOWS) || defined(WIN32)
2020a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   /* If building or using zlib as a DLL, define ZLIB_DLL.
2030a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath    * This is not mandatory, but it offers a little performance increase.
2040a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath    */
2050a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifdef ZLIB_DLL
2060a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
2070a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      ifdef ZLIB_INTERNAL
2080a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#        define ZEXTERN extern __declspec(dllexport)
2090a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      else
2100a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#        define ZEXTERN extern __declspec(dllimport)
2110a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      endif
2120a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    endif
2130a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif  /* ZLIB_DLL */
2140a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
2150a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath    * define ZLIB_WINAPI.
2160a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
2170a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath    */
2180a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifdef ZLIB_WINAPI
2190a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    ifdef FAR
2200a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      undef FAR
2210a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    endif
2220a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    include <windows.h>
2230a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath     /* No need for _export, use ZLIB.DEF instead. */
2240a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
2250a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    define ZEXPORT WINAPI
2260a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    ifdef WIN32
2270a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define ZEXPORTVA WINAPIV
2280a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    else
2290a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define ZEXPORTVA FAR CDECL
2300a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    endif
2310a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
2320a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2330a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
2340a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined (__BEOS__)
2350a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifdef ZLIB_DLL
2360a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    ifdef ZLIB_INTERNAL
2370a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define ZEXPORT   __declspec(dllexport)
2380a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define ZEXPORTVA __declspec(dllexport)
2390a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    else
2400a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define ZEXPORT   __declspec(dllimport)
2410a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#      define ZEXPORTVA __declspec(dllimport)
2420a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    endif
2430a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
2440a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2450a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
2460a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef ZEXTERN
2470a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define ZEXTERN extern
2480a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2490a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef ZEXPORT
2500a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define ZEXPORT
2510a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2520a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef ZEXPORTVA
2530a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define ZEXPORTVA
2540a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2550a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
2560a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef FAR
2570a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define FAR
2580a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2590a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
2600a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if !defined(__MACTYPES__)
2610a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamathtypedef unsigned char  Byte;  /* 8 bits */
2620a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2630a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamathtypedef unsigned int   uInt;  /* 16 bits or more */
2640a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamathtypedef unsigned long  uLong; /* 32 bits or more */
2650a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
2660a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifdef SMALL_MEDIUM
2670a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
2680a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define Bytef Byte FAR
2690a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#else
2700a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   typedef Byte  FAR Bytef;
2710a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2720a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamathtypedef char  FAR charf;
2730a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamathtypedef int   FAR intf;
2740a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamathtypedef uInt  FAR uIntf;
2750a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamathtypedef uLong FAR uLongf;
2760a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
2770a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifdef STDC
2780a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   typedef void const *voidpc;
2790a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   typedef void FAR   *voidpf;
2800a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   typedef void       *voidp;
2810a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#else
2820a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   typedef Byte const *voidpc;
2830a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   typedef Byte FAR   *voidpf;
2840a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath   typedef Byte       *voidp;
2850a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2860a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
2870a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef WIN32
2880a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if 1           /* HAVE_UNISTD_H -- this line is updated by ./configure */
2890a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  include <sys/types.h> /* for off_t */
2900a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  include <unistd.h>    /* for SEEK_* and off_t */
2910a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifdef VMS
2920a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    include <unixio.h>   /* for off_t */
2930a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
2940a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define z_off_t off_t
2950a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2960a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
2970a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
2980a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef SEEK_SET
2990a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define SEEK_SET        0       /* Seek from beginning of file.  */
3000a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define SEEK_CUR        1       /* Seek from current position.  */
3010a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
3020a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
3030a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#ifndef z_off_t
3040a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define z_off_t long
3050a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
3060a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
3070a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined(__OS400__)
3080a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define NO_vsnprintf
3090a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
3100a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
3110a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined(__MVS__)
3120a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  define NO_vsnprintf
3130a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  ifdef FAR
3140a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#    undef FAR
3150a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#  endif
3160a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
3170a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
3180a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath/* MVS linker does not support external names larger than 8 bytes */
3190a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#if defined(__MVS__)
3200a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(deflateInit_,"DEIN")
3210a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(deflateInit2_,"DEIN2")
3220a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(deflateEnd,"DEEND")
3230a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(deflateBound,"DEBND")
3240a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(inflateInit_,"ININ")
3250a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(inflateInit2_,"ININ2")
3260a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(inflateEnd,"INEND")
3270a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(inflateSync,"INSY")
3280a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(inflateSetDictionary,"INSEDI")
3290a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(compressBound,"CMBND")
3300a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(inflate_table,"INTABL")
3310a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(inflate_fast,"INFA")
3320a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#   pragma map(inflate_copyright,"INCOPY")
3330a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif
3340a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath
3350a58c5c2f73e5047b36f12b5f12b12d6f2a9f69dNarayan Kamath#endif /* ZCONF_H */
336