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