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