xref: /titanic_51/usr/src/contrib/zlib/zconf.h (revision 64c3d15931c5518f89221f1e36d3015dbb54b9bd)
1ab9e68a2SToomas Soome /* zconf.h -- configuration of the zlib compression library
2ab9e68a2SToomas Soome  * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
3ab9e68a2SToomas Soome  * For conditions of distribution and use, see copyright notice in zlib.h
4ab9e68a2SToomas Soome  */
5ab9e68a2SToomas Soome 
6ab9e68a2SToomas Soome #ifndef ZCONF_H
7ab9e68a2SToomas Soome #define ZCONF_H
8ab9e68a2SToomas Soome 
9ab9e68a2SToomas Soome #ifdef _KERNEL
10ab9e68a2SToomas Soome #include <sys/param.h>
11ab9e68a2SToomas Soome #include <sys/systm.h>
12ab9e68a2SToomas Soome #include <sys/types.h>
13*64c3d159SToomas Soome 
14*64c3d159SToomas Soome #define	Z_U8	uint64_t
15ab9e68a2SToomas Soome #endif
16ab9e68a2SToomas Soome 
17ab9e68a2SToomas Soome /*
18ab9e68a2SToomas Soome  * We don't want to turn on zlib's debugging.
19ab9e68a2SToomas Soome  */
20ab9e68a2SToomas Soome #undef DEBUG
21ab9e68a2SToomas Soome 
22ab9e68a2SToomas Soome #ifdef _KERNEL
23ab9e68a2SToomas Soome /*
24ab9e68a2SToomas Soome  * We define our own memory allocation and deallocation routines that use kmem.
25ab9e68a2SToomas Soome  */
26ab9e68a2SToomas Soome #define	MY_ZCALLOC
27c0fb5f1bSToomas Soome #define	NO_MEMCPY
28c0fb5f1bSToomas Soome #else
29ab9e68a2SToomas Soome #define	HAVE_MEMCPY
30c0fb5f1bSToomas Soome #endif
31ab9e68a2SToomas Soome #define	ZLIB_CONST
32ab9e68a2SToomas Soome #define	Z_PREFIX
33ab9e68a2SToomas Soome 
34ab9e68a2SToomas Soome /*
35ab9e68a2SToomas Soome  * If you *really* need a unique prefix for all types and library functions,
36ab9e68a2SToomas Soome  * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
37ab9e68a2SToomas Soome  * Even better than compiling with -DZ_PREFIX would be to use configure to set
38ab9e68a2SToomas Soome  * this permanently in zconf.h using "./configure --zprefix".
39ab9e68a2SToomas Soome  */
40ab9e68a2SToomas Soome #ifdef Z_PREFIX     /* may be set to #if 1 by ./configure */
41ab9e68a2SToomas Soome #  define Z_PREFIX_SET
42ab9e68a2SToomas Soome 
43ab9e68a2SToomas Soome /* all linked symbols and init macros */
44ab9e68a2SToomas Soome #  define _dist_code            z__dist_code
45ab9e68a2SToomas Soome #  define _length_code          z__length_code
46ab9e68a2SToomas Soome #  define _tr_align             z__tr_align
47ab9e68a2SToomas Soome #  define _tr_flush_bits        z__tr_flush_bits
48ab9e68a2SToomas Soome #  define _tr_flush_block       z__tr_flush_block
49ab9e68a2SToomas Soome #  define _tr_init              z__tr_init
50ab9e68a2SToomas Soome #  define _tr_stored_block      z__tr_stored_block
51ab9e68a2SToomas Soome #  define _tr_tally             z__tr_tally
52ab9e68a2SToomas Soome #  define adler32               z_adler32
53ab9e68a2SToomas Soome #  define adler32_combine       z_adler32_combine
54ab9e68a2SToomas Soome #  define adler32_combine64     z_adler32_combine64
55ab9e68a2SToomas Soome #  define adler32_z             z_adler32_z
56ab9e68a2SToomas Soome #  ifndef Z_SOLO
57ab9e68a2SToomas Soome #    define compress              zz_compress
58ab9e68a2SToomas Soome #    define compress2             z_compress2
59ab9e68a2SToomas Soome #    define compressBound         z_compressBound
60ab9e68a2SToomas Soome #  endif
61ab9e68a2SToomas Soome #  define crc32                 z_crc32
62ab9e68a2SToomas Soome #  define crc32_combine         z_crc32_combine
63ab9e68a2SToomas Soome #  define crc32_combine64       z_crc32_combine64
64ab9e68a2SToomas Soome #  define crc32_z               z_crc32_z
65ab9e68a2SToomas Soome #  define deflate               z_deflate
66ab9e68a2SToomas Soome #  define deflateBound          z_deflateBound
67ab9e68a2SToomas Soome #  define deflateCopy           z_deflateCopy
68ab9e68a2SToomas Soome #  define deflateEnd            z_deflateEnd
69ab9e68a2SToomas Soome #  define deflateGetDictionary  z_deflateGetDictionary
70ab9e68a2SToomas Soome #  define deflateInit           z_deflateInit
71ab9e68a2SToomas Soome #  define deflateInit2          z_deflateInit2
72ab9e68a2SToomas Soome #  define deflateInit2_         z_deflateInit2_
73ab9e68a2SToomas Soome #  define deflateInit_          z_deflateInit_
74ab9e68a2SToomas Soome #  define deflateParams         z_deflateParams
75ab9e68a2SToomas Soome #  define deflatePending        z_deflatePending
76ab9e68a2SToomas Soome #  define deflatePrime          z_deflatePrime
77ab9e68a2SToomas Soome #  define deflateReset          z_deflateReset
78ab9e68a2SToomas Soome #  define deflateResetKeep      z_deflateResetKeep
79ab9e68a2SToomas Soome #  define deflateSetDictionary  z_deflateSetDictionary
80ab9e68a2SToomas Soome #  define deflateSetHeader      z_deflateSetHeader
81ab9e68a2SToomas Soome #  define deflateTune           z_deflateTune
82ab9e68a2SToomas Soome #  define deflate_copyright     z_deflate_copyright
83ab9e68a2SToomas Soome #  define get_crc_table         z_get_crc_table
84ab9e68a2SToomas Soome #  ifndef Z_SOLO
85ab9e68a2SToomas Soome #    define gz_error              z_gz_error
86ab9e68a2SToomas Soome #    define gz_intmax             z_gz_intmax
87ab9e68a2SToomas Soome #    define gz_strwinerror        z_gz_strwinerror
88ab9e68a2SToomas Soome #    define gzbuffer              z_gzbuffer
89ab9e68a2SToomas Soome #    define gzclearerr            z_gzclearerr
90ab9e68a2SToomas Soome #    define gzclose               z_gzclose
91ab9e68a2SToomas Soome #    define gzclose_r             z_gzclose_r
92ab9e68a2SToomas Soome #    define gzclose_w             z_gzclose_w
93ab9e68a2SToomas Soome #    define gzdirect              z_gzdirect
94ab9e68a2SToomas Soome #    define gzdopen               z_gzdopen
95ab9e68a2SToomas Soome #    define gzeof                 z_gzeof
96ab9e68a2SToomas Soome #    define gzerror               z_gzerror
97ab9e68a2SToomas Soome #    define gzflush               z_gzflush
98ab9e68a2SToomas Soome #    define gzfread               z_gzfread
99ab9e68a2SToomas Soome #    define gzfwrite              z_gzfwrite
100ab9e68a2SToomas Soome #    define gzgetc                z_gzgetc
101ab9e68a2SToomas Soome #    define gzgetc_               z_gzgetc_
102ab9e68a2SToomas Soome #    define gzgets                z_gzgets
103ab9e68a2SToomas Soome #    define gzoffset              z_gzoffset
104ab9e68a2SToomas Soome #    define gzoffset64            z_gzoffset64
105ab9e68a2SToomas Soome #    define gzopen                z_gzopen
106ab9e68a2SToomas Soome #    define gzopen64              z_gzopen64
107ab9e68a2SToomas Soome #    ifdef _WIN32
108ab9e68a2SToomas Soome #      define gzopen_w              z_gzopen_w
109ab9e68a2SToomas Soome #    endif
110ab9e68a2SToomas Soome #    define gzprintf              z_gzprintf
111ab9e68a2SToomas Soome #    define gzputc                z_gzputc
112ab9e68a2SToomas Soome #    define gzputs                z_gzputs
113ab9e68a2SToomas Soome #    define gzread                z_gzread
114ab9e68a2SToomas Soome #    define gzrewind              z_gzrewind
115ab9e68a2SToomas Soome #    define gzseek                z_gzseek
116ab9e68a2SToomas Soome #    define gzseek64              z_gzseek64
117ab9e68a2SToomas Soome #    define gzsetparams           z_gzsetparams
118ab9e68a2SToomas Soome #    define gztell                z_gztell
119ab9e68a2SToomas Soome #    define gztell64              z_gztell64
120ab9e68a2SToomas Soome #    define gzungetc              z_gzungetc
121ab9e68a2SToomas Soome #    define gzvprintf             z_gzvprintf
122ab9e68a2SToomas Soome #    define gzwrite               z_gzwrite
123ab9e68a2SToomas Soome #  endif
124ab9e68a2SToomas Soome #  define inflate               z_inflate
125ab9e68a2SToomas Soome #  define inflateBack           z_inflateBack
126ab9e68a2SToomas Soome #  define inflateBackEnd        z_inflateBackEnd
127ab9e68a2SToomas Soome #  define inflateBackInit       z_inflateBackInit
128ab9e68a2SToomas Soome #  define inflateBackInit_      z_inflateBackInit_
129ab9e68a2SToomas Soome #  define inflateCodesUsed      z_inflateCodesUsed
130ab9e68a2SToomas Soome #  define inflateCopy           z_inflateCopy
131ab9e68a2SToomas Soome #  define inflateEnd            z_inflateEnd
132ab9e68a2SToomas Soome #  define inflateGetDictionary  z_inflateGetDictionary
133ab9e68a2SToomas Soome #  define inflateGetHeader      z_inflateGetHeader
134ab9e68a2SToomas Soome #  define inflateInit           z_inflateInit
135ab9e68a2SToomas Soome #  define inflateInit2          z_inflateInit2
136ab9e68a2SToomas Soome #  define inflateInit2_         z_inflateInit2_
137ab9e68a2SToomas Soome #  define inflateInit_          z_inflateInit_
138ab9e68a2SToomas Soome #  define inflateMark           z_inflateMark
139ab9e68a2SToomas Soome #  define inflatePrime          z_inflatePrime
140ab9e68a2SToomas Soome #  define inflateReset          z_inflateReset
141ab9e68a2SToomas Soome #  define inflateReset2         z_inflateReset2
142ab9e68a2SToomas Soome #  define inflateResetKeep      z_inflateResetKeep
143ab9e68a2SToomas Soome #  define inflateSetDictionary  z_inflateSetDictionary
144ab9e68a2SToomas Soome #  define inflateSync           z_inflateSync
145ab9e68a2SToomas Soome #  define inflateSyncPoint      z_inflateSyncPoint
146ab9e68a2SToomas Soome #  define inflateUndermine      z_inflateUndermine
147ab9e68a2SToomas Soome #  define inflateValidate       z_inflateValidate
148ab9e68a2SToomas Soome #  define inflate_copyright     z_inflate_copyright
149ab9e68a2SToomas Soome #  define inflate_fast          z_inflate_fast
150ab9e68a2SToomas Soome #  define inflate_table         z_inflate_table
151ab9e68a2SToomas Soome #  ifndef Z_SOLO
152ab9e68a2SToomas Soome #    define uncompress            zz_uncompress
153ab9e68a2SToomas Soome #    define uncompress2           z_uncompress2
154ab9e68a2SToomas Soome #  endif
155ab9e68a2SToomas Soome #  define zError                z_zError
156ab9e68a2SToomas Soome #  ifndef Z_SOLO
157ab9e68a2SToomas Soome #    define zcalloc               z_zcalloc
158ab9e68a2SToomas Soome #    define zcfree                z_zcfree
159ab9e68a2SToomas Soome #  endif
160ab9e68a2SToomas Soome #  define zlibCompileFlags      z_zlibCompileFlags
161ab9e68a2SToomas Soome #  define zlibVersion           z_zlibVersion
162ab9e68a2SToomas Soome 
163ab9e68a2SToomas Soome /* all zlib typedefs in zlib.h and zconf.h */
164ab9e68a2SToomas Soome #  define Byte                  z_Byte
165ab9e68a2SToomas Soome #  define Bytef                 z_Bytef
166ab9e68a2SToomas Soome #  define alloc_func            z_alloc_func
167ab9e68a2SToomas Soome #  define charf                 z_charf
168ab9e68a2SToomas Soome #  define free_func             z_free_func
169ab9e68a2SToomas Soome #  ifndef Z_SOLO
170ab9e68a2SToomas Soome #    define gzFile                z_gzFile
171ab9e68a2SToomas Soome #  endif
172ab9e68a2SToomas Soome #  define gz_header             z_gz_header
173ab9e68a2SToomas Soome #  define gz_headerp            z_gz_headerp
174ab9e68a2SToomas Soome #  define in_func               z_in_func
175ab9e68a2SToomas Soome #  define intf                  z_intf
176ab9e68a2SToomas Soome #  define out_func              z_out_func
177ab9e68a2SToomas Soome #  define uInt                  z_uInt
178ab9e68a2SToomas Soome #  define uIntf                 z_uIntf
179ab9e68a2SToomas Soome #  define uLong                 z_uLong
180ab9e68a2SToomas Soome #  define uLongf                z_uLongf
181ab9e68a2SToomas Soome #  define voidp                 z_voidp
182ab9e68a2SToomas Soome #  define voidpc                z_voidpc
183ab9e68a2SToomas Soome #  define voidpf                z_voidpf
184ab9e68a2SToomas Soome 
185ab9e68a2SToomas Soome /* all zlib structs in zlib.h and zconf.h */
186ab9e68a2SToomas Soome #  define gz_header_s           z_gz_header_s
187ab9e68a2SToomas Soome #  define internal_state        z_internal_state
188ab9e68a2SToomas Soome 
189ab9e68a2SToomas Soome #endif
190ab9e68a2SToomas Soome 
191ab9e68a2SToomas Soome #if defined(__MSDOS__) && !defined(MSDOS)
192ab9e68a2SToomas Soome #  define MSDOS
193ab9e68a2SToomas Soome #endif
194ab9e68a2SToomas Soome #if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
195ab9e68a2SToomas Soome #  define OS2
196ab9e68a2SToomas Soome #endif
197ab9e68a2SToomas Soome #if defined(_WINDOWS) && !defined(WINDOWS)
198ab9e68a2SToomas Soome #  define WINDOWS
199ab9e68a2SToomas Soome #endif
200ab9e68a2SToomas Soome #if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
201ab9e68a2SToomas Soome #  ifndef WIN32
202ab9e68a2SToomas Soome #    define WIN32
203ab9e68a2SToomas Soome #  endif
204ab9e68a2SToomas Soome #endif
205ab9e68a2SToomas Soome #if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
206ab9e68a2SToomas Soome #  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
207ab9e68a2SToomas Soome #    ifndef SYS16BIT
208ab9e68a2SToomas Soome #      define SYS16BIT
209ab9e68a2SToomas Soome #    endif
210ab9e68a2SToomas Soome #  endif
211ab9e68a2SToomas Soome #endif
212ab9e68a2SToomas Soome 
213ab9e68a2SToomas Soome /*
214ab9e68a2SToomas Soome  * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
215ab9e68a2SToomas Soome  * than 64k bytes at a time (needed on systems with 16-bit int).
216ab9e68a2SToomas Soome  */
217ab9e68a2SToomas Soome #ifdef SYS16BIT
218ab9e68a2SToomas Soome #  define MAXSEG_64K
219ab9e68a2SToomas Soome #endif
220ab9e68a2SToomas Soome #ifdef MSDOS
221ab9e68a2SToomas Soome #  define UNALIGNED_OK
222ab9e68a2SToomas Soome #endif
223ab9e68a2SToomas Soome 
224ab9e68a2SToomas Soome #ifdef __STDC_VERSION__
225ab9e68a2SToomas Soome #  ifndef STDC
226ab9e68a2SToomas Soome #    define STDC
227ab9e68a2SToomas Soome #  endif
228ab9e68a2SToomas Soome #  if __STDC_VERSION__ >= 199901L
229ab9e68a2SToomas Soome #    ifndef STDC99
230ab9e68a2SToomas Soome #      define STDC99
231ab9e68a2SToomas Soome #    endif
232ab9e68a2SToomas Soome #  endif
233ab9e68a2SToomas Soome #endif
234ab9e68a2SToomas Soome #if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
235ab9e68a2SToomas Soome #  define STDC
236ab9e68a2SToomas Soome #endif
237ab9e68a2SToomas Soome #if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
238ab9e68a2SToomas Soome #  define STDC
239ab9e68a2SToomas Soome #endif
240ab9e68a2SToomas Soome #if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
241ab9e68a2SToomas Soome #  define STDC
242ab9e68a2SToomas Soome #endif
243ab9e68a2SToomas Soome #if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
244ab9e68a2SToomas Soome #  define STDC
245ab9e68a2SToomas Soome #endif
246ab9e68a2SToomas Soome 
247ab9e68a2SToomas Soome #if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
248ab9e68a2SToomas Soome #  define STDC
249ab9e68a2SToomas Soome #endif
250ab9e68a2SToomas Soome 
251ab9e68a2SToomas Soome #ifndef STDC
252ab9e68a2SToomas Soome #  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
253ab9e68a2SToomas Soome #    define const       /* note: need a more gentle solution here */
254ab9e68a2SToomas Soome #  endif
255ab9e68a2SToomas Soome #endif
256ab9e68a2SToomas Soome 
257ab9e68a2SToomas Soome #if defined(ZLIB_CONST) && !defined(z_const)
258ab9e68a2SToomas Soome #  define z_const const
259ab9e68a2SToomas Soome #else
260ab9e68a2SToomas Soome #  define z_const
261ab9e68a2SToomas Soome #endif
262ab9e68a2SToomas Soome 
263ab9e68a2SToomas Soome #ifdef Z_SOLO
264ab9e68a2SToomas Soome    typedef unsigned long z_size_t;
265ab9e68a2SToomas Soome #else
266ab9e68a2SToomas Soome #  define z_longlong long long
267ab9e68a2SToomas Soome #  if defined(NO_SIZE_T)
268ab9e68a2SToomas Soome      typedef unsigned NO_SIZE_T z_size_t;
269ab9e68a2SToomas Soome #  elif defined(STDC)
270ab9e68a2SToomas Soome #    ifndef _KERNEL
271ab9e68a2SToomas Soome #        include <stddef.h>
272ab9e68a2SToomas Soome #    endif
273ab9e68a2SToomas Soome      typedef size_t z_size_t;
274ab9e68a2SToomas Soome #  else
275ab9e68a2SToomas Soome      typedef unsigned long z_size_t;
276ab9e68a2SToomas Soome #  endif
277ab9e68a2SToomas Soome #  undef z_longlong
278ab9e68a2SToomas Soome #endif
279ab9e68a2SToomas Soome 
280ab9e68a2SToomas Soome /* Maximum value for memLevel in deflateInit2 */
281ab9e68a2SToomas Soome #ifndef MAX_MEM_LEVEL
282ab9e68a2SToomas Soome #  ifdef MAXSEG_64K
283ab9e68a2SToomas Soome #    define MAX_MEM_LEVEL 8
284ab9e68a2SToomas Soome #  else
285ab9e68a2SToomas Soome #    define MAX_MEM_LEVEL 9
286ab9e68a2SToomas Soome #  endif
287ab9e68a2SToomas Soome #endif
288ab9e68a2SToomas Soome 
289ab9e68a2SToomas Soome /* Maximum value for windowBits in deflateInit2 and inflateInit2.
290ab9e68a2SToomas Soome  * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
291ab9e68a2SToomas Soome  * created by gzip. (Files created by minigzip can still be extracted by
292ab9e68a2SToomas Soome  * gzip.)
293ab9e68a2SToomas Soome  */
294ab9e68a2SToomas Soome #ifndef MAX_WBITS
295ab9e68a2SToomas Soome #  define MAX_WBITS   15 /* 32K LZ77 window */
296ab9e68a2SToomas Soome #endif
297ab9e68a2SToomas Soome 
298ab9e68a2SToomas Soome /* The memory requirements for deflate are (in bytes):
299ab9e68a2SToomas Soome             (1 << (windowBits+2)) +  (1 << (memLevel+9))
300ab9e68a2SToomas Soome  that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
301ab9e68a2SToomas Soome  plus a few kilobytes for small objects. For example, if you want to reduce
302ab9e68a2SToomas Soome  the default memory requirements from 256K to 128K, compile with
303ab9e68a2SToomas Soome      make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
304ab9e68a2SToomas Soome  Of course this will generally degrade compression (there's no free lunch).
305ab9e68a2SToomas Soome 
306ab9e68a2SToomas Soome    The memory requirements for inflate are (in bytes) 1 << windowBits
307ab9e68a2SToomas Soome  that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
308ab9e68a2SToomas Soome  for small objects.
309ab9e68a2SToomas Soome */
310ab9e68a2SToomas Soome 
311ab9e68a2SToomas Soome                         /* Type declarations */
312ab9e68a2SToomas Soome 
313ab9e68a2SToomas Soome #ifndef OF /* function prototypes */
314ab9e68a2SToomas Soome #  ifdef STDC
315ab9e68a2SToomas Soome #    define OF(args)  args
316ab9e68a2SToomas Soome #  else
317ab9e68a2SToomas Soome #    define OF(args)  ()
318ab9e68a2SToomas Soome #  endif
319ab9e68a2SToomas Soome #endif
320ab9e68a2SToomas Soome 
321ab9e68a2SToomas Soome #ifndef Z_ARG /* function prototypes for stdarg */
322ab9e68a2SToomas Soome #  if defined(STDC) || defined(Z_HAVE_STDARG_H)
323ab9e68a2SToomas Soome #    define Z_ARG(args)  args
324ab9e68a2SToomas Soome #  else
325ab9e68a2SToomas Soome #    define Z_ARG(args)  ()
326ab9e68a2SToomas Soome #  endif
327ab9e68a2SToomas Soome #endif
328ab9e68a2SToomas Soome 
329ab9e68a2SToomas Soome /* The following definitions for FAR are needed only for MSDOS mixed
330ab9e68a2SToomas Soome  * model programming (small or medium model with some far allocations).
331ab9e68a2SToomas Soome  * This was tested only with MSC; for other MSDOS compilers you may have
332ab9e68a2SToomas Soome  * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
333ab9e68a2SToomas Soome  * just define FAR to be empty.
334ab9e68a2SToomas Soome  */
335ab9e68a2SToomas Soome #ifdef SYS16BIT
336ab9e68a2SToomas Soome #  if defined(M_I86SM) || defined(M_I86MM)
337ab9e68a2SToomas Soome      /* MSC small or medium model */
338ab9e68a2SToomas Soome #    define SMALL_MEDIUM
339ab9e68a2SToomas Soome #    ifdef _MSC_VER
340ab9e68a2SToomas Soome #      define FAR _far
341ab9e68a2SToomas Soome #    else
342ab9e68a2SToomas Soome #      define FAR far
343ab9e68a2SToomas Soome #    endif
344ab9e68a2SToomas Soome #  endif
345ab9e68a2SToomas Soome #  if (defined(__SMALL__) || defined(__MEDIUM__))
346ab9e68a2SToomas Soome      /* Turbo C small or medium model */
347ab9e68a2SToomas Soome #    define SMALL_MEDIUM
348ab9e68a2SToomas Soome #    ifdef __BORLANDC__
349ab9e68a2SToomas Soome #      define FAR _far
350ab9e68a2SToomas Soome #    else
351ab9e68a2SToomas Soome #      define FAR far
352ab9e68a2SToomas Soome #    endif
353ab9e68a2SToomas Soome #  endif
354ab9e68a2SToomas Soome #endif
355ab9e68a2SToomas Soome 
356ab9e68a2SToomas Soome #if defined(WINDOWS) || defined(WIN32)
357ab9e68a2SToomas Soome    /* If building or using zlib as a DLL, define ZLIB_DLL.
358ab9e68a2SToomas Soome     * This is not mandatory, but it offers a little performance increase.
359ab9e68a2SToomas Soome     */
360ab9e68a2SToomas Soome #  ifdef ZLIB_DLL
361ab9e68a2SToomas Soome #    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
362ab9e68a2SToomas Soome #      ifdef ZLIB_INTERNAL
363ab9e68a2SToomas Soome #        define ZEXTERN extern __declspec(dllexport)
364ab9e68a2SToomas Soome #      else
365ab9e68a2SToomas Soome #        define ZEXTERN extern __declspec(dllimport)
366ab9e68a2SToomas Soome #      endif
367ab9e68a2SToomas Soome #    endif
368ab9e68a2SToomas Soome #  endif  /* ZLIB_DLL */
369ab9e68a2SToomas Soome    /* If building or using zlib with the WINAPI/WINAPIV calling convention,
370ab9e68a2SToomas Soome     * define ZLIB_WINAPI.
371ab9e68a2SToomas Soome     * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
372ab9e68a2SToomas Soome     */
373ab9e68a2SToomas Soome #  ifdef ZLIB_WINAPI
374ab9e68a2SToomas Soome #    ifdef FAR
375ab9e68a2SToomas Soome #      undef FAR
376ab9e68a2SToomas Soome #    endif
377ab9e68a2SToomas Soome #    include <windows.h>
378ab9e68a2SToomas Soome      /* No need for _export, use ZLIB.DEF instead. */
379ab9e68a2SToomas Soome      /* For complete Windows compatibility, use WINAPI, not __stdcall. */
380ab9e68a2SToomas Soome #    define ZEXPORT WINAPI
381ab9e68a2SToomas Soome #    ifdef WIN32
382ab9e68a2SToomas Soome #      define ZEXPORTVA WINAPIV
383ab9e68a2SToomas Soome #    else
384ab9e68a2SToomas Soome #      define ZEXPORTVA FAR CDECL
385ab9e68a2SToomas Soome #    endif
386ab9e68a2SToomas Soome #  endif
387ab9e68a2SToomas Soome #endif
388ab9e68a2SToomas Soome 
389ab9e68a2SToomas Soome #if defined (__BEOS__)
390ab9e68a2SToomas Soome #  ifdef ZLIB_DLL
391ab9e68a2SToomas Soome #    ifdef ZLIB_INTERNAL
392ab9e68a2SToomas Soome #      define ZEXPORT   __declspec(dllexport)
393ab9e68a2SToomas Soome #      define ZEXPORTVA __declspec(dllexport)
394ab9e68a2SToomas Soome #    else
395ab9e68a2SToomas Soome #      define ZEXPORT   __declspec(dllimport)
396ab9e68a2SToomas Soome #      define ZEXPORTVA __declspec(dllimport)
397ab9e68a2SToomas Soome #    endif
398ab9e68a2SToomas Soome #  endif
399ab9e68a2SToomas Soome #endif
400ab9e68a2SToomas Soome 
401ab9e68a2SToomas Soome #ifndef ZEXTERN
402ab9e68a2SToomas Soome #  define ZEXTERN extern
403ab9e68a2SToomas Soome #endif
404ab9e68a2SToomas Soome #ifndef ZEXPORT
405ab9e68a2SToomas Soome #  define ZEXPORT
406ab9e68a2SToomas Soome #endif
407ab9e68a2SToomas Soome #ifndef ZEXPORTVA
408ab9e68a2SToomas Soome #  define ZEXPORTVA
409ab9e68a2SToomas Soome #endif
410ab9e68a2SToomas Soome 
411ab9e68a2SToomas Soome #ifndef FAR
412ab9e68a2SToomas Soome #  define FAR
413ab9e68a2SToomas Soome #endif
414ab9e68a2SToomas Soome 
415ab9e68a2SToomas Soome #if !defined(__MACTYPES__)
416ab9e68a2SToomas Soome typedef unsigned char  Byte;  /* 8 bits */
417ab9e68a2SToomas Soome #endif
418ab9e68a2SToomas Soome typedef unsigned int   uInt;  /* 16 bits or more */
419ab9e68a2SToomas Soome typedef unsigned long  uLong; /* 32 bits or more */
420ab9e68a2SToomas Soome 
421ab9e68a2SToomas Soome #ifdef SMALL_MEDIUM
422ab9e68a2SToomas Soome    /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
423ab9e68a2SToomas Soome #  define Bytef Byte FAR
424ab9e68a2SToomas Soome #else
425ab9e68a2SToomas Soome    typedef Byte  FAR Bytef;
426ab9e68a2SToomas Soome #endif
427ab9e68a2SToomas Soome typedef char  FAR charf;
428ab9e68a2SToomas Soome typedef int   FAR intf;
429ab9e68a2SToomas Soome typedef uInt  FAR uIntf;
430ab9e68a2SToomas Soome typedef uLong FAR uLongf;
431ab9e68a2SToomas Soome 
432ab9e68a2SToomas Soome #ifdef STDC
433ab9e68a2SToomas Soome    typedef void const *voidpc;
434ab9e68a2SToomas Soome    typedef void FAR   *voidpf;
435ab9e68a2SToomas Soome    typedef void       *voidp;
436ab9e68a2SToomas Soome #else
437ab9e68a2SToomas Soome    typedef Byte const *voidpc;
438ab9e68a2SToomas Soome    typedef Byte FAR   *voidpf;
439ab9e68a2SToomas Soome    typedef Byte       *voidp;
440ab9e68a2SToomas Soome #endif
441ab9e68a2SToomas Soome 
442ab9e68a2SToomas Soome #if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
443ab9e68a2SToomas Soome #  ifndef _KERNEL
444ab9e68a2SToomas Soome #      include <limits.h>
445ab9e68a2SToomas Soome #  endif
446ab9e68a2SToomas Soome #  if (UINT_MAX == 0xffffffffUL)
447ab9e68a2SToomas Soome #    define Z_U4 unsigned
448ab9e68a2SToomas Soome #  elif (ULONG_MAX == 0xffffffffUL)
449ab9e68a2SToomas Soome #    define Z_U4 unsigned long
450ab9e68a2SToomas Soome #  elif (USHRT_MAX == 0xffffffffUL)
451ab9e68a2SToomas Soome #    define Z_U4 unsigned short
452ab9e68a2SToomas Soome #  endif
453ab9e68a2SToomas Soome #endif
454ab9e68a2SToomas Soome 
455ab9e68a2SToomas Soome #ifdef Z_U4
456ab9e68a2SToomas Soome    typedef Z_U4 z_crc_t;
457ab9e68a2SToomas Soome #else
458ab9e68a2SToomas Soome    typedef unsigned long z_crc_t;
459ab9e68a2SToomas Soome #endif
460ab9e68a2SToomas Soome 
461ab9e68a2SToomas Soome #ifdef HAVE_UNISTD_H    /* may be set to #if 1 by ./configure */
462ab9e68a2SToomas Soome #  define Z_HAVE_UNISTD_H
463ab9e68a2SToomas Soome #endif
464ab9e68a2SToomas Soome 
465ab9e68a2SToomas Soome #ifdef HAVE_STDARG_H    /* may be set to #if 1 by ./configure */
466ab9e68a2SToomas Soome #  define Z_HAVE_STDARG_H
467ab9e68a2SToomas Soome #endif
468ab9e68a2SToomas Soome 
469ab9e68a2SToomas Soome #ifdef STDC
470ab9e68a2SToomas Soome #  ifndef Z_SOLO
471ab9e68a2SToomas Soome #    include <sys/types.h>      /* for off_t */
472ab9e68a2SToomas Soome #  endif
473ab9e68a2SToomas Soome #endif
474ab9e68a2SToomas Soome 
475ab9e68a2SToomas Soome #if defined(STDC) || defined(Z_HAVE_STDARG_H)
476ab9e68a2SToomas Soome #  ifdef _KERNEL
477ab9e68a2SToomas Soome #    include <sys/varargs.h>
478ab9e68a2SToomas Soome #  else
479ab9e68a2SToomas Soome #  ifndef Z_SOLO
480ab9e68a2SToomas Soome #    include <stdarg.h>         /* for va_list */
481ab9e68a2SToomas Soome #  endif
482ab9e68a2SToomas Soome #  endif
483ab9e68a2SToomas Soome #endif
484ab9e68a2SToomas Soome 
485ab9e68a2SToomas Soome #ifdef _WIN32
486ab9e68a2SToomas Soome #  ifndef Z_SOLO
487ab9e68a2SToomas Soome #    include <stddef.h>         /* for wchar_t */
488ab9e68a2SToomas Soome #  endif
489ab9e68a2SToomas Soome #endif
490ab9e68a2SToomas Soome 
491ab9e68a2SToomas Soome /* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
492ab9e68a2SToomas Soome  * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
493ab9e68a2SToomas Soome  * though the former does not conform to the LFS document), but considering
494ab9e68a2SToomas Soome  * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
495ab9e68a2SToomas Soome  * equivalently requesting no 64-bit operations
496ab9e68a2SToomas Soome  */
497ab9e68a2SToomas Soome #if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
498ab9e68a2SToomas Soome #  undef _LARGEFILE64_SOURCE
499ab9e68a2SToomas Soome #endif
500ab9e68a2SToomas Soome 
501ab9e68a2SToomas Soome #if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
502ab9e68a2SToomas Soome #  define Z_HAVE_UNISTD_H
503ab9e68a2SToomas Soome #endif
504ab9e68a2SToomas Soome #ifndef Z_SOLO
505ab9e68a2SToomas Soome #  if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
506ab9e68a2SToomas Soome #    ifndef _KERNEL
507ab9e68a2SToomas Soome #      include <unistd.h>         /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
508ab9e68a2SToomas Soome #    endif
509ab9e68a2SToomas Soome #    ifdef VMS
510ab9e68a2SToomas Soome #      include <unixio.h>       /* for off_t */
511ab9e68a2SToomas Soome #    endif
512ab9e68a2SToomas Soome #    ifndef z_off_t
513ab9e68a2SToomas Soome #      define z_off_t off_t
514ab9e68a2SToomas Soome #    endif
515ab9e68a2SToomas Soome #  endif
516ab9e68a2SToomas Soome #endif
517ab9e68a2SToomas Soome 
518ab9e68a2SToomas Soome #if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
519ab9e68a2SToomas Soome #  define Z_LFS64
520ab9e68a2SToomas Soome #endif
521ab9e68a2SToomas Soome 
522ab9e68a2SToomas Soome #if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
523ab9e68a2SToomas Soome #  define Z_LARGE64
524ab9e68a2SToomas Soome #endif
525ab9e68a2SToomas Soome 
526ab9e68a2SToomas Soome #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
527ab9e68a2SToomas Soome #  define Z_WANT64
528ab9e68a2SToomas Soome #endif
529ab9e68a2SToomas Soome 
530ab9e68a2SToomas Soome #if !defined(SEEK_SET) && !defined(Z_SOLO)
531ab9e68a2SToomas Soome #  define SEEK_SET        0       /* Seek from beginning of file.  */
532ab9e68a2SToomas Soome #  define SEEK_CUR        1       /* Seek from current position.  */
533ab9e68a2SToomas Soome #  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
534ab9e68a2SToomas Soome #endif
535ab9e68a2SToomas Soome 
536ab9e68a2SToomas Soome #ifndef z_off_t
537ab9e68a2SToomas Soome #  define z_off_t long
538ab9e68a2SToomas Soome #endif
539ab9e68a2SToomas Soome 
540ab9e68a2SToomas Soome #if !defined(_WIN32) && defined(Z_LARGE64)
541ab9e68a2SToomas Soome #  define z_off64_t off64_t
542ab9e68a2SToomas Soome #else
543ab9e68a2SToomas Soome #  if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
544ab9e68a2SToomas Soome #    define z_off64_t __int64
545ab9e68a2SToomas Soome #  else
546ab9e68a2SToomas Soome #    define z_off64_t z_off_t
547ab9e68a2SToomas Soome #  endif
548ab9e68a2SToomas Soome #endif
549ab9e68a2SToomas Soome 
550ab9e68a2SToomas Soome /* MVS linker does not support external names larger than 8 bytes */
551ab9e68a2SToomas Soome #if defined(__MVS__)
552ab9e68a2SToomas Soome   #pragma map(deflateInit_,"DEIN")
553ab9e68a2SToomas Soome   #pragma map(deflateInit2_,"DEIN2")
554ab9e68a2SToomas Soome   #pragma map(deflateEnd,"DEEND")
555ab9e68a2SToomas Soome   #pragma map(deflateBound,"DEBND")
556ab9e68a2SToomas Soome   #pragma map(inflateInit_,"ININ")
557ab9e68a2SToomas Soome   #pragma map(inflateInit2_,"ININ2")
558ab9e68a2SToomas Soome   #pragma map(inflateEnd,"INEND")
559ab9e68a2SToomas Soome   #pragma map(inflateSync,"INSY")
560ab9e68a2SToomas Soome   #pragma map(inflateSetDictionary,"INSEDI")
561ab9e68a2SToomas Soome   #pragma map(compressBound,"CMBND")
562ab9e68a2SToomas Soome   #pragma map(inflate_table,"INTABL")
563ab9e68a2SToomas Soome   #pragma map(inflate_fast,"INFA")
564ab9e68a2SToomas Soome   #pragma map(inflate_copyright,"INCOPY")
565ab9e68a2SToomas Soome #endif
566ab9e68a2SToomas Soome 
567ab9e68a2SToomas Soome #endif /* ZCONF_H */
568