zconf.h revision 33908
117651Speter/* zconf.h -- configuration of the zlib compression library
2205471Sdelphij * Copyright (C) 1995-1998 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 33908 1998-02-28 06:08:17Z steve $ */
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.
14205471Sdelphij */
15205471Sdelphij#ifdef Z_PREFIX
1617651Speter#  define deflateInit_	z_deflateInit_
17205471Sdelphij#  define deflate	z_deflate
18205471Sdelphij#  define deflateEnd	z_deflateEnd
19205471Sdelphij#  define inflateInit_ 	z_inflateInit_
20205471Sdelphij#  define inflate	z_inflate
21205471Sdelphij#  define inflateEnd	z_inflateEnd
22205471Sdelphij#  define deflateInit2_	z_deflateInit2_
23205471Sdelphij#  define deflateSetDictionary z_deflateSetDictionary
24205471Sdelphij#  define deflateCopy	z_deflateCopy
25205471Sdelphij#  define deflateReset	z_deflateReset
26205471Sdelphij#  define deflateParams	z_deflateParams
27205471Sdelphij#  define inflateInit2_	z_inflateInit2_
28205471Sdelphij#  define inflateSetDictionary z_inflateSetDictionary
29205471Sdelphij#  define inflateSync	z_inflateSync
30205471Sdelphij#  define inflateSyncPoint z_inflateSyncPoint
31205471Sdelphij#  define inflateReset	z_inflateReset
32205471Sdelphij#  define compress	z_compress
33205471Sdelphij#  define compress2	z_compress2
34205471Sdelphij#  define uncompress	z_uncompress
35205471Sdelphij#  define adler32	z_adler32
36145490Skientzle#  define crc32		z_crc32
37205471Sdelphij#  define get_crc_table z_get_crc_table
38205471Sdelphij
39145490Skientzle#  define Byte		z_Byte
40145490Skientzle#  define uInt		z_uInt
41205471Sdelphij#  define uLong		z_uLong
42145490Skientzle#  define Bytef	        z_Bytef
43145490Skientzle#  define charf		z_charf
44205471Sdelphij#  define intf		z_intf
45205471Sdelphij#  define uIntf		z_uIntf
46205471Sdelphij#  define uLongf	z_uLongf
47205471Sdelphij#  define voidpf	z_voidpf
48205471Sdelphij#  define voidp		z_voidp
49205471Sdelphij#endif
50205471Sdelphij
51205471Sdelphij#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
52205471Sdelphij#  define WIN32
53205471Sdelphij#endif
54205471Sdelphij#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
55205471Sdelphij#  ifndef __32BIT__
56205471Sdelphij#    define __32BIT__
57205471Sdelphij#  endif
58205471Sdelphij#endif
59205471Sdelphij#if defined(__MSDOS__) && !defined(MSDOS)
60205471Sdelphij#  define MSDOS
61205471Sdelphij#endif
62205471Sdelphij
63205471Sdelphij/*
64205471Sdelphij * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
65205471Sdelphij * than 64k bytes at a time (needed on systems with 16-bit int).
66205471Sdelphij */
67205471Sdelphij#if defined(MSDOS) && !defined(__32BIT__)
68205471Sdelphij#  define MAXSEG_64K
69205471Sdelphij#endif
70205471Sdelphij#ifdef MSDOS
71205471Sdelphij#  define UNALIGNED_OK
72205471Sdelphij#endif
73205471Sdelphij
74205471Sdelphij#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32))  && !defined(STDC)
75205471Sdelphij#  define STDC
76205471Sdelphij#endif
77205471Sdelphij#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)
78205471Sdelphij#  ifndef STDC
79205471Sdelphij#    define STDC
80205471Sdelphij#  endif
81205471Sdelphij#endif
82205471Sdelphij
83205471Sdelphij#ifndef STDC
84205471Sdelphij#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
85205471Sdelphij#    define const
86205471Sdelphij#  endif
87205471Sdelphij#endif
88145490Skientzle
89205471Sdelphij/* Some Mac compilers merge all .h files incorrectly: */
90205471Sdelphij#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
91205471Sdelphij#  define NO_DUMMY_DECL
92205471Sdelphij#endif
93205471Sdelphij
94145490Skientzle/* Borland C incorrectly complains about missing returns: */
95145490Skientzle#if defined(__BORLANDC__)
96145490Skientzle#  define NEED_DUMMY_RETURN
97205471Sdelphij#endif
98205471Sdelphij
99205471Sdelphij
100205471Sdelphij/* Maximum value for memLevel in deflateInit2 */
101145490Skientzle#ifndef MAX_MEM_LEVEL
102145490Skientzle#  ifdef MAXSEG_64K
103205471Sdelphij#    define MAX_MEM_LEVEL 8
104205471Sdelphij#  else
105205471Sdelphij#    define MAX_MEM_LEVEL 9
106205471Sdelphij#  endif
10717651Speter#endif
108205471Sdelphij
109205471Sdelphij/* Maximum value for windowBits in deflateInit2 and inflateInit2.
110205471Sdelphij * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
111157046Sdes * created by gzip. (Files created by minigzip can still be extracted by
112205471Sdelphij * gzip.)
113157046Sdes */
114205471Sdelphij#ifndef MAX_WBITS
115205471Sdelphij#  define MAX_WBITS   15 /* 32K LZ77 window */
116205471Sdelphij#endif
117157046Sdes
118205471Sdelphij/* The memory requirements for deflate are (in bytes):
119157046Sdes            (1 << (windowBits+2)) +  (1 << (memLevel+9))
120145490Skientzle that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
121205471Sdelphij plus a few kilobytes for small objects. For example, if you want to reduce
122145490Skientzle the default memory requirements from 256K to 128K, compile with
123145490Skientzle     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
124205471Sdelphij Of course this will generally degrade compression (there's no free lunch).
125205471Sdelphij
126145490Skientzle   The memory requirements for inflate are (in bytes) 1 << windowBits
127205471Sdelphij that is, 32K for windowBits=15 (default value) plus a few kilobytes
128205471Sdelphij for small objects.
129205471Sdelphij*/
130205471Sdelphij
131205471Sdelphij                        /* Type declarations */
13217651Speter
13317651Speter#ifndef OF /* function prototypes */
134131380Stjr#  ifdef STDC
135131380Stjr#    define OF(args)  args
136131380Stjr#  else
137131380Stjr#    define OF(args)  ()
138131380Stjr#  endif
139131380Stjr#endif
140131380Stjr
141131380Stjr/* The following definitions for FAR are needed only for MSDOS mixed
142131380Stjr * model programming (small or medium model with some far allocations).
143157046Sdes * This was tested only with MSC; for other MSDOS compilers you may have
144157046Sdes * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
145157046Sdes * just define FAR to be empty.
146157046Sdes */
14717651Speter#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
148131380Stjr   /* MSC small or medium model */
149131380Stjr#  define SMALL_MEDIUM
150131380Stjr#  ifdef _MSC_VER
151131380Stjr#    define FAR __far
152131380Stjr#  else
15317651Speter#    define FAR far
15417651Speter#  endif
15517651Speter#endif
15617651Speter#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
15717651Speter#  ifndef __32BIT__
15817651Speter#    define SMALL_MEDIUM
15917651Speter#    define FAR __far
160131380Stjr#  endif
16117651Speter#endif
16217651Speter
16317651Speter/* Compile with -DZLIB_DLL for Windows DLL support */
16417651Speter#if (defined(_WINDOWS) || defined(WINDOWS)) && defined(ZLIB_DLL)
16517651Speter#  ifdef FAR
16617651Speter#    undef FAR
167131380Stjr#  endif
16833908Ssteve#  include <windows.h>
16933908Ssteve#  define ZEXPORT  WINAPI
17033908Ssteve#  ifdef WIN32
171131380Stjr#    define ZEXPORTVA  WINAPIV
172131380Stjr#  else
173131380Stjr#    define ZEXPORTVA  FAR _cdecl _export
174131380Stjr#  endif
175131380Stjr#else
17617651Speter#   if defined (__BORLANDC__) && defined (_Windows) && defined (__DLL__)
177131380Stjr#       define ZEXPORT _export
178131380Stjr#       define ZEXPORTVA _export
179131380Stjr#   else
180131380Stjr#       define ZEXPORT
181131380Stjr#       define ZEXPORTVA
182131380Stjr#   endif
183131380Stjr#endif
184131380Stjr
185131380Stjr#ifndef FAR
186131380Stjr#   define FAR
187131380Stjr#endif
188131380Stjr
18917651Spetertypedef unsigned char  Byte;  /* 8 bits */
190131380Stjrtypedef unsigned int   uInt;  /* 16 bits or more */
191131380Stjrtypedef unsigned long  uLong; /* 32 bits or more */
192131380Stjr
193131380Stjr#if defined(__BORLANDC__) && defined(SMALL_MEDIUM)
19417651Speter   /* Borland C/C++ ignores FAR inside typedef */
19517651Speter#  define Bytef Byte FAR
196131380Stjr#else
19717651Speter   typedef Byte  FAR Bytef;
19817651Speter#endif
19917651Spetertypedef char  FAR charf;
20017651Spetertypedef int   FAR intf;
201131380Stjrtypedef uInt  FAR uIntf;
20217651Spetertypedef uLong FAR uLongf;
20317651Speter
20417651Speter#ifdef STDC
20517651Speter   typedef void FAR *voidpf;
20617651Speter   typedef void     *voidp;
20717651Speter#else
20817651Speter   typedef Byte FAR *voidpf;
20917651Speter   typedef Byte     *voidp;
21017651Speter#endif
21117651Speter
21217651Speter#ifdef HAVE_UNISTD_H
21317651Speter#  include <sys/types.h> /* for off_t */
21433908Ssteve#  include <unistd.h>    /* for SEEK_* and off_t */
21533908Ssteve#  define z_off_t  off_t
21633908Ssteve#endif
21733908Ssteve#ifndef SEEK_SET
21833908Ssteve#  define SEEK_SET        0       /* Seek from beginning of file.  */
21917651Speter#  define SEEK_CUR        1       /* Seek from current position.  */
22017651Speter#endif
22117651Speter#ifndef z_off_t
22217651Speter#  define  z_off_t long
22317651Speter#endif
22433908Ssteve
22517651Speter/* MVS linker does not support external names larger than 8 bytes */
22617651Speter#if defined(__MVS__)
22717651Speter#   pragma map(deflateInit_,"DEIN")
22817651Speter#   pragma map(deflateInit2_,"DEIN2")
22917651Speter#   pragma map(deflateEnd,"DEEND")
23017651Speter#   pragma map(inflateInit_,"ININ")
23117651Speter#   pragma map(inflateInit2_,"ININ2")
23217651Speter#   pragma map(inflateEnd,"INEND")
23317651Speter#   pragma map(inflateSync,"INSY")
23417651Speter#   pragma map(inflateSetDictionary,"INSEDI")
23517651Speter#   pragma map(inflate_blocks,"INBL")
23617651Speter#   pragma map(inflate_blocks_new,"INBLNE")
23717651Speter#   pragma map(inflate_blocks_free,"INBLFR")
23817651Speter#   pragma map(inflate_blocks_reset,"INBLRE")
23917651Speter#   pragma map(inflate_codes_free,"INCOFR")
24017651Speter#   pragma map(inflate_codes,"INCO")
24117651Speter#   pragma map(inflate_fast,"INFA")
24217651Speter#   pragma map(inflate_flush,"INFLU")
24317651Speter#   pragma map(inflate_mask,"INMA")
24417651Speter#   pragma map(inflate_set_dictionary,"INSEDI2")
24517651Speter#   pragma map(inflate_copyright,"INCOPY")
24617651Speter#   pragma map(inflate_trees_bits,"INTRBI")
24717651Speter#   pragma map(inflate_trees_dynamic,"INTRDY")
24817651Speter#   pragma map(inflate_trees_fixed,"INTRFI")
24917651Speter#   pragma map(inflate_trees_free,"INTRFR")
25017651Speter#endif
25117651Speter
252131380Stjr#endif /* _ZCONF_H */
253131380Stjr