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