176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* zconf.h -- configuration of the zlib compression library 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Copyright (C) 1995-2010 Jean-loup Gailly. 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * For conditions of distribution and use, see copyright notice in zlib.h 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* @(#) $Id$ */ 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef ZCONF_H 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ZCONF_H 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * If you *really* need a unique prefix for all types and library functions, 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Even better than compiling with -DZ_PREFIX would be to use configure to set 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * this permanently in zconf.h using "./configure --zprefix". 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* all linked symbols */ 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define _dist_code z__dist_code 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define _length_code z__length_code 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define _tr_align z__tr_align 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define _tr_flush_block z__tr_flush_block 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define _tr_init z__tr_init 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define _tr_stored_block z__tr_stored_block 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define _tr_tally z__tr_tally 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define adler32 z_adler32 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define adler32_combine z_adler32_combine 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define adler32_combine64 z_adler32_combine64 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define compress z_compress 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define compress2 z_compress2 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define compressBound z_compressBound 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define crc32 z_crc32 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define crc32_combine z_crc32_combine 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define crc32_combine64 z_crc32_combine64 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflate z_deflate 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateBound z_deflateBound 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateCopy z_deflateCopy 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateEnd z_deflateEnd 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateInit2_ z_deflateInit2_ 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateInit_ z_deflateInit_ 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateParams z_deflateParams 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflatePrime z_deflatePrime 4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateReset z_deflateReset 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateSetDictionary z_deflateSetDictionary 4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateSetHeader z_deflateSetHeader 4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflateTune z_deflateTune 4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define deflate_copyright z_deflate_copyright 4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define get_crc_table z_get_crc_table 5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gz_error z_gz_error 5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gz_intmax z_gz_intmax 5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gz_strwinerror z_gz_strwinerror 5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzbuffer z_gzbuffer 5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzclearerr z_gzclearerr 5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzclose z_gzclose 5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzclose_r z_gzclose_r 5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzclose_w z_gzclose_w 5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzdirect z_gzdirect 5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzdopen z_gzdopen 6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzeof z_gzeof 6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzerror z_gzerror 6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzflush z_gzflush 6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzgetc z_gzgetc 6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzgets z_gzgets 6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzoffset z_gzoffset 6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzoffset64 z_gzoffset64 6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzopen z_gzopen 6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzopen64 z_gzopen64 6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzprintf z_gzprintf 7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzputc z_gzputc 7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzputs z_gzputs 7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzread z_gzread 7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzrewind z_gzrewind 7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzseek z_gzseek 7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzseek64 z_gzseek64 7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzsetparams z_gzsetparams 7776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gztell z_gztell 7876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gztell64 z_gztell64 7976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzungetc z_gzungetc 8076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzwrite z_gzwrite 8176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflate z_inflate 8276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateBack z_inflateBack 8376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateBackEnd z_inflateBackEnd 8476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateBackInit_ z_inflateBackInit_ 8576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateCopy z_inflateCopy 8676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateEnd z_inflateEnd 8776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateGetHeader z_inflateGetHeader 8876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateInit2_ z_inflateInit2_ 8976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateInit_ z_inflateInit_ 9076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateMark z_inflateMark 9176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflatePrime z_inflatePrime 9276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateReset z_inflateReset 9376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateReset2 z_inflateReset2 9476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateSetDictionary z_inflateSetDictionary 9576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateSync z_inflateSync 9676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateSyncPoint z_inflateSyncPoint 9776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflateUndermine z_inflateUndermine 9876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflate_copyright z_inflate_copyright 9976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflate_fast z_inflate_fast 10076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define inflate_table z_inflate_table 10176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define uncompress z_uncompress 10276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define zError z_zError 10376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define zcalloc z_zcalloc 10476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define zcfree z_zcfree 10576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define zlibCompileFlags z_zlibCompileFlags 10676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define zlibVersion z_zlibVersion 10776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 10876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* all zlib typedefs in zlib.h and zconf.h */ 10976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define Byte z_Byte 11076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define Bytef z_Bytef 11176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define alloc_func z_alloc_func 11276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define charf z_charf 11376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define free_func z_free_func 11476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gzFile z_gzFile 11576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gz_header z_gz_header 11676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gz_headerp z_gz_headerp 11776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define in_func z_in_func 11876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define intf z_intf 11976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define out_func z_out_func 12076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define uInt z_uInt 12176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define uIntf z_uIntf 12276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define uLong z_uLong 12376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define uLongf z_uLongf 12476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define voidp z_voidp 12576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define voidpc z_voidpc 12676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define voidpf z_voidpf 12776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 12876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* all zlib structs in zlib.h and zconf.h */ 12976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define gz_header_s z_gz_header_s 13076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define internal_state z_internal_state 13176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 13276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 13376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 13476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(__MSDOS__) && !defined(MSDOS) 13576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define MSDOS 13676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 13776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) 13876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define OS2 13976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 14076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(_WINDOWS) && !defined(WINDOWS) 14176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define WINDOWS 14276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 14376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) 14476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifndef WIN32 14576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define WIN32 14676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 14776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 14876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) 14976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) 15076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifndef SYS16BIT 15176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define SYS16BIT 15276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 15376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 15476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 15576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 15676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 15776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 15876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * than 64k bytes at a time (needed on systems with 16-bit int). 15976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 16076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef SYS16BIT 16176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define MAXSEG_64K 16276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 16376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef MSDOS 16476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define UNALIGNED_OK 16576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 16676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 16776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef __STDC_VERSION__ 16876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifndef STDC 16976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define STDC 17076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 17176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# if __STDC_VERSION__ >= 199901L 17276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifndef STDC99 17376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define STDC99 17476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 17576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 17676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 17776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) 17876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define STDC 17976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 18076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) 18176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define STDC 18276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 18376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) 18476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define STDC 18576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 18676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) 18776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define STDC 18876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 18976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 19076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ 19176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define STDC 19276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 19376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 19476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef STDC 19576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 19676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define const /* note: need a more gentle solution here */ 19776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 19876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 19976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 20076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* Some Mac compilers merge all .h files incorrectly: */ 20176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) 20276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define NO_DUMMY_DECL 20376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 20476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 20576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* Maximum value for memLevel in deflateInit2 */ 20676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef MAX_MEM_LEVEL 20776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef MAXSEG_64K 20876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define MAX_MEM_LEVEL 8 20976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# else 21076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define MAX_MEM_LEVEL 9 21176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 21276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 21376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 21476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* Maximum value for windowBits in deflateInit2 and inflateInit2. 21576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 21676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * created by gzip. (Files created by minigzip can still be extracted by 21776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * gzip.) 21876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 21976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef MAX_WBITS 22076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define MAX_WBITS 15 /* 32K LZ77 window */ 22176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 22276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 22376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* The memory requirements for deflate are (in bytes): 22476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman (1 << (windowBits+2)) + (1 << (memLevel+9)) 22576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 22676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman plus a few kilobytes for small objects. For example, if you want to reduce 22776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman the default memory requirements from 256K to 128K, compile with 22876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 22976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman Of course this will generally degrade compression (there's no free lunch). 23076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 23176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman The memory requirements for inflate are (in bytes) 1 << windowBits 23276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman that is, 32K for windowBits=15 (default value) plus a few kilobytes 23376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman for small objects. 23476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 23576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 23676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* Type declarations */ 23776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 23876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef OF /* function prototypes */ 23976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef STDC 24076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define OF(args) args 24176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# else 24276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define OF(args) () 24376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 24476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 24576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 24676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* The following definitions for FAR are needed only for MSDOS mixed 24776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * model programming (small or medium model with some far allocations). 24876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * This was tested only with MSC; for other MSDOS compilers you may have 24976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 25076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * just define FAR to be empty. 25176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 25276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef SYS16BIT 25376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# if defined(M_I86SM) || defined(M_I86MM) 25476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* MSC small or medium model */ 25576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define SMALL_MEDIUM 25676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef _MSC_VER 25776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define FAR _far 25876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# else 25976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define FAR far 26076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 26176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 26276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# if (defined(__SMALL__) || defined(__MEDIUM__)) 26376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* Turbo C small or medium model */ 26476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define SMALL_MEDIUM 26576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef __BORLANDC__ 26676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define FAR _far 26776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# else 26876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define FAR far 26976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 27076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 27176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 27276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 27376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(WINDOWS) || defined(WIN32) 27476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* If building or using zlib as a DLL, define ZLIB_DLL. 27576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * This is not mandatory, but it offers a little performance increase. 27676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 27776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef ZLIB_DLL 27876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 27976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef ZLIB_INTERNAL 28076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXTERN extern __declspec(dllexport) 28176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# else 28276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXTERN extern __declspec(dllimport) 28376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 28476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 28576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif /* ZLIB_DLL */ 28676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* If building or using zlib with the WINAPI/WINAPIV calling convention, 28776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * define ZLIB_WINAPI. 28876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 28976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 29076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef ZLIB_WINAPI 29176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef FAR 29276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# undef FAR 29376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 29476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# include <windows.h> 29576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* No need for _export, use ZLIB.DEF instead. */ 29676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 29776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXPORT WINAPI 29876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef WIN32 29976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXPORTVA WINAPIV 30076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# else 30176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXPORTVA FAR CDECL 30276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 30376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 30476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 30576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 30676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined (__BEOS__) 30776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef ZLIB_DLL 30876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef ZLIB_INTERNAL 30976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXPORT __declspec(dllexport) 31076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXPORTVA __declspec(dllexport) 31176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# else 31276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXPORT __declspec(dllimport) 31376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXPORTVA __declspec(dllimport) 31476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 31576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 31676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 31776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 31876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef ZEXTERN 31976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXTERN extern 32076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 32176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef ZEXPORT 32276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXPORT 32376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 32476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef ZEXPORTVA 32576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define ZEXPORTVA 32676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 32776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 32876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef FAR 32976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define FAR 33076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 33176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 33276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if !defined(__MACTYPES__) 33376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef unsigned char Byte; /* 8 bits */ 33476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 33576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef unsigned int uInt; /* 16 bits or more */ 33676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef unsigned long uLong; /* 32 bits or more */ 33776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 33876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef SMALL_MEDIUM 33976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 34076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define Bytef Byte FAR 34176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#else 34276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman typedef Byte FAR Bytef; 34376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 34476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef char FAR charf; 34576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef int FAR intf; 34676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef uInt FAR uIntf; 34776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef uLong FAR uLongf; 34876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 34976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef STDC 35076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman typedef void const *voidpc; 35176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman typedef void FAR *voidpf; 35276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman typedef void *voidp; 35376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#else 35476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman typedef Byte const *voidpc; 35576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman typedef Byte FAR *voidpf; 35676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman typedef Byte *voidp; 35776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 35876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 35976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ 36076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define Z_HAVE_UNISTD_H 36176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 36276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 36376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef STDC 36476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# include <sys/types.h> /* for off_t */ 36576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 36676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 36776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and 36876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even 36976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * though the former does not conform to the LFS document), but considering 37076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as 37176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * equivalently requesting no 64-bit operations 37276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 37376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if -_LARGEFILE64_SOURCE - -1 == 1 37476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# undef _LARGEFILE64_SOURCE 37576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 37676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 37776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) 37876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# include <unistd.h> /* for SEEK_* and off_t */ 37976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifdef VMS 38076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# include <unixio.h> /* for off_t */ 38176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 38276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# ifndef z_off_t 38376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define z_off_t off_t 38476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# endif 38576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 38676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 38776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef SEEK_SET 38876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define SEEK_SET 0 /* Seek from beginning of file. */ 38976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define SEEK_CUR 1 /* Seek from current position. */ 39076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 39176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 39276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 39376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef z_off_t 39476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define z_off_t long 39576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 39676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 39776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 39876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define z_off64_t off64_t 39976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#else 40076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define z_off64_t z_off_t 40176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 40276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 40376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(__OS400__) 40476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define NO_vsnprintf 40576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 40676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 40776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(__MVS__) 40876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman# define NO_vsnprintf 40976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 41076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 41176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* MVS linker does not support external names larger than 8 bytes */ 41276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if defined(__MVS__) 41376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(deflateInit_,"DEIN") 41476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(deflateInit2_,"DEIN2") 41576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(deflateEnd,"DEEND") 41676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(deflateBound,"DEBND") 41776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(inflateInit_,"ININ") 41876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(inflateInit2_,"ININ2") 41976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(inflateEnd,"INEND") 42076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(inflateSync,"INSY") 42176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(inflateSetDictionary,"INSEDI") 42276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(compressBound,"CMBND") 42376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(inflate_table,"INTABL") 42476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(inflate_fast,"INFA") 42576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman #pragma map(inflate_copyright,"INCOPY") 42676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 42776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 42876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif /* ZCONF_H */ 429