1/* zconf.h -- configuration of the zlib compression library 2 * Copyright (C) 1995-2024 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/* The following definitions for FAR are needed only for MSDOS mixed 304 * model programming (small or medium model with some far allocations). 305 * This was tested only with MSC; for other MSDOS compilers you may have 306 * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 307 * just define FAR to be empty. 308 */ 309#ifdef SYS16BIT 310# if defined(M_I86SM) || defined(M_I86MM) 311 /* MSC small or medium model */ 312# define SMALL_MEDIUM 313# ifdef _MSC_VER 314# define FAR _far 315# else 316# define FAR far 317# endif 318# endif 319# if (defined(__SMALL__) || defined(__MEDIUM__)) 320 /* Turbo C small or medium model */ 321# define SMALL_MEDIUM 322# ifdef __BORLANDC__ 323# define FAR _far 324# else 325# define FAR far 326# endif 327# endif 328#endif 329 330#if defined(WINDOWS) || defined(WIN32) 331 /* If building or using zlib as a DLL, define ZLIB_DLL. 332 * This is not mandatory, but it offers a little performance increase. 333 */ 334# ifdef ZLIB_DLL 335# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 336# ifdef ZLIB_INTERNAL 337# define ZEXTERN extern __declspec(dllexport) 338# else 339# define ZEXTERN extern __declspec(dllimport) 340# endif 341# endif 342# endif /* ZLIB_DLL */ 343 /* If building or using zlib with the WINAPI/WINAPIV calling convention, 344 * define ZLIB_WINAPI. 345 * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 346 */ 347# ifdef ZLIB_WINAPI 348# ifdef FAR 349# undef FAR 350# endif 351# ifndef WIN32_LEAN_AND_MEAN 352# define WIN32_LEAN_AND_MEAN 353# endif 354# include <windows.h> 355 /* No need for _export, use ZLIB.DEF instead. */ 356 /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 357# define ZEXPORT WINAPI 358# ifdef WIN32 359# define ZEXPORTVA WINAPIV 360# else 361# define ZEXPORTVA FAR CDECL 362# endif 363# endif 364#endif 365 366#if defined (__BEOS__) 367# ifdef ZLIB_DLL 368# ifdef ZLIB_INTERNAL 369# define ZEXPORT __declspec(dllexport) 370# define ZEXPORTVA __declspec(dllexport) 371# else 372# define ZEXPORT __declspec(dllimport) 373# define ZEXPORTVA __declspec(dllimport) 374# endif 375# endif 376#endif 377 378#ifndef ZEXTERN 379# define ZEXTERN extern 380#endif 381#ifndef ZEXPORT 382# define ZEXPORT 383#endif 384#ifndef ZEXPORTVA 385# define ZEXPORTVA 386#endif 387 388#ifndef FAR 389# define FAR 390#endif 391 392#if !defined(__MACTYPES__) 393typedef unsigned char Byte; /* 8 bits */ 394#endif 395typedef unsigned int uInt; /* 16 bits or more */ 396typedef unsigned long uLong; /* 32 bits or more */ 397 398#ifdef SMALL_MEDIUM 399 /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 400# define Bytef Byte FAR 401#else 402 typedef Byte FAR Bytef; 403#endif 404typedef char FAR charf; 405typedef int FAR intf; 406typedef uInt FAR uIntf; 407typedef uLong FAR uLongf; 408 409#ifdef STDC 410 typedef void const *voidpc; 411 typedef void FAR *voidpf; 412 typedef void *voidp; 413#else 414 typedef Byte const *voidpc; 415 typedef Byte FAR *voidpf; 416 typedef Byte *voidp; 417#endif 418 419#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) 420# include <limits.h> 421# if (UINT_MAX == 0xffffffffUL) 422# define Z_U4 unsigned 423# elif (ULONG_MAX == 0xffffffffUL) 424# define Z_U4 unsigned long 425# elif (USHRT_MAX == 0xffffffffUL) 426# define Z_U4 unsigned short 427# endif 428#endif 429 430#ifdef Z_U4 431 typedef Z_U4 z_crc_t; 432#else 433 typedef unsigned long z_crc_t; 434#endif 435 436#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ 437# define Z_HAVE_UNISTD_H 438#endif 439 440#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ 441# define Z_HAVE_STDARG_H 442#endif 443 444#ifdef STDC 445# ifndef Z_SOLO 446# include <sys/types.h> /* for off_t */ 447# endif 448#endif 449 450#if defined(STDC) || defined(Z_HAVE_STDARG_H) 451# ifndef Z_SOLO 452# include <stdarg.h> /* for va_list */ 453# endif 454#endif 455 456#ifdef _WIN32 457# ifndef Z_SOLO 458# include <stddef.h> /* for wchar_t */ 459# endif 460#endif 461 462/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and 463 * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even 464 * though the former does not conform to the LFS document), but considering 465 * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as 466 * equivalently requesting no 64-bit operations 467 */ 468#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 469# undef _LARGEFILE64_SOURCE 470#endif 471 472#ifndef Z_HAVE_UNISTD_H 473# ifdef __WATCOMC__ 474# define Z_HAVE_UNISTD_H 475# endif 476#endif 477#ifndef Z_HAVE_UNISTD_H 478# if defined(_LARGEFILE64_SOURCE) && !defined(_WIN32) 479# define Z_HAVE_UNISTD_H 480# endif 481#endif 482#ifndef Z_SOLO 483# if defined(Z_HAVE_UNISTD_H) 484# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ 485# ifdef VMS 486# include <unixio.h> /* for off_t */ 487# endif 488# ifndef z_off_t 489# define z_off_t off_t 490# endif 491# endif 492#endif 493 494#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 495# define Z_LFS64 496#endif 497 498#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) 499# define Z_LARGE64 500#endif 501 502#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) 503# define Z_WANT64 504#endif 505 506#if !defined(SEEK_SET) && !defined(Z_SOLO) 507# define SEEK_SET 0 /* Seek from beginning of file. */ 508# define SEEK_CUR 1 /* Seek from current position. */ 509# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 510#endif 511 512#ifndef z_off_t 513# define z_off_t long 514#endif 515 516#if !defined(_WIN32) && defined(Z_LARGE64) 517# define z_off64_t off64_t 518#else 519# if defined(_WIN32) && !defined(__GNUC__) 520# define z_off64_t __int64 521# else 522# define z_off64_t z_off_t 523# endif 524#endif 525 526/* MVS linker does not support external names larger than 8 bytes */ 527#if defined(__MVS__) 528 #pragma map(deflateInit_,"DEIN") 529 #pragma map(deflateInit2_,"DEIN2") 530 #pragma map(deflateEnd,"DEEND") 531 #pragma map(deflateBound,"DEBND") 532 #pragma map(inflateInit_,"ININ") 533 #pragma map(inflateInit2_,"ININ2") 534 #pragma map(inflateEnd,"INEND") 535 #pragma map(inflateSync,"INSY") 536 #pragma map(inflateSetDictionary,"INSEDI") 537 #pragma map(compressBound,"CMBND") 538 #pragma map(inflate_table,"INTABL") 539 #pragma map(inflate_fast,"INFA") 540 #pragma map(inflate_copyright,"INCOPY") 541#endif 542 543#endif /* ZCONF_H */ 544