zconf.h revision 131380
117651Speter/* zconf.h -- configuration of the zlib compression library
2131380Stjr * Copyright (C) 1995-2003 Jean-loup Gailly.
3131380Stjr * For conditions of distribution and use, see copyright notice in zlib.h
417651Speter */
517651Speter
650476Speter/* @(#) $FreeBSD: head/lib/libz/zconf.h 131380 2004-06-30 23:54:46Z tjr $ */
717651Speter
8131380Stjr#ifndef ZCONF_H
9131380Stjr#define ZCONF_H
1017651Speter
1117651Speter/*
1217651Speter * If you *really* need a unique prefix for all types and library functions,
1317651Speter * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
1417651Speter */
1517651Speter#ifdef Z_PREFIX
16131380Stjr#  define deflateInit_  z_deflateInit_
17131380Stjr#  define deflate       z_deflate
18131380Stjr#  define deflateEnd    z_deflateEnd
19131380Stjr#  define inflateInit_  z_inflateInit_
20131380Stjr#  define inflate       z_inflate
21131380Stjr#  define inflateEnd    z_inflateEnd
22131380Stjr#  define deflateInit2_ z_deflateInit2_
2317651Speter#  define deflateSetDictionary z_deflateSetDictionary
24131380Stjr#  define deflateCopy   z_deflateCopy
25131380Stjr#  define deflateReset  z_deflateReset
26131380Stjr#  define deflatePrime  z_deflatePrime
27131380Stjr#  define deflateParams z_deflateParams
28131380Stjr#  define deflateBound  z_deflateBound
29131380Stjr#  define inflateInit2_ z_inflateInit2_
3017651Speter#  define inflateSetDictionary z_inflateSetDictionary
31131380Stjr#  define inflateSync   z_inflateSync
3233908Ssteve#  define inflateSyncPoint z_inflateSyncPoint
33131380Stjr#  define inflateCopy   z_inflateCopy
34131380Stjr#  define inflateReset  z_inflateReset
35131380Stjr#  define compress      z_compress
36131380Stjr#  define compress2     z_compress2
37131380Stjr#  define compressBound z_compressBound
38131380Stjr#  define uncompress    z_uncompress
39131380Stjr#  define adler32       z_adler32
40131380Stjr#  define crc32         z_crc32
4117651Speter#  define get_crc_table z_get_crc_table
4217651Speter
43131380Stjr#  define Byte          z_Byte
44131380Stjr#  define uInt          z_uInt
45131380Stjr#  define uLong         z_uLong
46131380Stjr#  define Bytef         z_Bytef
47131380Stjr#  define charf         z_charf
48131380Stjr#  define intf          z_intf
49131380Stjr#  define uIntf         z_uIntf
50131380Stjr#  define uLongf        z_uLongf
51131380Stjr#  define voidpf        z_voidpf
52131380Stjr#  define voidp         z_voidp
5317651Speter#endif
5417651Speter
55131380Stjr#if defined(__MSDOS__) && !defined(MSDOS)
56131380Stjr#  define MSDOS
57131380Stjr#endif
58131380Stjr#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
59131380Stjr#  define OS2
60131380Stjr#endif
61131380Stjr#if defined(_WINDOWS) && !defined(WINDOWS)
62131380Stjr#  define WINDOWS
63131380Stjr#endif
6417651Speter#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
6517651Speter#  define WIN32
6617651Speter#endif
67131380Stjr#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
68131380Stjr#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
69131380Stjr#    ifndef SYS16BIT
70131380Stjr#      define SYS16BIT
71131380Stjr#    endif
7217651Speter#  endif
7317651Speter#endif
7417651Speter
7517651Speter/*
7617651Speter * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
7717651Speter * than 64k bytes at a time (needed on systems with 16-bit int).
7817651Speter */
79131380Stjr#ifdef SYS16BIT
8017651Speter#  define MAXSEG_64K
8117651Speter#endif
8217651Speter#ifdef MSDOS
8317651Speter#  define UNALIGNED_OK
8417651Speter#endif
8517651Speter
86131380Stjr#ifdef __STDC_VERSION__
8733908Ssteve#  ifndef STDC
8833908Ssteve#    define STDC
8933908Ssteve#  endif
90131380Stjr#  if __STDC_VERSION__ >= 199901L
91131380Stjr#    ifndef STDC99
92131380Stjr#      define STDC99
93131380Stjr#    endif
94131380Stjr#  endif
9517651Speter#endif
96131380Stjr#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
97131380Stjr#  define STDC
98131380Stjr#endif
99131380Stjr#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
100131380Stjr#  define STDC
101131380Stjr#endif
102131380Stjr#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
103131380Stjr#  define STDC
104131380Stjr#endif
105131380Stjr#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
106131380Stjr#  define STDC
107131380Stjr#endif
10817651Speter
109131380Stjr#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
110131380Stjr#  define STDC
111131380Stjr#endif
112131380Stjr
11317651Speter#ifndef STDC
11417651Speter#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
115131380Stjr#    define const       /* note: need a more gentle solution here */
11617651Speter#  endif
11717651Speter#endif
11817651Speter
11917651Speter/* Some Mac compilers merge all .h files incorrectly: */
120131380Stjr#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
12117651Speter#  define NO_DUMMY_DECL
12217651Speter#endif
12317651Speter
12417651Speter/* Maximum value for memLevel in deflateInit2 */
12517651Speter#ifndef MAX_MEM_LEVEL
12617651Speter#  ifdef MAXSEG_64K
12717651Speter#    define MAX_MEM_LEVEL 8
12817651Speter#  else
12917651Speter#    define MAX_MEM_LEVEL 9
13017651Speter#  endif
13117651Speter#endif
13217651Speter
13333908Ssteve/* Maximum value for windowBits in deflateInit2 and inflateInit2.
13433908Ssteve * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
13533908Ssteve * created by gzip. (Files created by minigzip can still be extracted by
13633908Ssteve * gzip.)
13733908Ssteve */
13817651Speter#ifndef MAX_WBITS
13917651Speter#  define MAX_WBITS   15 /* 32K LZ77 window */
14017651Speter#endif
14117651Speter
14217651Speter/* The memory requirements for deflate are (in bytes):
14333908Ssteve            (1 << (windowBits+2)) +  (1 << (memLevel+9))
14417651Speter that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
14517651Speter plus a few kilobytes for small objects. For example, if you want to reduce
14617651Speter the default memory requirements from 256K to 128K, compile with
14717651Speter     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
14817651Speter Of course this will generally degrade compression (there's no free lunch).
14917651Speter
15017651Speter   The memory requirements for inflate are (in bytes) 1 << windowBits
15117651Speter that is, 32K for windowBits=15 (default value) plus a few kilobytes
15217651Speter for small objects.
15317651Speter*/
15417651Speter
15517651Speter                        /* Type declarations */
15617651Speter
15717651Speter#ifndef OF /* function prototypes */
15817651Speter#  ifdef STDC
15917651Speter#    define OF(args)  args
16017651Speter#  else
16117651Speter#    define OF(args)  ()
16217651Speter#  endif
16317651Speter#endif
16417651Speter
16517651Speter/* The following definitions for FAR are needed only for MSDOS mixed
16617651Speter * model programming (small or medium model with some far allocations).
16717651Speter * This was tested only with MSC; for other MSDOS compilers you may have
16817651Speter * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
16917651Speter * just define FAR to be empty.
17017651Speter */
171131380Stjr#ifdef SYS16BIT
172131380Stjr#  if defined(M_I86SM) || defined(M_I86MM)
173131380Stjr     /* MSC small or medium model */
174131380Stjr#    define SMALL_MEDIUM
175131380Stjr#    ifdef _MSC_VER
176131380Stjr#      define FAR _far
177131380Stjr#    else
178131380Stjr#      define FAR far
179131380Stjr#    endif
18017651Speter#  endif
181131380Stjr#  if (defined(__SMALL__) || defined(__MEDIUM__))
182131380Stjr     /* Turbo C small or medium model */
18317651Speter#    define SMALL_MEDIUM
184131380Stjr#    ifdef __BORLANDC__
185131380Stjr#      define FAR _far
186131380Stjr#    else
187131380Stjr#      define FAR far
188131380Stjr#    endif
18917651Speter#  endif
19017651Speter#endif
19133908Ssteve
192131380Stjr#if defined(WINDOWS) || defined(WIN32)
193131380Stjr   /* If building or using zlib as a DLL, define ZLIB_DLL.
194131380Stjr    * This is not mandatory, but it offers a little performance increase.
195131380Stjr    */
196131380Stjr#  ifdef ZLIB_DLL
197131380Stjr#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
198131380Stjr#      ifdef ZLIB_INTERNAL
199131380Stjr#        define ZEXTERN extern __declspec(dllexport)
200131380Stjr#      else
201131380Stjr#        define ZEXTERN extern __declspec(dllimport)
202131380Stjr#      endif
203131380Stjr#    endif
204131380Stjr#  endif  /* ZLIB_DLL */
205131380Stjr   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
206131380Stjr    * define ZLIB_WINAPI.
207131380Stjr    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
208131380Stjr    */
209131380Stjr#  ifdef ZLIB_WINAPI
21042471Speter#    ifdef FAR
21142471Speter#      undef FAR
21242471Speter#    endif
21342471Speter#    include <windows.h>
214131380Stjr     /* No need for _export, use ZLIB.DEF instead. */
215131380Stjr     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
216131380Stjr#    define ZEXPORT WINAPI
21742471Speter#    ifdef WIN32
218131380Stjr#      define ZEXPORTVA WINAPIV
21942471Speter#    else
220131380Stjr#      define ZEXPORTVA FAR CDECL
22142471Speter#    endif
22233908Ssteve#  endif
223131380Stjr#endif
224131380Stjr
225131380Stjr#if defined (__BEOS__)
226131380Stjr#  ifdef ZLIB_DLL
227131380Stjr#    ifdef ZLIB_INTERNAL
228131380Stjr#      define ZEXPORT   __declspec(dllexport)
229131380Stjr#      define ZEXPORTVA __declspec(dllexport)
23042471Speter#    else
231131380Stjr#      define ZEXPORT   __declspec(dllimport)
232131380Stjr#      define ZEXPORTVA __declspec(dllimport)
23342471Speter#    endif
23442471Speter#  endif
23542471Speter#endif
23642471Speter
237131380Stjr#ifndef ZEXTERN
238131380Stjr#  define ZEXTERN extern
23933908Ssteve#endif
24042471Speter#ifndef ZEXPORT
24142471Speter#  define ZEXPORT
24242471Speter#endif
24342471Speter#ifndef ZEXPORTVA
24442471Speter#  define ZEXPORTVA
24542471Speter#endif
24642471Speter
24717651Speter#ifndef FAR
248131380Stjr#  define FAR
24917651Speter#endif
25017651Speter
251131380Stjr#if !defined(__MACTYPES__)
25217651Spetertypedef unsigned char  Byte;  /* 8 bits */
25342471Speter#endif
25417651Spetertypedef unsigned int   uInt;  /* 16 bits or more */
25517651Spetertypedef unsigned long  uLong; /* 32 bits or more */
25617651Speter
25742471Speter#ifdef SMALL_MEDIUM
25842471Speter   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
25917651Speter#  define Bytef Byte FAR
26017651Speter#else
26117651Speter   typedef Byte  FAR Bytef;
26217651Speter#endif
26317651Spetertypedef char  FAR charf;
26417651Spetertypedef int   FAR intf;
26517651Spetertypedef uInt  FAR uIntf;
26617651Spetertypedef uLong FAR uLongf;
26717651Speter
26817651Speter#ifdef STDC
269131380Stjr   typedef void const *voidpc;
270131380Stjr   typedef void FAR   *voidpf;
271131380Stjr   typedef void       *voidp;
27217651Speter#else
273131380Stjr   typedef Byte const *voidpc;
274131380Stjr   typedef Byte FAR   *voidpf;
275131380Stjr   typedef Byte       *voidp;
27617651Speter#endif
27717651Speter
278131380Stjr#if 0           /* HAVE_UNISTD_H -- this line is updated by ./configure */
27933908Ssteve#  include <sys/types.h> /* for off_t */
28033908Ssteve#  include <unistd.h>    /* for SEEK_* and off_t */
281131380Stjr#  ifdef VMS
282131380Stjr#    include <unixio.h>   /* for off_t */
283131380Stjr#  endif
284131380Stjr#  define z_off_t  off_t
28533908Ssteve#endif
28633908Ssteve#ifndef SEEK_SET
28733908Ssteve#  define SEEK_SET        0       /* Seek from beginning of file.  */
28833908Ssteve#  define SEEK_CUR        1       /* Seek from current position.  */
28942471Speter#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
29033908Ssteve#endif
29117651Speter
29252054Sbde/*
29352054Sbde * This is hard-configured for FreeBSD, since zlib doesn't actually support
29452054Sbde * using the system off_t for offsets unless off_t is no longer than long.
29552054Sbde */
29652054Sbde#define z_off_t long
29752054Sbde
298131380Stjr#if defined(__OS400__)
299131380Stjr#define NO_vsnprintf
300131380Stjr#endif
301131380Stjr
302131380Stjr#if defined(__MVS__)
303131380Stjr#  define NO_vsnprintf
304131380Stjr#  ifdef FAR
305131380Stjr#    undef FAR
306131380Stjr#  endif
307131380Stjr#endif
308131380Stjr
30933908Ssteve/* MVS linker does not support external names larger than 8 bytes */
31033908Ssteve#if defined(__MVS__)
31133908Ssteve#   pragma map(deflateInit_,"DEIN")
31233908Ssteve#   pragma map(deflateInit2_,"DEIN2")
31333908Ssteve#   pragma map(deflateEnd,"DEEND")
314131380Stjr#   pragma map(deflateBound,"DEBND")
31533908Ssteve#   pragma map(inflateInit_,"ININ")
31633908Ssteve#   pragma map(inflateInit2_,"ININ2")
31733908Ssteve#   pragma map(inflateEnd,"INEND")
31833908Ssteve#   pragma map(inflateSync,"INSY")
31933908Ssteve#   pragma map(inflateSetDictionary,"INSEDI")
320131380Stjr#   pragma map(compressBound,"CMBND")
321131380Stjr#   pragma map(inflate_table,"INTABL")
32233908Ssteve#   pragma map(inflate_fast,"INFA")
32333908Ssteve#   pragma map(inflate_copyright,"INCOPY")
32417651Speter#endif
32517651Speter
326131380Stjr#endif /* ZCONF_H */
327