1311267Sdelphij/* zconf.h -- configuration of the zlib compression library
2313796Sdelphij * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
3311267Sdelphij * For conditions of distribution and use, see copyright notice in zlib.h
4311267Sdelphij */
5311267Sdelphij
6311267Sdelphij/* @(#) $Id$ */
7311267Sdelphij
8311267Sdelphij#ifndef ZCONF_H
9311267Sdelphij#define ZCONF_H
10311267Sdelphij
11311267Sdelphij/*
12311267Sdelphij * If you *really* need a unique prefix for all types and library functions,
13311267Sdelphij * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
14311267Sdelphij * Even better than compiling with -DZ_PREFIX would be to use configure to set
15311267Sdelphij * this permanently in zconf.h using "./configure --zprefix".
16311267Sdelphij */
17311267Sdelphij#ifdef Z_PREFIX     /* may be set to #if 1 by ./configure */
18311267Sdelphij#  define Z_PREFIX_SET
19311267Sdelphij
20313796Sdelphij/* all linked symbols and init macros */
21311267Sdelphij#  define _dist_code            z__dist_code
22311267Sdelphij#  define _length_code          z__length_code
23311267Sdelphij#  define _tr_align             z__tr_align
24311267Sdelphij#  define _tr_flush_bits        z__tr_flush_bits
25311267Sdelphij#  define _tr_flush_block       z__tr_flush_block
26311267Sdelphij#  define _tr_init              z__tr_init
27311267Sdelphij#  define _tr_stored_block      z__tr_stored_block
28311267Sdelphij#  define _tr_tally             z__tr_tally
29311267Sdelphij#  define adler32               z_adler32
30311267Sdelphij#  define adler32_combine       z_adler32_combine
31311267Sdelphij#  define adler32_combine64     z_adler32_combine64
32313796Sdelphij#  define adler32_z             z_adler32_z
33311267Sdelphij#  ifndef Z_SOLO
34311267Sdelphij#    define compress              z_compress
35311267Sdelphij#    define compress2             z_compress2
36311267Sdelphij#    define compressBound         z_compressBound
37311267Sdelphij#  endif
38311267Sdelphij#  define crc32                 z_crc32
39311267Sdelphij#  define crc32_combine         z_crc32_combine
40311267Sdelphij#  define crc32_combine64       z_crc32_combine64
41313796Sdelphij#  define crc32_z               z_crc32_z
42311267Sdelphij#  define deflate               z_deflate
43311267Sdelphij#  define deflateBound          z_deflateBound
44311267Sdelphij#  define deflateCopy           z_deflateCopy
45311267Sdelphij#  define deflateEnd            z_deflateEnd
46313796Sdelphij#  define deflateGetDictionary  z_deflateGetDictionary
47313796Sdelphij#  define deflateInit           z_deflateInit
48313796Sdelphij#  define deflateInit2          z_deflateInit2
49311267Sdelphij#  define deflateInit2_         z_deflateInit2_
50311267Sdelphij#  define deflateInit_          z_deflateInit_
51311267Sdelphij#  define deflateParams         z_deflateParams
52311267Sdelphij#  define deflatePending        z_deflatePending
53311267Sdelphij#  define deflatePrime          z_deflatePrime
54311267Sdelphij#  define deflateReset          z_deflateReset
55311267Sdelphij#  define deflateResetKeep      z_deflateResetKeep
56311267Sdelphij#  define deflateSetDictionary  z_deflateSetDictionary
57311267Sdelphij#  define deflateSetHeader      z_deflateSetHeader
58311267Sdelphij#  define deflateTune           z_deflateTune
59311267Sdelphij#  define deflate_copyright     z_deflate_copyright
60311267Sdelphij#  define get_crc_table         z_get_crc_table
61311267Sdelphij#  ifndef Z_SOLO
62311267Sdelphij#    define gz_error              z_gz_error
63311267Sdelphij#    define gz_intmax             z_gz_intmax
64311267Sdelphij#    define gz_strwinerror        z_gz_strwinerror
65311267Sdelphij#    define gzbuffer              z_gzbuffer
66311267Sdelphij#    define gzclearerr            z_gzclearerr
67311267Sdelphij#    define gzclose               z_gzclose
68311267Sdelphij#    define gzclose_r             z_gzclose_r
69311267Sdelphij#    define gzclose_w             z_gzclose_w
70311267Sdelphij#    define gzdirect              z_gzdirect
71311267Sdelphij#    define gzdopen               z_gzdopen
72311267Sdelphij#    define gzeof                 z_gzeof
73311267Sdelphij#    define gzerror               z_gzerror
74311267Sdelphij#    define gzflush               z_gzflush
75313796Sdelphij#    define gzfread               z_gzfread
76313796Sdelphij#    define gzfwrite              z_gzfwrite
77311267Sdelphij#    define gzgetc                z_gzgetc
78311267Sdelphij#    define gzgetc_               z_gzgetc_
79311267Sdelphij#    define gzgets                z_gzgets
80311267Sdelphij#    define gzoffset              z_gzoffset
81311267Sdelphij#    define gzoffset64            z_gzoffset64
82311267Sdelphij#    define gzopen                z_gzopen
83311267Sdelphij#    define gzopen64              z_gzopen64
84311267Sdelphij#    ifdef _WIN32
85311267Sdelphij#      define gzopen_w              z_gzopen_w
86311267Sdelphij#    endif
87311267Sdelphij#    define gzprintf              z_gzprintf
88311267Sdelphij#    define gzputc                z_gzputc
89311267Sdelphij#    define gzputs                z_gzputs
90311267Sdelphij#    define gzread                z_gzread
91311267Sdelphij#    define gzrewind              z_gzrewind
92311267Sdelphij#    define gzseek                z_gzseek
93311267Sdelphij#    define gzseek64              z_gzseek64
94311267Sdelphij#    define gzsetparams           z_gzsetparams
95311267Sdelphij#    define gztell                z_gztell
96311267Sdelphij#    define gztell64              z_gztell64
97311267Sdelphij#    define gzungetc              z_gzungetc
98313796Sdelphij#    define gzvprintf             z_gzvprintf
99311267Sdelphij#    define gzwrite               z_gzwrite
100311267Sdelphij#  endif
101311267Sdelphij#  define inflate               z_inflate
102311267Sdelphij#  define inflateBack           z_inflateBack
103311267Sdelphij#  define inflateBackEnd        z_inflateBackEnd
104313796Sdelphij#  define inflateBackInit       z_inflateBackInit
105311267Sdelphij#  define inflateBackInit_      z_inflateBackInit_
106313796Sdelphij#  define inflateCodesUsed      z_inflateCodesUsed
107311267Sdelphij#  define inflateCopy           z_inflateCopy
108311267Sdelphij#  define inflateEnd            z_inflateEnd
109313796Sdelphij#  define inflateGetDictionary  z_inflateGetDictionary
110311267Sdelphij#  define inflateGetHeader      z_inflateGetHeader
111313796Sdelphij#  define inflateInit           z_inflateInit
112313796Sdelphij#  define inflateInit2          z_inflateInit2
113311267Sdelphij#  define inflateInit2_         z_inflateInit2_
114311267Sdelphij#  define inflateInit_          z_inflateInit_
115311267Sdelphij#  define inflateMark           z_inflateMark
116311267Sdelphij#  define inflatePrime          z_inflatePrime
117311267Sdelphij#  define inflateReset          z_inflateReset
118311267Sdelphij#  define inflateReset2         z_inflateReset2
119313796Sdelphij#  define inflateResetKeep      z_inflateResetKeep
120311267Sdelphij#  define inflateSetDictionary  z_inflateSetDictionary
121311267Sdelphij#  define inflateSync           z_inflateSync
122311267Sdelphij#  define inflateSyncPoint      z_inflateSyncPoint
123311267Sdelphij#  define inflateUndermine      z_inflateUndermine
124313796Sdelphij#  define inflateValidate       z_inflateValidate
125311267Sdelphij#  define inflate_copyright     z_inflate_copyright
126311267Sdelphij#  define inflate_fast          z_inflate_fast
127311267Sdelphij#  define inflate_table         z_inflate_table
128311267Sdelphij#  ifndef Z_SOLO
129311267Sdelphij#    define uncompress            z_uncompress
130313796Sdelphij#    define uncompress2           z_uncompress2
131311267Sdelphij#  endif
132311267Sdelphij#  define zError                z_zError
133311267Sdelphij#  ifndef Z_SOLO
134311267Sdelphij#    define zcalloc               z_zcalloc
135311267Sdelphij#    define zcfree                z_zcfree
136311267Sdelphij#  endif
137311267Sdelphij#  define zlibCompileFlags      z_zlibCompileFlags
138311267Sdelphij#  define zlibVersion           z_zlibVersion
139311267Sdelphij
140311267Sdelphij/* all zlib typedefs in zlib.h and zconf.h */
141311267Sdelphij#  define Byte                  z_Byte
142311267Sdelphij#  define Bytef                 z_Bytef
143311267Sdelphij#  define alloc_func            z_alloc_func
144311267Sdelphij#  define charf                 z_charf
145311267Sdelphij#  define free_func             z_free_func
146311267Sdelphij#  ifndef Z_SOLO
147311267Sdelphij#    define gzFile                z_gzFile
148311267Sdelphij#  endif
149311267Sdelphij#  define gz_header             z_gz_header
150311267Sdelphij#  define gz_headerp            z_gz_headerp
151311267Sdelphij#  define in_func               z_in_func
152311267Sdelphij#  define intf                  z_intf
153311267Sdelphij#  define out_func              z_out_func
154311267Sdelphij#  define uInt                  z_uInt
155311267Sdelphij#  define uIntf                 z_uIntf
156311267Sdelphij#  define uLong                 z_uLong
157311267Sdelphij#  define uLongf                z_uLongf
158311267Sdelphij#  define voidp                 z_voidp
159311267Sdelphij#  define voidpc                z_voidpc
160311267Sdelphij#  define voidpf                z_voidpf
161311267Sdelphij
162311267Sdelphij/* all zlib structs in zlib.h and zconf.h */
163311267Sdelphij#  define gz_header_s           z_gz_header_s
164311267Sdelphij#  define internal_state        z_internal_state
165311267Sdelphij
166311267Sdelphij#endif
167311267Sdelphij
168311267Sdelphij#if defined(__MSDOS__) && !defined(MSDOS)
169311267Sdelphij#  define MSDOS
170311267Sdelphij#endif
171311267Sdelphij#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
172311267Sdelphij#  define OS2
173311267Sdelphij#endif
174311267Sdelphij#if defined(_WINDOWS) && !defined(WINDOWS)
175311267Sdelphij#  define WINDOWS
176311267Sdelphij#endif
177311267Sdelphij#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
178311267Sdelphij#  ifndef WIN32
179311267Sdelphij#    define WIN32
180311267Sdelphij#  endif
181311267Sdelphij#endif
182311267Sdelphij#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
183311267Sdelphij#  if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
184311267Sdelphij#    ifndef SYS16BIT
185311267Sdelphij#      define SYS16BIT
186311267Sdelphij#    endif
187311267Sdelphij#  endif
188311267Sdelphij#endif
189311267Sdelphij
190311267Sdelphij/*
191311267Sdelphij * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
192311267Sdelphij * than 64k bytes at a time (needed on systems with 16-bit int).
193311267Sdelphij */
194311267Sdelphij#ifdef SYS16BIT
195311267Sdelphij#  define MAXSEG_64K
196311267Sdelphij#endif
197311267Sdelphij#ifdef MSDOS
198311267Sdelphij#  define UNALIGNED_OK
199311267Sdelphij#endif
200311267Sdelphij
201311267Sdelphij#ifdef __STDC_VERSION__
202311267Sdelphij#  ifndef STDC
203311267Sdelphij#    define STDC
204311267Sdelphij#  endif
205311267Sdelphij#  if __STDC_VERSION__ >= 199901L
206311267Sdelphij#    ifndef STDC99
207311267Sdelphij#      define STDC99
208311267Sdelphij#    endif
209311267Sdelphij#  endif
210311267Sdelphij#endif
211311267Sdelphij#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
212311267Sdelphij#  define STDC
213311267Sdelphij#endif
214311267Sdelphij#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
215311267Sdelphij#  define STDC
216311267Sdelphij#endif
217311267Sdelphij#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
218311267Sdelphij#  define STDC
219311267Sdelphij#endif
220311267Sdelphij#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
221311267Sdelphij#  define STDC
222311267Sdelphij#endif
223311267Sdelphij
224311267Sdelphij#if defined(__OS400__) && !defined(STDC)    /* iSeries (formerly AS/400). */
225311267Sdelphij#  define STDC
226311267Sdelphij#endif
227311267Sdelphij
228311267Sdelphij#ifndef STDC
229311267Sdelphij#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
230311267Sdelphij#    define const       /* note: need a more gentle solution here */
231311267Sdelphij#  endif
232311267Sdelphij#endif
233311267Sdelphij
234311267Sdelphij#if defined(ZLIB_CONST) && !defined(z_const)
235311267Sdelphij#  define z_const const
236311267Sdelphij#else
237311267Sdelphij#  define z_const
238311267Sdelphij#endif
239311267Sdelphij
240313796Sdelphij#ifdef Z_SOLO
241313796Sdelphij   typedef unsigned long z_size_t;
242313796Sdelphij#else
243313796Sdelphij#  define z_longlong long long
244313796Sdelphij#  if defined(NO_SIZE_T)
245313796Sdelphij     typedef unsigned NO_SIZE_T z_size_t;
246313796Sdelphij#  elif defined(STDC)
247313796Sdelphij#    include <stddef.h>
248313796Sdelphij     typedef size_t z_size_t;
249313796Sdelphij#  else
250313796Sdelphij     typedef unsigned long z_size_t;
251313796Sdelphij#  endif
252313796Sdelphij#  undef z_longlong
253311267Sdelphij#endif
254311267Sdelphij
255311267Sdelphij/* Maximum value for memLevel in deflateInit2 */
256311267Sdelphij#ifndef MAX_MEM_LEVEL
257311267Sdelphij#  ifdef MAXSEG_64K
258311267Sdelphij#    define MAX_MEM_LEVEL 8
259311267Sdelphij#  else
260311267Sdelphij#    define MAX_MEM_LEVEL 9
261311267Sdelphij#  endif
262311267Sdelphij#endif
263311267Sdelphij
264311267Sdelphij/* Maximum value for windowBits in deflateInit2 and inflateInit2.
265311267Sdelphij * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
266311267Sdelphij * created by gzip. (Files created by minigzip can still be extracted by
267311267Sdelphij * gzip.)
268311267Sdelphij */
269311267Sdelphij#ifndef MAX_WBITS
270311267Sdelphij#  define MAX_WBITS   15 /* 32K LZ77 window */
271311267Sdelphij#endif
272311267Sdelphij
273311267Sdelphij/* The memory requirements for deflate are (in bytes):
274311267Sdelphij            (1 << (windowBits+2)) +  (1 << (memLevel+9))
275311267Sdelphij that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
276311267Sdelphij plus a few kilobytes for small objects. For example, if you want to reduce
277311267Sdelphij the default memory requirements from 256K to 128K, compile with
278311267Sdelphij     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
279311267Sdelphij Of course this will generally degrade compression (there's no free lunch).
280311267Sdelphij
281311267Sdelphij   The memory requirements for inflate are (in bytes) 1 << windowBits
282313796Sdelphij that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
283311267Sdelphij for small objects.
284311267Sdelphij*/
285311267Sdelphij
286311267Sdelphij                        /* Type declarations */
287311267Sdelphij
288311267Sdelphij#ifndef OF /* function prototypes */
289311267Sdelphij#  ifdef STDC
290311267Sdelphij#    define OF(args)  args
291311267Sdelphij#  else
292311267Sdelphij#    define OF(args)  ()
293311267Sdelphij#  endif
294311267Sdelphij#endif
295311267Sdelphij
296311267Sdelphij#ifndef Z_ARG /* function prototypes for stdarg */
297311267Sdelphij#  if defined(STDC) || defined(Z_HAVE_STDARG_H)
298311267Sdelphij#    define Z_ARG(args)  args
299311267Sdelphij#  else
300311267Sdelphij#    define Z_ARG(args)  ()
301311267Sdelphij#  endif
302311267Sdelphij#endif
303311267Sdelphij
304311267Sdelphij/* The following definitions for FAR are needed only for MSDOS mixed
305311267Sdelphij * model programming (small or medium model with some far allocations).
306311267Sdelphij * This was tested only with MSC; for other MSDOS compilers you may have
307311267Sdelphij * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
308311267Sdelphij * just define FAR to be empty.
309311267Sdelphij */
310311267Sdelphij#ifdef SYS16BIT
311311267Sdelphij#  if defined(M_I86SM) || defined(M_I86MM)
312311267Sdelphij     /* MSC small or medium model */
313311267Sdelphij#    define SMALL_MEDIUM
314311267Sdelphij#    ifdef _MSC_VER
315311267Sdelphij#      define FAR _far
316311267Sdelphij#    else
317311267Sdelphij#      define FAR far
318311267Sdelphij#    endif
319311267Sdelphij#  endif
320311267Sdelphij#  if (defined(__SMALL__) || defined(__MEDIUM__))
321311267Sdelphij     /* Turbo C small or medium model */
322311267Sdelphij#    define SMALL_MEDIUM
323311267Sdelphij#    ifdef __BORLANDC__
324311267Sdelphij#      define FAR _far
325311267Sdelphij#    else
326311267Sdelphij#      define FAR far
327311267Sdelphij#    endif
328311267Sdelphij#  endif
329311267Sdelphij#endif
330311267Sdelphij
331311267Sdelphij#if defined(WINDOWS) || defined(WIN32)
332311267Sdelphij   /* If building or using zlib as a DLL, define ZLIB_DLL.
333311267Sdelphij    * This is not mandatory, but it offers a little performance increase.
334311267Sdelphij    */
335311267Sdelphij#  ifdef ZLIB_DLL
336311267Sdelphij#    if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
337311267Sdelphij#      ifdef ZLIB_INTERNAL
338311267Sdelphij#        define ZEXTERN extern __declspec(dllexport)
339311267Sdelphij#      else
340311267Sdelphij#        define ZEXTERN extern __declspec(dllimport)
341311267Sdelphij#      endif
342311267Sdelphij#    endif
343311267Sdelphij#  endif  /* ZLIB_DLL */
344311267Sdelphij   /* If building or using zlib with the WINAPI/WINAPIV calling convention,
345311267Sdelphij    * define ZLIB_WINAPI.
346311267Sdelphij    * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
347311267Sdelphij    */
348311267Sdelphij#  ifdef ZLIB_WINAPI
349311267Sdelphij#    ifdef FAR
350311267Sdelphij#      undef FAR
351311267Sdelphij#    endif
352311267Sdelphij#    include <windows.h>
353311267Sdelphij     /* No need for _export, use ZLIB.DEF instead. */
354311267Sdelphij     /* For complete Windows compatibility, use WINAPI, not __stdcall. */
355311267Sdelphij#    define ZEXPORT WINAPI
356311267Sdelphij#    ifdef WIN32
357311267Sdelphij#      define ZEXPORTVA WINAPIV
358311267Sdelphij#    else
359311267Sdelphij#      define ZEXPORTVA FAR CDECL
360311267Sdelphij#    endif
361311267Sdelphij#  endif
362311267Sdelphij#endif
363311267Sdelphij
364311267Sdelphij#if defined (__BEOS__)
365311267Sdelphij#  ifdef ZLIB_DLL
366311267Sdelphij#    ifdef ZLIB_INTERNAL
367311267Sdelphij#      define ZEXPORT   __declspec(dllexport)
368311267Sdelphij#      define ZEXPORTVA __declspec(dllexport)
369311267Sdelphij#    else
370311267Sdelphij#      define ZEXPORT   __declspec(dllimport)
371311267Sdelphij#      define ZEXPORTVA __declspec(dllimport)
372311267Sdelphij#    endif
373311267Sdelphij#  endif
374311267Sdelphij#endif
375311267Sdelphij
376311267Sdelphij#ifndef ZEXTERN
377311267Sdelphij#  define ZEXTERN extern
378311267Sdelphij#endif
379311267Sdelphij#ifndef ZEXPORT
380311267Sdelphij#  define ZEXPORT
381311267Sdelphij#endif
382311267Sdelphij#ifndef ZEXPORTVA
383311267Sdelphij#  define ZEXPORTVA
384311267Sdelphij#endif
385311267Sdelphij
386311267Sdelphij#ifndef FAR
387311267Sdelphij#  define FAR
388311267Sdelphij#endif
389311267Sdelphij
390311267Sdelphij#if !defined(__MACTYPES__)
391311267Sdelphijtypedef unsigned char  Byte;  /* 8 bits */
392311267Sdelphij#endif
393311267Sdelphijtypedef unsigned int   uInt;  /* 16 bits or more */
394311267Sdelphijtypedef unsigned long  uLong; /* 32 bits or more */
395311267Sdelphij
396311267Sdelphij#ifdef SMALL_MEDIUM
397311267Sdelphij   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
398311267Sdelphij#  define Bytef Byte FAR
399311267Sdelphij#else
400311267Sdelphij   typedef Byte  FAR Bytef;
401311267Sdelphij#endif
402311267Sdelphijtypedef char  FAR charf;
403311267Sdelphijtypedef int   FAR intf;
404311267Sdelphijtypedef uInt  FAR uIntf;
405311267Sdelphijtypedef uLong FAR uLongf;
406311267Sdelphij
407311267Sdelphij#ifdef STDC
408311267Sdelphij   typedef void const *voidpc;
409311267Sdelphij   typedef void FAR   *voidpf;
410311267Sdelphij   typedef void       *voidp;
411311267Sdelphij#else
412311267Sdelphij   typedef Byte const *voidpc;
413311267Sdelphij   typedef Byte FAR   *voidpf;
414311267Sdelphij   typedef Byte       *voidp;
415311267Sdelphij#endif
416311267Sdelphij
417311267Sdelphij#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
418311267Sdelphij#  include <limits.h>
419311267Sdelphij#  if (UINT_MAX == 0xffffffffUL)
420311267Sdelphij#    define Z_U4 unsigned
421311267Sdelphij#  elif (ULONG_MAX == 0xffffffffUL)
422311267Sdelphij#    define Z_U4 unsigned long
423311267Sdelphij#  elif (USHRT_MAX == 0xffffffffUL)
424311267Sdelphij#    define Z_U4 unsigned short
425311267Sdelphij#  endif
426311267Sdelphij#endif
427311267Sdelphij
428311267Sdelphij#ifdef Z_U4
429311267Sdelphij   typedef Z_U4 z_crc_t;
430311267Sdelphij#else
431311267Sdelphij   typedef unsigned long z_crc_t;
432311267Sdelphij#endif
433311267Sdelphij
434311267Sdelphij#ifdef HAVE_UNISTD_H    /* may be set to #if 1 by ./configure */
435311267Sdelphij#  define Z_HAVE_UNISTD_H
436311267Sdelphij#endif
437311267Sdelphij
438311267Sdelphij#ifdef HAVE_STDARG_H    /* may be set to #if 1 by ./configure */
439311267Sdelphij#  define Z_HAVE_STDARG_H
440311267Sdelphij#endif
441311267Sdelphij
442311267Sdelphij#ifdef STDC
443311267Sdelphij#  ifndef Z_SOLO
444311267Sdelphij#    include <sys/types.h>      /* for off_t */
445311267Sdelphij#  endif
446311267Sdelphij#endif
447311267Sdelphij
448311267Sdelphij#if defined(STDC) || defined(Z_HAVE_STDARG_H)
449311267Sdelphij#  ifndef Z_SOLO
450311267Sdelphij#    include <stdarg.h>         /* for va_list */
451311267Sdelphij#  endif
452311267Sdelphij#endif
453311267Sdelphij
454311267Sdelphij#ifdef _WIN32
455311267Sdelphij#  ifndef Z_SOLO
456311267Sdelphij#    include <stddef.h>         /* for wchar_t */
457311267Sdelphij#  endif
458311267Sdelphij#endif
459311267Sdelphij
460311267Sdelphij/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
461311267Sdelphij * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
462311267Sdelphij * though the former does not conform to the LFS document), but considering
463311267Sdelphij * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
464311267Sdelphij * equivalently requesting no 64-bit operations
465311267Sdelphij */
466311267Sdelphij#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
467311267Sdelphij#  undef _LARGEFILE64_SOURCE
468311267Sdelphij#endif
469311267Sdelphij
470311267Sdelphij#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
471311267Sdelphij#  define Z_HAVE_UNISTD_H
472311267Sdelphij#endif
473311267Sdelphij#ifndef Z_SOLO
474311267Sdelphij#  if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
475311267Sdelphij#    include <unistd.h>         /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
476311267Sdelphij#    ifdef VMS
477311267Sdelphij#      include <unixio.h>       /* for off_t */
478311267Sdelphij#    endif
479311267Sdelphij#    ifndef z_off_t
480311267Sdelphij#      define z_off_t off_t
481311267Sdelphij#    endif
482311267Sdelphij#  endif
483311267Sdelphij#endif
484311267Sdelphij
485311267Sdelphij#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
486311267Sdelphij#  define Z_LFS64
487311267Sdelphij#endif
488311267Sdelphij
489311267Sdelphij#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
490311267Sdelphij#  define Z_LARGE64
491311267Sdelphij#endif
492311267Sdelphij
493311267Sdelphij#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
494311267Sdelphij#  define Z_WANT64
495311267Sdelphij#endif
496311267Sdelphij
497311267Sdelphij#if !defined(SEEK_SET) && !defined(Z_SOLO)
498311267Sdelphij#  define SEEK_SET        0       /* Seek from beginning of file.  */
499311267Sdelphij#  define SEEK_CUR        1       /* Seek from current position.  */
500311267Sdelphij#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
501311267Sdelphij#endif
502311267Sdelphij
503311267Sdelphij#ifndef z_off_t
504311267Sdelphij#  define z_off_t long
505311267Sdelphij#endif
506311267Sdelphij
507311267Sdelphij#if !defined(_WIN32) && defined(Z_LARGE64)
508311267Sdelphij#  define z_off64_t off64_t
509311267Sdelphij#else
510311267Sdelphij#  if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
511311267Sdelphij#    define z_off64_t __int64
512311267Sdelphij#  else
513311267Sdelphij#    define z_off64_t z_off_t
514311267Sdelphij#  endif
515311267Sdelphij#endif
516311267Sdelphij
517311267Sdelphij/* MVS linker does not support external names larger than 8 bytes */
518311267Sdelphij#if defined(__MVS__)
519311267Sdelphij  #pragma map(deflateInit_,"DEIN")
520311267Sdelphij  #pragma map(deflateInit2_,"DEIN2")
521311267Sdelphij  #pragma map(deflateEnd,"DEEND")
522311267Sdelphij  #pragma map(deflateBound,"DEBND")
523311267Sdelphij  #pragma map(inflateInit_,"ININ")
524311267Sdelphij  #pragma map(inflateInit2_,"ININ2")
525311267Sdelphij  #pragma map(inflateEnd,"INEND")
526311267Sdelphij  #pragma map(inflateSync,"INSY")
527311267Sdelphij  #pragma map(inflateSetDictionary,"INSEDI")
528311267Sdelphij  #pragma map(compressBound,"CMBND")
529311267Sdelphij  #pragma map(inflate_table,"INTABL")
530311267Sdelphij  #pragma map(inflate_fast,"INFA")
531311267Sdelphij  #pragma map(inflate_copyright,"INCOPY")
532311267Sdelphij#endif
533311267Sdelphij
534311267Sdelphij#endif /* ZCONF_H */
535