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/*
12 * If you *really* need a unique prefix for all types and library functions,
13 * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
14 * Even better than compiling with -DZ_PREFIX would be to use configure to set
15 * this permanently in zconf.h using "./configure --zprefix".
16 */
17#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
18# define Z_PREFIX_SET
19
20/* all linked symbols and init macros */
21# define _dist_code z__dist_code
22# define _length_code z__length_code
23# define _tr_align z__tr_align
24# define _tr_flush_bits z__tr_flush_bits
25# define _tr_flush_block z__tr_flush_block
26# define _tr_init z__tr_init
27# define _tr_stored_block z__tr_stored_block
28# define _tr_tally z__tr_tally
29# define adler32 z_adler32
30# define adler32_combine z_adler32_combine
31# define adler32_combine64 z_adler32_combine64
32# define adler32_z z_adler32_z
33# ifndef Z_SOLO
34# define compress z_compress
35# define compress2 z_compress2
36# define compressBound z_compressBound
37# endif
38# define crc32 z_crc32
39# define crc32_combine z_crc32_combine
40# define crc32_combine64 z_crc32_combine64
41# define crc32_combine_gen z_crc32_combine_gen
42# define crc32_combine_gen64 z_crc32_combine_gen64
43# define crc32_combine_op z_crc32_combine_op
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# ifdef _WIN64
245 typedef unsigned long long z_size_t;
246# else
247 typedef unsigned long z_size_t;
248# endif
249#else
250# define z_longlong long long
251# if defined(NO_SIZE_T)
252 typedef unsigned NO_SIZE_T z_size_t;
253# elif defined(STDC)
254# include <stddef.h>
255 typedef size_t z_size_t;
256# else
257 typedef unsigned long z_size_t;
258# endif
259# undef z_longlong
260#endif
261
262/* Maximum value for memLevel in deflateInit2 */
263#ifndef MAX_MEM_LEVEL
264# ifdef MAXSEG_64K
265# define MAX_MEM_LEVEL 8
266# else
267# define MAX_MEM_LEVEL 9
268# endif
269#endif
270
271/* Maximum value for windowBits in deflateInit2 and inflateInit2.
272 * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
273 * created by gzip. (Files created by minigzip can still be extracted by
274 * gzip.)
275 */
276#ifndef MAX_WBITS
277# define MAX_WBITS 15 /* 32K LZ77 window */
278#endif
279
280/* The memory requirements for deflate are (in bytes):
281 (1 << (windowBits+2)) + (1 << (memLevel+9))
282 that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
283 plus a few kilobytes for small objects. For example, if you want to reduce
284 the default memory requirements from 256K to 128K, compile with
285 make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
286 Of course this will generally degrade compression (there's no free lunch).
287
288 The memory requirements for inflate are (in bytes) 1 << windowBits
289 that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
290 for small objects.
291*/
292
293 /* Type declarations */
294
295#ifndef OF /* function prototypes */
296# ifdef STDC
297# define OF(args) args
298# else
299# define OF(args) ()
300# endif
301#endif
302
303#ifndef Z_ARG /* function prototypes for stdarg */
304# if defined(STDC) || defined(Z_HAVE_STDARG_H)
305# define Z_ARG(args) args
306# else
307# define Z_ARG(args) ()
308# endif
309#endif
310
311/* The following definitions for FAR are needed only for MSDOS mixed
312 * model programming (small or medium model with some far allocations).
313 * This was tested only with MSC; for other MSDOS compilers you may have
314 * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
315 * just define FAR to be empty.
316 */
317#ifdef SYS16BIT
318# if defined(M_I86SM) || defined(M_I86MM)
319 /* MSC small or medium model */
320# define SMALL_MEDIUM
321# ifdef _MSC_VER
322# define FAR _far
323# else
324# define FAR far
325# endif
326# endif
327# if (defined(__SMALL__) || defined(__MEDIUM__))
328 /* Turbo C small or medium model */
329# define SMALL_MEDIUM
330# ifdef __BORLANDC__
331# define FAR _far
332# else
333# define FAR far
334# endif
335# endif
336#endif
337
338#if defined(WINDOWS) || defined(WIN32)
339 /* If building or using zlib as a DLL, define ZLIB_DLL.
340 * This is not mandatory, but it offers a little performance increase.
341 */
342# ifdef ZLIB_DLL
343# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
344# ifdef ZLIB_INTERNAL
345# define ZEXTERN extern __declspec(dllexport)
346# else
347# define ZEXTERN extern __declspec(dllimport)
348# endif
349# endif
350# endif /* ZLIB_DLL */
351 /* If building or using zlib with the WINAPI/WINAPIV calling convention,
352 * define ZLIB_WINAPI.
353 * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
354 */
355# ifdef ZLIB_WINAPI
356# ifdef FAR
357# undef FAR
358# endif
359# ifndef WIN32_LEAN_AND_MEAN
360# define WIN32_LEAN_AND_MEAN
361# endif
362# include <windows.h>
363 /* No need for _export, use ZLIB.DEF instead. */
364 /* For complete Windows compatibility, use WINAPI, not __stdcall. */
365# define ZEXPORT WINAPI
366# ifdef WIN32
367# define ZEXPORTVA WINAPIV
368# else
369# define ZEXPORTVA FAR CDECL
370# endif
371# endif
372#endif
373
374#if defined (__BEOS__)
375# ifdef ZLIB_DLL
376# ifdef ZLIB_INTERNAL
377# define ZEXPORT __declspec(dllexport)
378# define ZEXPORTVA __declspec(dllexport)
379# else
380# define ZEXPORT __declspec(dllimport)
381# define ZEXPORTVA __declspec(dllimport)
382# endif
383# endif
384#endif
385
386#ifndef ZEXTERN
387# define ZEXTERN extern
388#endif
389#ifndef ZEXPORT
390# define ZEXPORT
391#endif
392#ifndef ZEXPORTVA
393# define ZEXPORTVA
394#endif
395
396#ifndef FAR
397# define FAR
398#endif
399
400#if !defined(__MACTYPES__)
401typedef unsigned char Byte; /* 8 bits */
402#endif
403typedef unsigned int uInt; /* 16 bits or more */
404typedef unsigned long uLong; /* 32 bits or more */
405
406#ifdef SMALL_MEDIUM
407 /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
408# define Bytef Byte FAR
409#else
410 typedef Byte FAR Bytef;
411#endif
412typedef char FAR charf;
413typedef int FAR intf;
414typedef uInt FAR uIntf;
415typedef uLong FAR uLongf;
416
417#ifdef STDC
418 typedef void const *voidpc;
419 typedef void FAR *voidpf;
420 typedef void *voidp;
421#else
422 typedef Byte const *voidpc;
423 typedef Byte FAR *voidpf;
424 typedef Byte *voidp;
425#endif
426
427#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
428# include <limits.h>
429# if (UINT_MAX == 0xffffffffUL)
430# define Z_U4 unsigned
431# elif (ULONG_MAX == 0xffffffffUL)
432# define Z_U4 unsigned long
433# elif (USHRT_MAX == 0xffffffffUL)
434# define Z_U4 unsigned short
435# endif
436#endif
437
438#ifdef Z_U4
439 typedef Z_U4 z_crc_t;
440#else
441 typedef unsigned long z_crc_t;
442#endif
443
444#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
445# define Z_HAVE_UNISTD_H
446#endif
447
448#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
449# define Z_HAVE_STDARG_H
450#endif
451
452#ifdef STDC
453# ifndef Z_SOLO
454# include <sys/types.h> /* for off_t */
455# endif
456#endif
457
458#if defined(STDC) || defined(Z_HAVE_STDARG_H)
459# ifndef Z_SOLO
460# include <stdarg.h> /* for va_list */
461# endif
462#endif
463
464#ifdef _WIN32
465# ifndef Z_SOLO
466# include <stddef.h> /* for wchar_t */
467# endif
468#endif
469
470/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
471 * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
472 * though the former does not conform to the LFS document), but considering
473 * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
474 * equivalently requesting no 64-bit operations
475 */
476#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
477# undef _LARGEFILE64_SOURCE
478#endif
479
480#ifndef Z_HAVE_UNISTD_H
481# ifdef __WATCOMC__
482# define Z_HAVE_UNISTD_H
483# endif
484#endif
485#ifndef Z_HAVE_UNISTD_H
486# if defined(_LARGEFILE64_SOURCE) && !defined(_WIN32)
487# define Z_HAVE_UNISTD_H
488# endif
489#endif
490#ifndef Z_SOLO
491# if defined(Z_HAVE_UNISTD_H)
492# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
493# ifdef VMS
494# include <unixio.h> /* for off_t */
495# endif
496# ifndef z_off_t
497# define z_off_t off_t
498# endif
499# endif
500#endif
501
502#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
503# define Z_LFS64
504#endif
505
506#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
507# define Z_LARGE64
508#endif
509
510#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
511# define Z_WANT64
512#endif
513
514#if !defined(SEEK_SET) && !defined(Z_SOLO)
515# define SEEK_SET 0 /* Seek from beginning of file. */
516# define SEEK_CUR 1 /* Seek from current position. */
517# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
518#endif
519
520#ifndef z_off_t
521# define z_off_t long
522#endif
523
524#if !defined(_WIN32) && defined(Z_LARGE64)
525# define z_off64_t off64_t
526#else
527# if defined(_WIN32) && !defined(__GNUC__)
528# define z_off64_t __int64
529# else
530# define z_off64_t z_off_t
531# endif
532#endif
533
534/* MVS linker does not support external names larger than 8 bytes */
535#if defined(__MVS__)
536 #pragma map(deflateInit_,"DEIN")
537 #pragma map(deflateInit2_,"DEIN2")
538 #pragma map(deflateEnd,"DEEND")
539 #pragma map(deflateBound,"DEBND")
540 #pragma map(inflateInit_,"ININ")
541 #pragma map(inflateInit2_,"ININ2")
542 #pragma map(inflateEnd,"INEND")
543 #pragma map(inflateSync,"INSY")
544 #pragma map(inflateSetDictionary,"INSEDI")
545 #pragma map(compressBound,"CMBND")
546 #pragma map(inflate_table,"INTABL")
547 #pragma map(inflate_fast,"INFA")
548 #pragma map(inflate_copyright,"INCOPY")
549#endif
550
551#endif /* ZCONF_H */
552