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 Perl_crz__dist_code 22# define _length_code Perl_crz__length_code 23# define _tr_align Perl_crz__tr_align 24# define _tr_flush_bits Perl_crz__tr_flush_bits 25# define _tr_flush_block Perl_crz__tr_flush_block 26# define _tr_init Perl_crz__tr_init 27# define _tr_stored_block Perl_crz__tr_stored_block 28# define _tr_tally Perl_crz__tr_tally 29# define adler32 Perl_crz_adler32 30# define adler32_combine Perl_crz_adler32_combine 31# define adler32_combine64 Perl_crz_adler32_combine64 32# define adler32_z Perl_crz_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 Perl_crz_crc32 39# define crc32_combine Perl_crz_crc32_combine 40# define crc32_combine64 Perl_crz_crc32_combine64 41# define crc32_z Perl_crz_crc32_z 42# define deflate Perl_crz_deflate 43# define deflateBound Perl_crz_deflateBound 44# define deflateCopy Perl_crz_deflateCopy 45# define deflateEnd Perl_crz_deflateEnd 46# define deflateGetDictionary Perl_crz_deflateGetDictionary 47# define deflateInit Perl_crz_deflateInit 48# define deflateInit2 Perl_crz_deflateInit2 49# define deflateInit2_ Perl_crz_deflateInit2_ 50# define deflateInit_ Perl_crz_deflateInit_ 51# define deflateParams Perl_crz_deflateParams 52# define deflatePending Perl_crz_deflatePending 53# define deflatePrime Perl_crz_deflatePrime 54# define deflateReset Perl_crz_deflateReset 55# define deflateResetKeep Perl_crz_deflateResetKeep 56# define deflateSetDictionary Perl_crz_deflateSetDictionary 57# define deflateSetHeader Perl_crz_deflateSetHeader 58# define deflateTune Perl_crz_deflateTune 59# define deflate_copyright Perl_crz_deflate_copyright 60# define get_crc_table Perl_crz_get_crc_table 61# ifndef Z_SOLO 62# define gz_error z_gz_error 63# define gz_intmax z_gz_intmax 64# define gz_strwinerror z_gz_strwinerror 65# define gzbuffer z_gzbuffer 66# define gzclearerr z_gzclearerr 67# define gzclose z_gzclose 68# define gzclose_r z_gzclose_r 69# define gzclose_w z_gzclose_w 70# define gzdirect z_gzdirect 71# define gzdopen z_gzdopen 72# define gzeof z_gzeof 73# define gzerror z_gzerror 74# define gzflush z_gzflush 75# define gzfread z_gzfread 76# define gzfwrite z_gzfwrite 77# define gzgetc z_gzgetc 78# define gzgetc_ z_gzgetc_ 79# define gzgets z_gzgets 80# define gzoffset z_gzoffset 81# define gzoffset64 z_gzoffset64 82# define gzopen z_gzopen 83# define gzopen64 z_gzopen64 84# ifdef _WIN32 85# define gzopen_w z_gzopen_w 86# endif 87# define gzprintf z_gzprintf 88# define gzputc z_gzputc 89# define gzputs z_gzputs 90# define gzread z_gzread 91# define gzrewind z_gzrewind 92# define gzseek z_gzseek 93# define gzseek64 z_gzseek64 94# define gzsetparams z_gzsetparams 95# define gztell z_gztell 96# define gztell64 z_gztell64 97# define gzungetc z_gzungetc 98# define gzvprintf z_gzvprintf 99# define gzwrite z_gzwrite 100# endif 101# define inflate Perl_crz_inflate 102# define inflateBack Perl_crz_inflateBack 103# define inflateBackEnd Perl_crz_inflateBackEnd 104# define inflateBackInit Perl_crz_inflateBackInit 105# define inflateBackInit_ Perl_crz_inflateBackInit_ 106# define inflateCodesUsed Perl_crz_inflateCodesUsed 107# define inflateCopy Perl_crz_inflateCopy 108# define inflateEnd Perl_crz_inflateEnd 109# define inflateGetDictionary Perl_crz_inflateGetDictionary 110# define inflateGetHeader Perl_crz_inflateGetHeader 111# define inflateInit Perl_crz_inflateInit 112# define inflateInit2 Perl_crz_inflateInit2 113# define inflateInit2_ Perl_crz_inflateInit2_ 114# define inflateInit_ Perl_crz_inflateInit_ 115# define inflateMark Perl_crz_inflateMark 116# define inflatePrime Perl_crz_inflatePrime 117# define inflateReset Perl_crz_inflateReset 118# define inflateReset2 Perl_crz_inflateReset2 119# define inflateResetKeep Perl_crz_inflateResetKeep 120# define inflateSetDictionary Perl_crz_inflateSetDictionary 121# define inflateSync Perl_crz_inflateSync 122# define inflateSyncPoint Perl_crz_inflateSyncPoint 123# define inflateUndermine Perl_crz_inflateUndermine 124# define inflateValidate Perl_crz_inflateValidate 125# define inflate_copyright Perl_crz_inflate_copyright 126# define inflate_fast Perl_crz_inflate_fast 127# define inflate_table Perl_crz_inflate_table 128# ifndef Z_SOLO 129# define uncompress z_uncompress 130# define uncompress2 z_uncompress2 131# endif 132# define zError Perl_crz_zError 133# ifndef Z_SOLO 134# define zcalloc z_zcalloc 135# define zcfree z_zcfree 136# endif 137# define zlibCompileFlags Perl_crz_zlibCompileFlags 138# define zlibVersion Perl_crz_zlibVersion 139 140/* all zlib typedefs in zlib.h and zconf.h */ 141# define Byte Perl_crz_Byte 142# define Bytef Perl_crz_Bytef 143# define alloc_func Perl_crz_alloc_func 144# define charf Perl_crz_charf 145# define free_func Perl_crz_free_func 146# ifndef Z_SOLO 147# define gzFile z_gzFile 148# endif 149# define gz_header Perl_crz_gz_header 150# define gz_headerp Perl_crz_gz_headerp 151# define in_func Perl_crz_in_func 152# define intf Perl_crz_intf 153# define out_func Perl_crz_out_func 154# define uInt Perl_crz_uInt 155# define uIntf Perl_crz_uIntf 156# define uLong Perl_crz_uLong 157# define uLongf Perl_crz_uLongf 158# define voidp Perl_crz_voidp 159# define voidpc Perl_crz_voidpc 160# define voidpf Perl_crz_voidpf 161 162/* all zlib structs in zlib.h and zconf.h */ 163# define gz_header_s Perl_crz_gz_header_s 164# define internal_state Perl_crz_internal_state 165 166#endif 167 168#if defined(__MSDOS__) && !defined(MSDOS) 169# define MSDOS 170#endif 171#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) 172# define OS2 173#endif 174#if defined(_WINDOWS) && !defined(WINDOWS) 175# define WINDOWS 176#endif 177#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) 178# ifndef WIN32 179# define WIN32 180# endif 181#endif 182#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) 183# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) 184# ifndef SYS16BIT 185# define SYS16BIT 186# endif 187# endif 188#endif 189 190/* 191 * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 192 * than 64k bytes at a time (needed on systems with 16-bit int). 193 */ 194#ifdef SYS16BIT 195# define MAXSEG_64K 196#endif 197#ifdef MSDOS 198# define UNALIGNED_OK 199#endif 200 201#ifdef __STDC_VERSION__ 202# ifndef STDC 203# define STDC 204# endif 205# if __STDC_VERSION__ >= 199901L 206# ifndef STDC99 207# define STDC99 208# endif 209# endif 210#endif 211#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) 212# define STDC 213#endif 214#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) 215# define STDC 216#endif 217#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) 218# define STDC 219#endif 220#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) 221# define STDC 222#endif 223 224#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ 225# define STDC 226#endif 227 228#ifndef STDC 229# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 230# define const /* note: need a more gentle solution here */ 231# endif 232#endif 233 234#if defined(ZLIB_CONST) && !defined(z_const) 235# define z_const const 236#else 237# define z_const 238#endif 239 240#ifdef Z_SOLO 241 typedef unsigned long z_size_t; 242#else 243# define z_longlong long long 244# if defined(NO_SIZE_T) 245 typedef unsigned NO_SIZE_T z_size_t; 246# elif defined(STDC) 247# include <stddef.h> 248 typedef size_t z_size_t; 249# else 250 typedef unsigned long z_size_t; 251# endif 252# undef z_longlong 253#endif 254 255/* Maximum value for memLevel in deflateInit2 */ 256#ifndef MAX_MEM_LEVEL 257# ifdef MAXSEG_64K 258# define MAX_MEM_LEVEL 8 259# else 260# define MAX_MEM_LEVEL 9 261# endif 262#endif 263 264/* Maximum value for windowBits in deflateInit2 and inflateInit2. 265 * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 266 * created by gzip. (Files created by minigzip can still be extracted by 267 * gzip.) 268 */ 269#ifndef MAX_WBITS 270# define MAX_WBITS 15 /* 32K LZ77 window */ 271#endif 272 273/* The memory requirements for deflate are (in bytes): 274 (1 << (windowBits+2)) + (1 << (memLevel+9)) 275 that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 276 plus a few kilobytes for small objects. For example, if you want to reduce 277 the default memory requirements from 256K to 128K, compile with 278 make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 279 Of course this will generally degrade compression (there's no free lunch). 280 281 The memory requirements for inflate are (in bytes) 1 << windowBits 282 that is, 32K for windowBits=15 (default value) plus about 7 kilobytes 283 for small objects. 284*/ 285 286 /* Type declarations */ 287 288#ifndef OF /* function prototypes */ 289# ifdef STDC 290# define OF(args) args 291# else 292# define OF(args) () 293# endif 294#endif 295 296#ifndef Z_ARG /* function prototypes for stdarg */ 297# if defined(STDC) || defined(Z_HAVE_STDARG_H) 298# define Z_ARG(args) args 299# else 300# define Z_ARG(args) () 301# endif 302#endif 303 304/* The following definitions for FAR are needed only for MSDOS mixed 305 * model programming (small or medium model with some far allocations). 306 * This was tested only with MSC; for other MSDOS compilers you may have 307 * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 308 * just define FAR to be empty. 309 */ 310#ifdef SYS16BIT 311# if defined(M_I86SM) || defined(M_I86MM) 312 /* MSC small or medium model */ 313# define SMALL_MEDIUM 314# ifdef _MSC_VER 315# define FAR _far 316# else 317# define FAR far 318# endif 319# endif 320# if (defined(__SMALL__) || defined(__MEDIUM__)) 321 /* Turbo C small or medium model */ 322# define SMALL_MEDIUM 323# ifdef __BORLANDC__ 324# define FAR _far 325# else 326# define FAR far 327# endif 328# endif 329#endif 330 331#if defined(WINDOWS) || defined(WIN32) 332 /* If building or using zlib as a DLL, define ZLIB_DLL. 333 * This is not mandatory, but it offers a little performance increase. 334 */ 335# ifdef ZLIB_DLL 336# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 337# ifdef ZLIB_INTERNAL 338# define ZEXTERN extern __declspec(dllexport) 339# else 340# define ZEXTERN extern __declspec(dllimport) 341# endif 342# endif 343# endif /* ZLIB_DLL */ 344 /* If building or using zlib with the WINAPI/WINAPIV calling convention, 345 * define ZLIB_WINAPI. 346 * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 347 */ 348# ifdef ZLIB_WINAPI 349# ifdef FAR 350# undef FAR 351# endif 352# ifndef WIN32_LEAN_AND_MEAN 353# define WIN32_LEAN_AND_MEAN 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 393#if !defined(__MACTYPES__) 394typedef unsigned char Byte; /* 8 bits */ 395#endif 396typedef unsigned int uInt; /* 16 bits or more */ 397typedef unsigned long uLong; /* 32 bits or more */ 398 399#ifdef SMALL_MEDIUM 400 /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 401# define Bytef Byte FAR 402#else 403 typedef Byte FAR Bytef; 404#endif 405typedef char FAR charf; 406typedef int FAR intf; 407typedef uInt FAR uIntf; 408typedef uLong FAR uLongf; 409 410#ifdef STDC 411 typedef void const *voidpc; 412 typedef void FAR *voidpf; 413 typedef void *voidp; 414#else 415 typedef Byte const *voidpc; 416 typedef Byte FAR *voidpf; 417 typedef Byte *voidp; 418#endif 419 420#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) 421# include <limits.h> 422# if (UINT_MAX == 0xffffffffUL) 423# define Z_U4 unsigned 424# elif (ULONG_MAX == 0xffffffffUL) 425# define Z_U4 unsigned long 426# elif (USHRT_MAX == 0xffffffffUL) 427# define Z_U4 unsigned short 428# endif 429#endif 430 431#ifdef Z_U4 432 typedef Z_U4 z_crc_t; 433#else 434 typedef unsigned long z_crc_t; 435#endif 436 437#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ 438# define Z_HAVE_UNISTD_H 439#endif 440 441#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ 442# define Z_HAVE_STDARG_H 443#endif 444 445#ifdef STDC 446# ifndef Z_SOLO 447# include <sys/types.h> /* for off_t */ 448# endif 449#endif 450 451#if defined(STDC) || defined(Z_HAVE_STDARG_H) 452# ifndef Z_SOLO 453# include <stdarg.h> /* for va_list */ 454# endif 455#endif 456 457#ifdef _WIN32 458# ifndef Z_SOLO 459# include <stddef.h> /* for wchar_t */ 460# endif 461#endif 462 463/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and 464 * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even 465 * though the former does not conform to the LFS document), but considering 466 * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as 467 * equivalently requesting no 64-bit operations 468 */ 469#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 470# undef _LARGEFILE64_SOURCE 471#endif 472 473#ifndef Z_HAVE_UNISTD_H 474# ifdef __WATCOMC__ 475# define Z_HAVE_UNISTD_H 476# endif 477#endif 478#ifndef Z_HAVE_UNISTD_H 479# if defined(_LARGEFILE64_SOURCE) && !defined(_WIN32) 480# define Z_HAVE_UNISTD_H 481# endif 482#endif 483#ifndef Z_SOLO 484# if defined(Z_HAVE_UNISTD_H) 485# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ 486# ifdef VMS 487# include <unixio.h> /* for off_t */ 488# endif 489# ifndef z_off_t 490# define z_off_t off_t 491# endif 492# endif 493#endif 494 495#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 496# define Z_LFS64 497#endif 498 499#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) 500# define Z_LARGE64 501#endif 502 503#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) 504# define Z_WANT64 505#endif 506 507#if !defined(SEEK_SET) && !defined(Z_SOLO) 508# define SEEK_SET 0 /* Seek from beginning of file. */ 509# define SEEK_CUR 1 /* Seek from current position. */ 510# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 511#endif 512 513#ifndef z_off_t 514# define z_off_t long 515#endif 516 517#if !defined(_WIN32) && defined(Z_LARGE64) 518# define z_off64_t off64_t 519#else 520# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) 521# define z_off64_t __int64 522# else 523# define z_off64_t z_off_t 524# endif 525#endif 526 527/* MVS linker does not support external names larger than 8 bytes */ 528#if defined(__MVS__) 529 #pragma map(deflateInit_,"DEIN") 530 #pragma map(deflateInit2_,"DEIN2") 531 #pragma map(deflateEnd,"DEEND") 532 #pragma map(deflateBound,"DEBND") 533 #pragma map(inflateInit_,"ININ") 534 #pragma map(inflateInit2_,"ININ2") 535 #pragma map(inflateEnd,"INEND") 536 #pragma map(inflateSync,"INSY") 537 #pragma map(inflateSetDictionary,"INSEDI") 538 #pragma map(compressBound,"CMBND") 539 #pragma map(inflate_table,"INTABL") 540 #pragma map(inflate_fast,"INFA") 541 #pragma map(inflate_copyright,"INCOPY") 542#endif 543 544#endif /* ZCONF_H */ 545