zconf.h revision 206905
117651Speter/* zconf.h -- configuration of the zlib compression library 2205194Sdelphij * Copyright (C) 1995-2010 Jean-loup Gailly. 3131377Stjr * For conditions of distribution and use, see copyright notice in zlib.h 417651Speter */ 517651Speter 633904Ssteve/* @(#) $Id$ */ 717651Speter 8131377Stjr#ifndef ZCONF_H 9131377Stjr#define ZCONF_H 1017651Speter 1117651Speter/* 1217651Speter * If you *really* need a unique prefix for all types and library functions, 1317651Speter * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. 14205194Sdelphij * Even better than compiling with -DZ_PREFIX would be to use configure to set 15205194Sdelphij * this permanently in zconf.h using "./configure --zprefix". 1617651Speter */ 17205194Sdelphij#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ 18205194Sdelphij 19205194Sdelphij/* all linked symbols */ 20205194Sdelphij# define _dist_code z__dist_code 21205194Sdelphij# define _length_code z__length_code 22205194Sdelphij# define _tr_align z__tr_align 23205194Sdelphij# define _tr_flush_block z__tr_flush_block 24205194Sdelphij# define _tr_init z__tr_init 25205194Sdelphij# define _tr_stored_block z__tr_stored_block 26205194Sdelphij# define _tr_tally z__tr_tally 27205194Sdelphij# define adler32 z_adler32 28205194Sdelphij# define adler32_combine z_adler32_combine 29205194Sdelphij# define adler32_combine64 z_adler32_combine64 30205194Sdelphij# define compress z_compress 31205194Sdelphij# define compress2 z_compress2 32205194Sdelphij# define compressBound z_compressBound 33205194Sdelphij# define crc32 z_crc32 34205194Sdelphij# define crc32_combine z_crc32_combine 35205194Sdelphij# define crc32_combine64 z_crc32_combine64 36145474Skientzle# define deflate z_deflate 37205194Sdelphij# define deflateBound z_deflateBound 38205194Sdelphij# define deflateCopy z_deflateCopy 39145474Skientzle# define deflateEnd z_deflateEnd 40145474Skientzle# define deflateInit2_ z_deflateInit2_ 41205194Sdelphij# define deflateInit_ z_deflateInit_ 42145474Skientzle# define deflateParams z_deflateParams 43145474Skientzle# define deflatePrime z_deflatePrime 44205194Sdelphij# define deflateReset z_deflateReset 45205194Sdelphij# define deflateSetDictionary z_deflateSetDictionary 46205194Sdelphij# define deflateSetHeader z_deflateSetHeader 47205194Sdelphij# define deflateTune z_deflateTune 48205194Sdelphij# define deflate_copyright z_deflate_copyright 49205194Sdelphij# define get_crc_table z_get_crc_table 50205194Sdelphij# define gz_error z_gz_error 51205194Sdelphij# define gz_intmax z_gz_intmax 52205194Sdelphij# define gz_strwinerror z_gz_strwinerror 53205194Sdelphij# define gzbuffer z_gzbuffer 54205194Sdelphij# define gzclearerr z_gzclearerr 55205194Sdelphij# define gzclose z_gzclose 56205194Sdelphij# define gzclose_r z_gzclose_r 57205194Sdelphij# define gzclose_w z_gzclose_w 58205194Sdelphij# define gzdirect z_gzdirect 59205194Sdelphij# define gzdopen z_gzdopen 60205194Sdelphij# define gzeof z_gzeof 61205194Sdelphij# define gzerror z_gzerror 62205194Sdelphij# define gzflush z_gzflush 63205194Sdelphij# define gzgetc z_gzgetc 64205194Sdelphij# define gzgets z_gzgets 65205194Sdelphij# define gzoffset z_gzoffset 66205194Sdelphij# define gzoffset64 z_gzoffset64 67205194Sdelphij# define gzopen z_gzopen 68205194Sdelphij# define gzopen64 z_gzopen64 69205194Sdelphij# define gzprintf z_gzprintf 70205194Sdelphij# define gzputc z_gzputc 71205194Sdelphij# define gzputs z_gzputs 72205194Sdelphij# define gzread z_gzread 73205194Sdelphij# define gzrewind z_gzrewind 74205194Sdelphij# define gzseek z_gzseek 75205194Sdelphij# define gzseek64 z_gzseek64 76205194Sdelphij# define gzsetparams z_gzsetparams 77205194Sdelphij# define gztell z_gztell 78205194Sdelphij# define gztell64 z_gztell64 79205194Sdelphij# define gzungetc z_gzungetc 80205194Sdelphij# define gzwrite z_gzwrite 81205194Sdelphij# define inflate z_inflate 82205194Sdelphij# define inflateBack z_inflateBack 83205194Sdelphij# define inflateBackEnd z_inflateBackEnd 84205194Sdelphij# define inflateBackInit_ z_inflateBackInit_ 85205194Sdelphij# define inflateCopy z_inflateCopy 86205194Sdelphij# define inflateEnd z_inflateEnd 87205194Sdelphij# define inflateGetHeader z_inflateGetHeader 88145474Skientzle# define inflateInit2_ z_inflateInit2_ 89205194Sdelphij# define inflateInit_ z_inflateInit_ 90205194Sdelphij# define inflateMark z_inflateMark 91205194Sdelphij# define inflatePrime z_inflatePrime 92205194Sdelphij# define inflateReset z_inflateReset 93205194Sdelphij# define inflateReset2 z_inflateReset2 94145474Skientzle# define inflateSetDictionary z_inflateSetDictionary 95145474Skientzle# define inflateSync z_inflateSync 96145474Skientzle# define inflateSyncPoint z_inflateSyncPoint 97205194Sdelphij# define inflateUndermine z_inflateUndermine 98205194Sdelphij# define inflate_copyright z_inflate_copyright 99205194Sdelphij# define inflate_fast z_inflate_fast 100205194Sdelphij# define inflate_table z_inflate_table 101145474Skientzle# define uncompress z_uncompress 102145474Skientzle# define zError z_zError 103205194Sdelphij# define zcalloc z_zcalloc 104205194Sdelphij# define zcfree z_zcfree 105205194Sdelphij# define zlibCompileFlags z_zlibCompileFlags 106205194Sdelphij# define zlibVersion z_zlibVersion 10717651Speter 108205194Sdelphij/* all zlib typedefs in zlib.h and zconf.h */ 109205194Sdelphij# define Byte z_Byte 110205194Sdelphij# define Bytef z_Bytef 111157043Sdes# define alloc_func z_alloc_func 112205194Sdelphij# define charf z_charf 113157043Sdes# define free_func z_free_func 114205194Sdelphij# define gzFile z_gzFile 115205194Sdelphij# define gz_header z_gz_header 116205194Sdelphij# define gz_headerp z_gz_headerp 117157043Sdes# define in_func z_in_func 118205194Sdelphij# define intf z_intf 119157043Sdes# define out_func z_out_func 120145474Skientzle# define uInt z_uInt 121205194Sdelphij# define uIntf z_uIntf 122145474Skientzle# define uLong z_uLong 123145474Skientzle# define uLongf z_uLongf 124205194Sdelphij# define voidp z_voidp 125205194Sdelphij# define voidpc z_voidpc 126145474Skientzle# define voidpf z_voidpf 127205194Sdelphij 128205194Sdelphij/* all zlib structs in zlib.h and zconf.h */ 129205194Sdelphij# define gz_header_s z_gz_header_s 130205194Sdelphij# define internal_state z_internal_state 131205194Sdelphij 13217651Speter#endif 13317651Speter 134131377Stjr#if defined(__MSDOS__) && !defined(MSDOS) 135131377Stjr# define MSDOS 136131377Stjr#endif 137131377Stjr#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) 138131377Stjr# define OS2 139131377Stjr#endif 140131377Stjr#if defined(_WINDOWS) && !defined(WINDOWS) 141131377Stjr# define WINDOWS 142131377Stjr#endif 143157043Sdes#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) 144157043Sdes# ifndef WIN32 145157043Sdes# define WIN32 146157043Sdes# endif 14717651Speter#endif 148131377Stjr#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) 149131377Stjr# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) 150131377Stjr# ifndef SYS16BIT 151131377Stjr# define SYS16BIT 152131377Stjr# endif 15317651Speter# endif 15417651Speter#endif 15517651Speter 15617651Speter/* 15717651Speter * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 15817651Speter * than 64k bytes at a time (needed on systems with 16-bit int). 15917651Speter */ 160131377Stjr#ifdef SYS16BIT 16117651Speter# define MAXSEG_64K 16217651Speter#endif 16317651Speter#ifdef MSDOS 16417651Speter# define UNALIGNED_OK 16517651Speter#endif 16617651Speter 167131377Stjr#ifdef __STDC_VERSION__ 16833904Ssteve# ifndef STDC 16933904Ssteve# define STDC 17033904Ssteve# endif 171131377Stjr# if __STDC_VERSION__ >= 199901L 172131377Stjr# ifndef STDC99 173131377Stjr# define STDC99 174131377Stjr# endif 175131377Stjr# endif 17617651Speter#endif 177131377Stjr#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) 178131377Stjr# define STDC 179131377Stjr#endif 180131377Stjr#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) 181131377Stjr# define STDC 182131377Stjr#endif 183131377Stjr#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) 184131377Stjr# define STDC 185131377Stjr#endif 186131377Stjr#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) 187131377Stjr# define STDC 188131377Stjr#endif 18917651Speter 190131377Stjr#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ 191131377Stjr# define STDC 192131377Stjr#endif 193131377Stjr 19417651Speter#ifndef STDC 19517651Speter# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 196131377Stjr# define const /* note: need a more gentle solution here */ 19717651Speter# endif 19817651Speter#endif 19917651Speter 20017651Speter/* Some Mac compilers merge all .h files incorrectly: */ 201131377Stjr#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) 20217651Speter# define NO_DUMMY_DECL 20317651Speter#endif 20417651Speter 20517651Speter/* Maximum value for memLevel in deflateInit2 */ 20617651Speter#ifndef MAX_MEM_LEVEL 20717651Speter# ifdef MAXSEG_64K 20817651Speter# define MAX_MEM_LEVEL 8 20917651Speter# else 21017651Speter# define MAX_MEM_LEVEL 9 21117651Speter# endif 21217651Speter#endif 21317651Speter 21433904Ssteve/* Maximum value for windowBits in deflateInit2 and inflateInit2. 21533904Ssteve * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 21633904Ssteve * created by gzip. (Files created by minigzip can still be extracted by 21733904Ssteve * gzip.) 21833904Ssteve */ 21917651Speter#ifndef MAX_WBITS 22017651Speter# define MAX_WBITS 15 /* 32K LZ77 window */ 22117651Speter#endif 22217651Speter 22317651Speter/* The memory requirements for deflate are (in bytes): 22433904Ssteve (1 << (windowBits+2)) + (1 << (memLevel+9)) 22517651Speter that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 22617651Speter plus a few kilobytes for small objects. For example, if you want to reduce 22717651Speter the default memory requirements from 256K to 128K, compile with 22817651Speter make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 22917651Speter Of course this will generally degrade compression (there's no free lunch). 23017651Speter 23117651Speter The memory requirements for inflate are (in bytes) 1 << windowBits 23217651Speter that is, 32K for windowBits=15 (default value) plus a few kilobytes 23317651Speter for small objects. 23417651Speter*/ 23517651Speter 23617651Speter /* Type declarations */ 23717651Speter 23817651Speter#ifndef OF /* function prototypes */ 23917651Speter# ifdef STDC 24017651Speter# define OF(args) args 24117651Speter# else 24217651Speter# define OF(args) () 24317651Speter# endif 24417651Speter#endif 24517651Speter 24617651Speter/* The following definitions for FAR are needed only for MSDOS mixed 24717651Speter * model programming (small or medium model with some far allocations). 24817651Speter * This was tested only with MSC; for other MSDOS compilers you may have 24917651Speter * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 25017651Speter * just define FAR to be empty. 25117651Speter */ 252131377Stjr#ifdef SYS16BIT 253131377Stjr# if defined(M_I86SM) || defined(M_I86MM) 254131377Stjr /* MSC small or medium model */ 255131377Stjr# define SMALL_MEDIUM 256131377Stjr# ifdef _MSC_VER 257131377Stjr# define FAR _far 258131377Stjr# else 259131377Stjr# define FAR far 260131377Stjr# endif 26117651Speter# endif 262131377Stjr# if (defined(__SMALL__) || defined(__MEDIUM__)) 263131377Stjr /* Turbo C small or medium model */ 26417651Speter# define SMALL_MEDIUM 265131377Stjr# ifdef __BORLANDC__ 266131377Stjr# define FAR _far 267131377Stjr# else 268131377Stjr# define FAR far 269131377Stjr# endif 27017651Speter# endif 27117651Speter#endif 27233904Ssteve 273131377Stjr#if defined(WINDOWS) || defined(WIN32) 274131377Stjr /* If building or using zlib as a DLL, define ZLIB_DLL. 275131377Stjr * This is not mandatory, but it offers a little performance increase. 276131377Stjr */ 277131377Stjr# ifdef ZLIB_DLL 278131377Stjr# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 279131377Stjr# ifdef ZLIB_INTERNAL 280131377Stjr# define ZEXTERN extern __declspec(dllexport) 281131377Stjr# else 282131377Stjr# define ZEXTERN extern __declspec(dllimport) 283131377Stjr# endif 284131377Stjr# endif 285131377Stjr# endif /* ZLIB_DLL */ 286131377Stjr /* If building or using zlib with the WINAPI/WINAPIV calling convention, 287131377Stjr * define ZLIB_WINAPI. 288131377Stjr * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 289131377Stjr */ 290131377Stjr# ifdef ZLIB_WINAPI 29142468Speter# ifdef FAR 29242468Speter# undef FAR 29342468Speter# endif 29442468Speter# include <windows.h> 295131377Stjr /* No need for _export, use ZLIB.DEF instead. */ 296131377Stjr /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 297131377Stjr# define ZEXPORT WINAPI 29842468Speter# ifdef WIN32 299131377Stjr# define ZEXPORTVA WINAPIV 30042468Speter# else 301131377Stjr# define ZEXPORTVA FAR CDECL 30242468Speter# endif 30333904Ssteve# endif 304131377Stjr#endif 305131377Stjr 306131377Stjr#if defined (__BEOS__) 307131377Stjr# ifdef ZLIB_DLL 308131377Stjr# ifdef ZLIB_INTERNAL 309131377Stjr# define ZEXPORT __declspec(dllexport) 310131377Stjr# define ZEXPORTVA __declspec(dllexport) 31142468Speter# else 312131377Stjr# define ZEXPORT __declspec(dllimport) 313131377Stjr# define ZEXPORTVA __declspec(dllimport) 31442468Speter# endif 31542468Speter# endif 31642468Speter#endif 31742468Speter 318131377Stjr#ifndef ZEXTERN 319131377Stjr# define ZEXTERN extern 32033904Ssteve#endif 32142468Speter#ifndef ZEXPORT 32242468Speter# define ZEXPORT 32342468Speter#endif 32442468Speter#ifndef ZEXPORTVA 32542468Speter# define ZEXPORTVA 32642468Speter#endif 32742468Speter 32817651Speter#ifndef FAR 329131377Stjr# define FAR 33017651Speter#endif 33117651Speter 332131377Stjr#if !defined(__MACTYPES__) 33317651Spetertypedef unsigned char Byte; /* 8 bits */ 33442468Speter#endif 33517651Spetertypedef unsigned int uInt; /* 16 bits or more */ 33617651Spetertypedef unsigned long uLong; /* 32 bits or more */ 33717651Speter 33842468Speter#ifdef SMALL_MEDIUM 33942468Speter /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 34017651Speter# define Bytef Byte FAR 34117651Speter#else 34217651Speter typedef Byte FAR Bytef; 34317651Speter#endif 34417651Spetertypedef char FAR charf; 34517651Spetertypedef int FAR intf; 34617651Spetertypedef uInt FAR uIntf; 34717651Spetertypedef uLong FAR uLongf; 34817651Speter 34917651Speter#ifdef STDC 350131377Stjr typedef void const *voidpc; 351131377Stjr typedef void FAR *voidpf; 352131377Stjr typedef void *voidp; 35317651Speter#else 354131377Stjr typedef Byte const *voidpc; 355131377Stjr typedef Byte FAR *voidpf; 356131377Stjr typedef Byte *voidp; 35717651Speter#endif 35817651Speter 359205194Sdelphij#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ 360205194Sdelphij# define Z_HAVE_UNISTD_H 361205194Sdelphij#endif 362205194Sdelphij 363206499Sdelphij#ifdef STDC 364205194Sdelphij# include <sys/types.h> /* for off_t */ 365206499Sdelphij#endif 366206499Sdelphij 367206905Sdelphij/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and 368206905Sdelphij * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even 369206905Sdelphij * though the former does not conform to the LFS document), but considering 370206905Sdelphij * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as 371206905Sdelphij * equivalently requesting no 64-bit operations 372206905Sdelphij */ 373206905Sdelphij#if -_LARGEFILE64_SOURCE - -1 == 1 374206905Sdelphij# undef _LARGEFILE64_SOURCE 375206905Sdelphij#endif 376206905Sdelphij 377206499Sdelphij#if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) 378205194Sdelphij# include <unistd.h> /* for SEEK_* and off_t */ 379131377Stjr# ifdef VMS 380205194Sdelphij# include <unixio.h> /* for off_t */ 381131377Stjr# endif 382205194Sdelphij# ifndef z_off_t 383205194Sdelphij# define z_off_t off_t 384205194Sdelphij# endif 38533904Ssteve#endif 386205194Sdelphij 38733904Ssteve#ifndef SEEK_SET 38833904Ssteve# define SEEK_SET 0 /* Seek from beginning of file. */ 38933904Ssteve# define SEEK_CUR 1 /* Seek from current position. */ 39042468Speter# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 39133904Ssteve#endif 392205990Sdelphij 39333904Ssteve#ifndef z_off_t 394145474Skientzle# define z_off_t long 39533904Ssteve#endif 39617651Speter 397206499Sdelphij#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 398206499Sdelphij# define z_off64_t off64_t 399206499Sdelphij#else 400206499Sdelphij# define z_off64_t z_off_t 401206499Sdelphij#endif 402206499Sdelphij 403131377Stjr#if defined(__OS400__) 404145474Skientzle# define NO_vsnprintf 405131377Stjr#endif 406131377Stjr 407131377Stjr#if defined(__MVS__) 408131377Stjr# define NO_vsnprintf 409131377Stjr#endif 410131377Stjr 41133904Ssteve/* MVS linker does not support external names larger than 8 bytes */ 41233904Ssteve#if defined(__MVS__) 413205194Sdelphij #pragma map(deflateInit_,"DEIN") 414205194Sdelphij #pragma map(deflateInit2_,"DEIN2") 415205194Sdelphij #pragma map(deflateEnd,"DEEND") 416205194Sdelphij #pragma map(deflateBound,"DEBND") 417205194Sdelphij #pragma map(inflateInit_,"ININ") 418205194Sdelphij #pragma map(inflateInit2_,"ININ2") 419205194Sdelphij #pragma map(inflateEnd,"INEND") 420205194Sdelphij #pragma map(inflateSync,"INSY") 421205194Sdelphij #pragma map(inflateSetDictionary,"INSEDI") 422205194Sdelphij #pragma map(compressBound,"CMBND") 423205194Sdelphij #pragma map(inflate_table,"INTABL") 424205194Sdelphij #pragma map(inflate_fast,"INFA") 425205194Sdelphij #pragma map(inflate_copyright,"INCOPY") 42617651Speter#endif 42717651Speter 428131377Stjr#endif /* ZCONF_H */ 429