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 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# ifndef WIN32_LEAN_AND_MEAN 356# define WIN32_LEAN_AND_MEAN 357# endif 358# include <windows.h> 359 /* No need for _export, use ZLIB.DEF instead. */ 360 /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 361# define ZEXPORT WINAPI 362# ifdef WIN32 363# define ZEXPORTVA WINAPIV 364# else 365# define ZEXPORTVA FAR CDECL 366# endif 367# endif 368#endif 369 370#if defined (__BEOS__) 371# ifdef ZLIB_DLL 372# ifdef ZLIB_INTERNAL 373# define ZEXPORT __declspec(dllexport) 374# define ZEXPORTVA __declspec(dllexport) 375# else 376# define ZEXPORT __declspec(dllimport) 377# define ZEXPORTVA __declspec(dllimport) 378# endif 379# endif 380#endif 381 382#ifndef ZEXTERN 383# define ZEXTERN extern 384#endif 385#ifndef ZEXPORT 386# define ZEXPORT 387#endif 388#ifndef ZEXPORTVA 389# define ZEXPORTVA 390#endif 391 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#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ 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#ifndef Z_HAVE_UNISTD_H 477# ifdef __WATCOMC__ 478# define Z_HAVE_UNISTD_H 479# endif 480#endif 481#ifndef Z_HAVE_UNISTD_H 482# if defined(_LARGEFILE64_SOURCE) && !defined(_WIN32) 483# define Z_HAVE_UNISTD_H 484# endif 485#endif 486#ifndef Z_SOLO 487# if defined(Z_HAVE_UNISTD_H) 488# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ 489# ifdef VMS 490# include <unixio.h> /* for off_t */ 491# endif 492# ifndef z_off_t 493# define z_off_t off_t 494# endif 495# endif 496#endif 497 498#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 499# define Z_LFS64 500#endif 501 502#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) 503# define Z_LARGE64 504#endif 505 506#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) 507# define Z_WANT64 508#endif 509 510#if !defined(SEEK_SET) && !defined(Z_SOLO) 511# define SEEK_SET 0 /* Seek from beginning of file. */ 512# define SEEK_CUR 1 /* Seek from current position. */ 513# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 514#endif 515 516#ifndef z_off_t 517# define z_off_t long 518#endif 519 520#if !defined(_WIN32) && defined(Z_LARGE64) 521# define z_off64_t off64_t 522#else 523# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) 524# define z_off64_t __int64 525# else 526# define z_off64_t z_off_t 527# endif 528#endif 529 530/* MVS linker does not support external names larger than 8 bytes */ 531#if defined(__MVS__) 532 #pragma map(deflateInit_,"DEIN") 533 #pragma map(deflateInit2_,"DEIN2") 534 #pragma map(deflateEnd,"DEEND") 535 #pragma map(deflateBound,"DEBND") 536 #pragma map(inflateInit_,"ININ") 537 #pragma map(inflateInit2_,"ININ2") 538 #pragma map(inflateEnd,"INEND") 539 #pragma map(inflateSync,"INSY") 540 #pragma map(inflateSetDictionary,"INSEDI") 541 #pragma map(compressBound,"CMBND") 542 #pragma map(inflate_table,"INTABL") 543 #pragma map(inflate_fast,"INFA") 544 #pragma map(inflate_copyright,"INCOPY") 545#endif 546 547#endif /* ZCONF_H */ 548