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