1221b1638SMasahiro Yamada /* zconf.h -- configuration of the zlib compression library 2221b1638SMasahiro Yamada * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler 3221b1638SMasahiro Yamada * For conditions of distribution and use, see copyright notice in zlib.h 4221b1638SMasahiro Yamada */ 5221b1638SMasahiro Yamada 6221b1638SMasahiro Yamada /* @(#) $Id$ */ 7221b1638SMasahiro Yamada 8221b1638SMasahiro Yamada #ifndef ZCONF_H 9221b1638SMasahiro Yamada #define ZCONF_H 10221b1638SMasahiro Yamada 11221b1638SMasahiro Yamada /* 12221b1638SMasahiro Yamada * If you *really* need a unique prefix for all types and library functions, 13221b1638SMasahiro Yamada * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. 14221b1638SMasahiro Yamada * Even better than compiling with -DZ_PREFIX would be to use configure to set 15221b1638SMasahiro Yamada * this permanently in zconf.h using "./configure --zprefix". 16221b1638SMasahiro Yamada */ 17221b1638SMasahiro Yamada #ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ 18221b1638SMasahiro Yamada # define Z_PREFIX_SET 19221b1638SMasahiro Yamada 20221b1638SMasahiro Yamada /* all linked symbols and init macros */ 21221b1638SMasahiro Yamada # define _dist_code z__dist_code 22221b1638SMasahiro Yamada # define _length_code z__length_code 23221b1638SMasahiro Yamada # define _tr_align z__tr_align 24221b1638SMasahiro Yamada # define _tr_flush_bits z__tr_flush_bits 25221b1638SMasahiro Yamada # define _tr_flush_block z__tr_flush_block 26221b1638SMasahiro Yamada # define _tr_init z__tr_init 27221b1638SMasahiro Yamada # define _tr_stored_block z__tr_stored_block 28221b1638SMasahiro Yamada # define _tr_tally z__tr_tally 29221b1638SMasahiro Yamada # define adler32 z_adler32 30221b1638SMasahiro Yamada # define adler32_combine z_adler32_combine 31221b1638SMasahiro Yamada # define adler32_combine64 z_adler32_combine64 32221b1638SMasahiro Yamada # define adler32_z z_adler32_z 33221b1638SMasahiro Yamada # ifndef Z_SOLO 34221b1638SMasahiro Yamada # define compress z_compress 35221b1638SMasahiro Yamada # define compress2 z_compress2 36221b1638SMasahiro Yamada # define compressBound z_compressBound 37221b1638SMasahiro Yamada # endif 38221b1638SMasahiro Yamada # define crc32 z_crc32 39221b1638SMasahiro Yamada # define crc32_combine z_crc32_combine 40221b1638SMasahiro Yamada # define crc32_combine64 z_crc32_combine64 41a194255dSDaniel Boulby # define crc32_combine_gen z_crc32_combine_gen 42a194255dSDaniel Boulby # define crc32_combine_gen64 z_crc32_combine_gen64 43a194255dSDaniel Boulby # define crc32_combine_op z_crc32_combine_op 44221b1638SMasahiro Yamada # define crc32_z z_crc32_z 45221b1638SMasahiro Yamada # define deflate z_deflate 46221b1638SMasahiro Yamada # define deflateBound z_deflateBound 47221b1638SMasahiro Yamada # define deflateCopy z_deflateCopy 48221b1638SMasahiro Yamada # define deflateEnd z_deflateEnd 49221b1638SMasahiro Yamada # define deflateGetDictionary z_deflateGetDictionary 50221b1638SMasahiro Yamada # define deflateInit z_deflateInit 51221b1638SMasahiro Yamada # define deflateInit2 z_deflateInit2 52221b1638SMasahiro Yamada # define deflateInit2_ z_deflateInit2_ 53221b1638SMasahiro Yamada # define deflateInit_ z_deflateInit_ 54221b1638SMasahiro Yamada # define deflateParams z_deflateParams 55221b1638SMasahiro Yamada # define deflatePending z_deflatePending 56221b1638SMasahiro Yamada # define deflatePrime z_deflatePrime 57221b1638SMasahiro Yamada # define deflateReset z_deflateReset 58221b1638SMasahiro Yamada # define deflateResetKeep z_deflateResetKeep 59221b1638SMasahiro Yamada # define deflateSetDictionary z_deflateSetDictionary 60221b1638SMasahiro Yamada # define deflateSetHeader z_deflateSetHeader 61221b1638SMasahiro Yamada # define deflateTune z_deflateTune 62221b1638SMasahiro Yamada # define deflate_copyright z_deflate_copyright 63221b1638SMasahiro Yamada # define get_crc_table z_get_crc_table 64221b1638SMasahiro Yamada # ifndef Z_SOLO 65221b1638SMasahiro Yamada # define gz_error z_gz_error 66221b1638SMasahiro Yamada # define gz_intmax z_gz_intmax 67221b1638SMasahiro Yamada # define gz_strwinerror z_gz_strwinerror 68221b1638SMasahiro Yamada # define gzbuffer z_gzbuffer 69221b1638SMasahiro Yamada # define gzclearerr z_gzclearerr 70221b1638SMasahiro Yamada # define gzclose z_gzclose 71221b1638SMasahiro Yamada # define gzclose_r z_gzclose_r 72221b1638SMasahiro Yamada # define gzclose_w z_gzclose_w 73221b1638SMasahiro Yamada # define gzdirect z_gzdirect 74221b1638SMasahiro Yamada # define gzdopen z_gzdopen 75221b1638SMasahiro Yamada # define gzeof z_gzeof 76221b1638SMasahiro Yamada # define gzerror z_gzerror 77221b1638SMasahiro Yamada # define gzflush z_gzflush 78221b1638SMasahiro Yamada # define gzfread z_gzfread 79221b1638SMasahiro Yamada # define gzfwrite z_gzfwrite 80221b1638SMasahiro Yamada # define gzgetc z_gzgetc 81221b1638SMasahiro Yamada # define gzgetc_ z_gzgetc_ 82221b1638SMasahiro Yamada # define gzgets z_gzgets 83221b1638SMasahiro Yamada # define gzoffset z_gzoffset 84221b1638SMasahiro Yamada # define gzoffset64 z_gzoffset64 85221b1638SMasahiro Yamada # define gzopen z_gzopen 86221b1638SMasahiro Yamada # define gzopen64 z_gzopen64 87221b1638SMasahiro Yamada # ifdef _WIN32 88221b1638SMasahiro Yamada # define gzopen_w z_gzopen_w 89221b1638SMasahiro Yamada # endif 90221b1638SMasahiro Yamada # define gzprintf z_gzprintf 91221b1638SMasahiro Yamada # define gzputc z_gzputc 92221b1638SMasahiro Yamada # define gzputs z_gzputs 93221b1638SMasahiro Yamada # define gzread z_gzread 94221b1638SMasahiro Yamada # define gzrewind z_gzrewind 95221b1638SMasahiro Yamada # define gzseek z_gzseek 96221b1638SMasahiro Yamada # define gzseek64 z_gzseek64 97221b1638SMasahiro Yamada # define gzsetparams z_gzsetparams 98221b1638SMasahiro Yamada # define gztell z_gztell 99221b1638SMasahiro Yamada # define gztell64 z_gztell64 100221b1638SMasahiro Yamada # define gzungetc z_gzungetc 101221b1638SMasahiro Yamada # define gzvprintf z_gzvprintf 102221b1638SMasahiro Yamada # define gzwrite z_gzwrite 103221b1638SMasahiro Yamada # endif 104221b1638SMasahiro Yamada # define inflate z_inflate 105221b1638SMasahiro Yamada # define inflateBack z_inflateBack 106221b1638SMasahiro Yamada # define inflateBackEnd z_inflateBackEnd 107221b1638SMasahiro Yamada # define inflateBackInit z_inflateBackInit 108221b1638SMasahiro Yamada # define inflateBackInit_ z_inflateBackInit_ 109221b1638SMasahiro Yamada # define inflateCodesUsed z_inflateCodesUsed 110221b1638SMasahiro Yamada # define inflateCopy z_inflateCopy 111221b1638SMasahiro Yamada # define inflateEnd z_inflateEnd 112221b1638SMasahiro Yamada # define inflateGetDictionary z_inflateGetDictionary 113221b1638SMasahiro Yamada # define inflateGetHeader z_inflateGetHeader 114221b1638SMasahiro Yamada # define inflateInit z_inflateInit 115221b1638SMasahiro Yamada # define inflateInit2 z_inflateInit2 116221b1638SMasahiro Yamada # define inflateInit2_ z_inflateInit2_ 117221b1638SMasahiro Yamada # define inflateInit_ z_inflateInit_ 118221b1638SMasahiro Yamada # define inflateMark z_inflateMark 119221b1638SMasahiro Yamada # define inflatePrime z_inflatePrime 120221b1638SMasahiro Yamada # define inflateReset z_inflateReset 121221b1638SMasahiro Yamada # define inflateReset2 z_inflateReset2 122221b1638SMasahiro Yamada # define inflateResetKeep z_inflateResetKeep 123221b1638SMasahiro Yamada # define inflateSetDictionary z_inflateSetDictionary 124221b1638SMasahiro Yamada # define inflateSync z_inflateSync 125221b1638SMasahiro Yamada # define inflateSyncPoint z_inflateSyncPoint 126221b1638SMasahiro Yamada # define inflateUndermine z_inflateUndermine 127221b1638SMasahiro Yamada # define inflateValidate z_inflateValidate 128221b1638SMasahiro Yamada # define inflate_copyright z_inflate_copyright 129221b1638SMasahiro Yamada # define inflate_fast z_inflate_fast 130221b1638SMasahiro Yamada # define inflate_table z_inflate_table 131221b1638SMasahiro Yamada # ifndef Z_SOLO 132221b1638SMasahiro Yamada # define uncompress z_uncompress 133221b1638SMasahiro Yamada # define uncompress2 z_uncompress2 134221b1638SMasahiro Yamada # endif 135221b1638SMasahiro Yamada # define zError z_zError 136221b1638SMasahiro Yamada # ifndef Z_SOLO 137221b1638SMasahiro Yamada # define zcalloc z_zcalloc 138221b1638SMasahiro Yamada # define zcfree z_zcfree 139221b1638SMasahiro Yamada # endif 140221b1638SMasahiro Yamada # define zlibCompileFlags z_zlibCompileFlags 141221b1638SMasahiro Yamada # define zlibVersion z_zlibVersion 142221b1638SMasahiro Yamada 143221b1638SMasahiro Yamada /* all zlib typedefs in zlib.h and zconf.h */ 144221b1638SMasahiro Yamada # define Byte z_Byte 145221b1638SMasahiro Yamada # define Bytef z_Bytef 146221b1638SMasahiro Yamada # define alloc_func z_alloc_func 147221b1638SMasahiro Yamada # define charf z_charf 148221b1638SMasahiro Yamada # define free_func z_free_func 149221b1638SMasahiro Yamada # ifndef Z_SOLO 150221b1638SMasahiro Yamada # define gzFile z_gzFile 151221b1638SMasahiro Yamada # endif 152221b1638SMasahiro Yamada # define gz_header z_gz_header 153221b1638SMasahiro Yamada # define gz_headerp z_gz_headerp 154221b1638SMasahiro Yamada # define in_func z_in_func 155221b1638SMasahiro Yamada # define intf z_intf 156221b1638SMasahiro Yamada # define out_func z_out_func 157221b1638SMasahiro Yamada # define uInt z_uInt 158221b1638SMasahiro Yamada # define uIntf z_uIntf 159221b1638SMasahiro Yamada # define uLong z_uLong 160221b1638SMasahiro Yamada # define uLongf z_uLongf 161221b1638SMasahiro Yamada # define voidp z_voidp 162221b1638SMasahiro Yamada # define voidpc z_voidpc 163221b1638SMasahiro Yamada # define voidpf z_voidpf 164221b1638SMasahiro Yamada 165221b1638SMasahiro Yamada /* all zlib structs in zlib.h and zconf.h */ 166221b1638SMasahiro Yamada # define gz_header_s z_gz_header_s 167221b1638SMasahiro Yamada # define internal_state z_internal_state 168221b1638SMasahiro Yamada 169221b1638SMasahiro Yamada #endif 170221b1638SMasahiro Yamada 171221b1638SMasahiro Yamada #if defined(__MSDOS__) && !defined(MSDOS) 172221b1638SMasahiro Yamada # define MSDOS 173221b1638SMasahiro Yamada #endif 174221b1638SMasahiro Yamada #if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) 175221b1638SMasahiro Yamada # define OS2 176221b1638SMasahiro Yamada #endif 177221b1638SMasahiro Yamada #if defined(_WINDOWS) && !defined(WINDOWS) 178221b1638SMasahiro Yamada # define WINDOWS 179221b1638SMasahiro Yamada #endif 180221b1638SMasahiro Yamada #if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) 181221b1638SMasahiro Yamada # ifndef WIN32 182221b1638SMasahiro Yamada # define WIN32 183221b1638SMasahiro Yamada # endif 184221b1638SMasahiro Yamada #endif 185221b1638SMasahiro Yamada #if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) 186221b1638SMasahiro Yamada # if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) 187221b1638SMasahiro Yamada # ifndef SYS16BIT 188221b1638SMasahiro Yamada # define SYS16BIT 189221b1638SMasahiro Yamada # endif 190221b1638SMasahiro Yamada # endif 191221b1638SMasahiro Yamada #endif 192221b1638SMasahiro Yamada 193221b1638SMasahiro Yamada /* 194221b1638SMasahiro Yamada * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 195221b1638SMasahiro Yamada * than 64k bytes at a time (needed on systems with 16-bit int). 196221b1638SMasahiro Yamada */ 197221b1638SMasahiro Yamada #ifdef SYS16BIT 198221b1638SMasahiro Yamada # define MAXSEG_64K 199221b1638SMasahiro Yamada #endif 200221b1638SMasahiro Yamada #ifdef MSDOS 201221b1638SMasahiro Yamada # define UNALIGNED_OK 202221b1638SMasahiro Yamada #endif 203221b1638SMasahiro Yamada 204221b1638SMasahiro Yamada #ifdef __STDC_VERSION__ 205221b1638SMasahiro Yamada # ifndef STDC 206221b1638SMasahiro Yamada # define STDC 207221b1638SMasahiro Yamada # endif 208221b1638SMasahiro Yamada # if __STDC_VERSION__ >= 199901L 209221b1638SMasahiro Yamada # ifndef STDC99 210221b1638SMasahiro Yamada # define STDC99 211221b1638SMasahiro Yamada # endif 212221b1638SMasahiro Yamada # endif 213221b1638SMasahiro Yamada #endif 214221b1638SMasahiro Yamada #if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) 215221b1638SMasahiro Yamada # define STDC 216221b1638SMasahiro Yamada #endif 217221b1638SMasahiro Yamada #if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) 218221b1638SMasahiro Yamada # define STDC 219221b1638SMasahiro Yamada #endif 220221b1638SMasahiro Yamada #if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) 221221b1638SMasahiro Yamada # define STDC 222221b1638SMasahiro Yamada #endif 223221b1638SMasahiro Yamada #if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) 224221b1638SMasahiro Yamada # define STDC 225221b1638SMasahiro Yamada #endif 226221b1638SMasahiro Yamada 227221b1638SMasahiro Yamada #if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ 228221b1638SMasahiro Yamada # define STDC 229221b1638SMasahiro Yamada #endif 230221b1638SMasahiro Yamada 231221b1638SMasahiro Yamada #ifndef STDC 232221b1638SMasahiro Yamada # ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 233221b1638SMasahiro Yamada # define const /* note: need a more gentle solution here */ 234221b1638SMasahiro Yamada # endif 235221b1638SMasahiro Yamada #endif 236221b1638SMasahiro Yamada 237221b1638SMasahiro Yamada #if defined(ZLIB_CONST) && !defined(z_const) 238221b1638SMasahiro Yamada # define z_const const 239221b1638SMasahiro Yamada #else 240221b1638SMasahiro Yamada # define z_const 241221b1638SMasahiro Yamada #endif 242221b1638SMasahiro Yamada 243221b1638SMasahiro Yamada #ifdef Z_SOLO 244*fd39217aSManish Pandey # ifdef _WIN64 245*fd39217aSManish Pandey typedef unsigned long long z_size_t; 246*fd39217aSManish Pandey # else 247221b1638SMasahiro Yamada typedef unsigned long z_size_t; 248*fd39217aSManish Pandey # endif 249221b1638SMasahiro Yamada #else 250221b1638SMasahiro Yamada # define z_longlong long long 251221b1638SMasahiro Yamada # if defined(NO_SIZE_T) 252221b1638SMasahiro Yamada typedef unsigned NO_SIZE_T z_size_t; 253221b1638SMasahiro Yamada # elif defined(STDC) 254221b1638SMasahiro Yamada # include <stddef.h> 255221b1638SMasahiro Yamada typedef size_t z_size_t; 256221b1638SMasahiro Yamada # else 257221b1638SMasahiro Yamada typedef unsigned long z_size_t; 258221b1638SMasahiro Yamada # endif 259221b1638SMasahiro Yamada # undef z_longlong 260221b1638SMasahiro Yamada #endif 261221b1638SMasahiro Yamada 262221b1638SMasahiro Yamada /* Maximum value for memLevel in deflateInit2 */ 263221b1638SMasahiro Yamada #ifndef MAX_MEM_LEVEL 264221b1638SMasahiro Yamada # ifdef MAXSEG_64K 265221b1638SMasahiro Yamada # define MAX_MEM_LEVEL 8 266221b1638SMasahiro Yamada # else 267221b1638SMasahiro Yamada # define MAX_MEM_LEVEL 9 268221b1638SMasahiro Yamada # endif 269221b1638SMasahiro Yamada #endif 270221b1638SMasahiro Yamada 271221b1638SMasahiro Yamada /* Maximum value for windowBits in deflateInit2 and inflateInit2. 272221b1638SMasahiro Yamada * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 273221b1638SMasahiro Yamada * created by gzip. (Files created by minigzip can still be extracted by 274221b1638SMasahiro Yamada * gzip.) 275221b1638SMasahiro Yamada */ 276221b1638SMasahiro Yamada #ifndef MAX_WBITS 277221b1638SMasahiro Yamada # define MAX_WBITS 15 /* 32K LZ77 window */ 278221b1638SMasahiro Yamada #endif 279221b1638SMasahiro Yamada 280221b1638SMasahiro Yamada /* The memory requirements for deflate are (in bytes): 281221b1638SMasahiro Yamada (1 << (windowBits+2)) + (1 << (memLevel+9)) 282221b1638SMasahiro Yamada that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 283221b1638SMasahiro Yamada plus a few kilobytes for small objects. For example, if you want to reduce 284221b1638SMasahiro Yamada the default memory requirements from 256K to 128K, compile with 285221b1638SMasahiro Yamada make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 286221b1638SMasahiro Yamada Of course this will generally degrade compression (there's no free lunch). 287221b1638SMasahiro Yamada 288221b1638SMasahiro Yamada The memory requirements for inflate are (in bytes) 1 << windowBits 289221b1638SMasahiro Yamada that is, 32K for windowBits=15 (default value) plus about 7 kilobytes 290221b1638SMasahiro Yamada for small objects. 291221b1638SMasahiro Yamada */ 292221b1638SMasahiro Yamada 293221b1638SMasahiro Yamada /* Type declarations */ 294221b1638SMasahiro Yamada 295221b1638SMasahiro Yamada #ifndef OF /* function prototypes */ 296221b1638SMasahiro Yamada # ifdef STDC 297221b1638SMasahiro Yamada # define OF(args) args 298221b1638SMasahiro Yamada # else 299221b1638SMasahiro Yamada # define OF(args) () 300221b1638SMasahiro Yamada # endif 301221b1638SMasahiro Yamada #endif 302221b1638SMasahiro Yamada 303221b1638SMasahiro Yamada #ifndef Z_ARG /* function prototypes for stdarg */ 304221b1638SMasahiro Yamada # if defined(STDC) || defined(Z_HAVE_STDARG_H) 305221b1638SMasahiro Yamada # define Z_ARG(args) args 306221b1638SMasahiro Yamada # else 307221b1638SMasahiro Yamada # define Z_ARG(args) () 308221b1638SMasahiro Yamada # endif 309221b1638SMasahiro Yamada #endif 310221b1638SMasahiro Yamada 311221b1638SMasahiro Yamada /* The following definitions for FAR are needed only for MSDOS mixed 312221b1638SMasahiro Yamada * model programming (small or medium model with some far allocations). 313221b1638SMasahiro Yamada * This was tested only with MSC; for other MSDOS compilers you may have 314221b1638SMasahiro Yamada * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 315221b1638SMasahiro Yamada * just define FAR to be empty. 316221b1638SMasahiro Yamada */ 317221b1638SMasahiro Yamada #ifdef SYS16BIT 318221b1638SMasahiro Yamada # if defined(M_I86SM) || defined(M_I86MM) 319221b1638SMasahiro Yamada /* MSC small or medium model */ 320221b1638SMasahiro Yamada # define SMALL_MEDIUM 321221b1638SMasahiro Yamada # ifdef _MSC_VER 322221b1638SMasahiro Yamada # define FAR _far 323221b1638SMasahiro Yamada # else 324221b1638SMasahiro Yamada # define FAR far 325221b1638SMasahiro Yamada # endif 326221b1638SMasahiro Yamada # endif 327221b1638SMasahiro Yamada # if (defined(__SMALL__) || defined(__MEDIUM__)) 328221b1638SMasahiro Yamada /* Turbo C small or medium model */ 329221b1638SMasahiro Yamada # define SMALL_MEDIUM 330221b1638SMasahiro Yamada # ifdef __BORLANDC__ 331221b1638SMasahiro Yamada # define FAR _far 332221b1638SMasahiro Yamada # else 333221b1638SMasahiro Yamada # define FAR far 334221b1638SMasahiro Yamada # endif 335221b1638SMasahiro Yamada # endif 336221b1638SMasahiro Yamada #endif 337221b1638SMasahiro Yamada 338221b1638SMasahiro Yamada #if defined(WINDOWS) || defined(WIN32) 339221b1638SMasahiro Yamada /* If building or using zlib as a DLL, define ZLIB_DLL. 340221b1638SMasahiro Yamada * This is not mandatory, but it offers a little performance increase. 341221b1638SMasahiro Yamada */ 342221b1638SMasahiro Yamada # ifdef ZLIB_DLL 343221b1638SMasahiro Yamada # if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 344221b1638SMasahiro Yamada # ifdef ZLIB_INTERNAL 345221b1638SMasahiro Yamada # define ZEXTERN extern __declspec(dllexport) 346221b1638SMasahiro Yamada # else 347221b1638SMasahiro Yamada # define ZEXTERN extern __declspec(dllimport) 348221b1638SMasahiro Yamada # endif 349221b1638SMasahiro Yamada # endif 350221b1638SMasahiro Yamada # endif /* ZLIB_DLL */ 351221b1638SMasahiro Yamada /* If building or using zlib with the WINAPI/WINAPIV calling convention, 352221b1638SMasahiro Yamada * define ZLIB_WINAPI. 353221b1638SMasahiro Yamada * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 354221b1638SMasahiro Yamada */ 355221b1638SMasahiro Yamada # ifdef ZLIB_WINAPI 356221b1638SMasahiro Yamada # ifdef FAR 357221b1638SMasahiro Yamada # undef FAR 358221b1638SMasahiro Yamada # endif 359a194255dSDaniel Boulby # ifndef WIN32_LEAN_AND_MEAN 360a194255dSDaniel Boulby # define WIN32_LEAN_AND_MEAN 361a194255dSDaniel Boulby # endif 362221b1638SMasahiro Yamada # include <windows.h> 363221b1638SMasahiro Yamada /* No need for _export, use ZLIB.DEF instead. */ 364221b1638SMasahiro Yamada /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 365221b1638SMasahiro Yamada # define ZEXPORT WINAPI 366221b1638SMasahiro Yamada # ifdef WIN32 367221b1638SMasahiro Yamada # define ZEXPORTVA WINAPIV 368221b1638SMasahiro Yamada # else 369221b1638SMasahiro Yamada # define ZEXPORTVA FAR CDECL 370221b1638SMasahiro Yamada # endif 371221b1638SMasahiro Yamada # endif 372221b1638SMasahiro Yamada #endif 373221b1638SMasahiro Yamada 374221b1638SMasahiro Yamada #if defined (__BEOS__) 375221b1638SMasahiro Yamada # ifdef ZLIB_DLL 376221b1638SMasahiro Yamada # ifdef ZLIB_INTERNAL 377221b1638SMasahiro Yamada # define ZEXPORT __declspec(dllexport) 378221b1638SMasahiro Yamada # define ZEXPORTVA __declspec(dllexport) 379221b1638SMasahiro Yamada # else 380221b1638SMasahiro Yamada # define ZEXPORT __declspec(dllimport) 381221b1638SMasahiro Yamada # define ZEXPORTVA __declspec(dllimport) 382221b1638SMasahiro Yamada # endif 383221b1638SMasahiro Yamada # endif 384221b1638SMasahiro Yamada #endif 385221b1638SMasahiro Yamada 386221b1638SMasahiro Yamada #ifndef ZEXTERN 387221b1638SMasahiro Yamada # define ZEXTERN extern 388221b1638SMasahiro Yamada #endif 389221b1638SMasahiro Yamada #ifndef ZEXPORT 390221b1638SMasahiro Yamada # define ZEXPORT 391221b1638SMasahiro Yamada #endif 392221b1638SMasahiro Yamada #ifndef ZEXPORTVA 393221b1638SMasahiro Yamada # define ZEXPORTVA 394221b1638SMasahiro Yamada #endif 395221b1638SMasahiro Yamada 396221b1638SMasahiro Yamada #ifndef FAR 397221b1638SMasahiro Yamada # define FAR 398221b1638SMasahiro Yamada #endif 399221b1638SMasahiro Yamada 400221b1638SMasahiro Yamada #if !defined(__MACTYPES__) 401221b1638SMasahiro Yamada typedef unsigned char Byte; /* 8 bits */ 402221b1638SMasahiro Yamada #endif 403221b1638SMasahiro Yamada typedef unsigned int uInt; /* 16 bits or more */ 404221b1638SMasahiro Yamada typedef unsigned long uLong; /* 32 bits or more */ 405221b1638SMasahiro Yamada 406221b1638SMasahiro Yamada #ifdef SMALL_MEDIUM 407221b1638SMasahiro Yamada /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 408221b1638SMasahiro Yamada # define Bytef Byte FAR 409221b1638SMasahiro Yamada #else 410221b1638SMasahiro Yamada typedef Byte FAR Bytef; 411221b1638SMasahiro Yamada #endif 412221b1638SMasahiro Yamada typedef char FAR charf; 413221b1638SMasahiro Yamada typedef int FAR intf; 414221b1638SMasahiro Yamada typedef uInt FAR uIntf; 415221b1638SMasahiro Yamada typedef uLong FAR uLongf; 416221b1638SMasahiro Yamada 417221b1638SMasahiro Yamada #ifdef STDC 418221b1638SMasahiro Yamada typedef void const *voidpc; 419221b1638SMasahiro Yamada typedef void FAR *voidpf; 420221b1638SMasahiro Yamada typedef void *voidp; 421221b1638SMasahiro Yamada #else 422221b1638SMasahiro Yamada typedef Byte const *voidpc; 423221b1638SMasahiro Yamada typedef Byte FAR *voidpf; 424221b1638SMasahiro Yamada typedef Byte *voidp; 425221b1638SMasahiro Yamada #endif 426221b1638SMasahiro Yamada 427221b1638SMasahiro Yamada #if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) 428221b1638SMasahiro Yamada # include <limits.h> 429221b1638SMasahiro Yamada # if (UINT_MAX == 0xffffffffUL) 430221b1638SMasahiro Yamada # define Z_U4 unsigned 431221b1638SMasahiro Yamada # elif (ULONG_MAX == 0xffffffffUL) 432221b1638SMasahiro Yamada # define Z_U4 unsigned long 433221b1638SMasahiro Yamada # elif (USHRT_MAX == 0xffffffffUL) 434221b1638SMasahiro Yamada # define Z_U4 unsigned short 435221b1638SMasahiro Yamada # endif 436221b1638SMasahiro Yamada #endif 437221b1638SMasahiro Yamada 438221b1638SMasahiro Yamada #ifdef Z_U4 439221b1638SMasahiro Yamada typedef Z_U4 z_crc_t; 440221b1638SMasahiro Yamada #else 441221b1638SMasahiro Yamada typedef unsigned long z_crc_t; 442221b1638SMasahiro Yamada #endif 443221b1638SMasahiro Yamada 444221b1638SMasahiro Yamada #ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ 445221b1638SMasahiro Yamada # define Z_HAVE_UNISTD_H 446221b1638SMasahiro Yamada #endif 447221b1638SMasahiro Yamada 448221b1638SMasahiro Yamada #ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ 449221b1638SMasahiro Yamada # define Z_HAVE_STDARG_H 450221b1638SMasahiro Yamada #endif 451221b1638SMasahiro Yamada 452221b1638SMasahiro Yamada #ifdef STDC 453221b1638SMasahiro Yamada # ifndef Z_SOLO 454221b1638SMasahiro Yamada # include <sys/types.h> /* for off_t */ 455221b1638SMasahiro Yamada # endif 456221b1638SMasahiro Yamada #endif 457221b1638SMasahiro Yamada 458221b1638SMasahiro Yamada #if defined(STDC) || defined(Z_HAVE_STDARG_H) 459221b1638SMasahiro Yamada # ifndef Z_SOLO 460221b1638SMasahiro Yamada # include <stdarg.h> /* for va_list */ 461221b1638SMasahiro Yamada # endif 462221b1638SMasahiro Yamada #endif 463221b1638SMasahiro Yamada 464221b1638SMasahiro Yamada #ifdef _WIN32 465221b1638SMasahiro Yamada # ifndef Z_SOLO 466221b1638SMasahiro Yamada # include <stddef.h> /* for wchar_t */ 467221b1638SMasahiro Yamada # endif 468221b1638SMasahiro Yamada #endif 469221b1638SMasahiro Yamada 470221b1638SMasahiro Yamada /* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and 471221b1638SMasahiro Yamada * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even 472221b1638SMasahiro Yamada * though the former does not conform to the LFS document), but considering 473221b1638SMasahiro Yamada * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as 474221b1638SMasahiro Yamada * equivalently requesting no 64-bit operations 475221b1638SMasahiro Yamada */ 476221b1638SMasahiro Yamada #if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 477221b1638SMasahiro Yamada # undef _LARGEFILE64_SOURCE 478221b1638SMasahiro Yamada #endif 479221b1638SMasahiro Yamada 480a194255dSDaniel Boulby #ifndef Z_HAVE_UNISTD_H 481a194255dSDaniel Boulby # ifdef __WATCOMC__ 482221b1638SMasahiro Yamada # define Z_HAVE_UNISTD_H 483221b1638SMasahiro Yamada # endif 484a194255dSDaniel Boulby #endif 485a194255dSDaniel Boulby #ifndef Z_HAVE_UNISTD_H 486a194255dSDaniel Boulby # if defined(_LARGEFILE64_SOURCE) && !defined(_WIN32) 487a194255dSDaniel Boulby # define Z_HAVE_UNISTD_H 488a194255dSDaniel Boulby # endif 489a194255dSDaniel Boulby #endif 490221b1638SMasahiro Yamada #ifndef Z_SOLO 491a194255dSDaniel Boulby # if defined(Z_HAVE_UNISTD_H) 492221b1638SMasahiro Yamada # include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ 493221b1638SMasahiro Yamada # ifdef VMS 494221b1638SMasahiro Yamada # include <unixio.h> /* for off_t */ 495221b1638SMasahiro Yamada # endif 496221b1638SMasahiro Yamada # ifndef z_off_t 497221b1638SMasahiro Yamada # define z_off_t off_t 498221b1638SMasahiro Yamada # endif 499221b1638SMasahiro Yamada # endif 500221b1638SMasahiro Yamada #endif 501221b1638SMasahiro Yamada 502221b1638SMasahiro Yamada #if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 503221b1638SMasahiro Yamada # define Z_LFS64 504221b1638SMasahiro Yamada #endif 505221b1638SMasahiro Yamada 506221b1638SMasahiro Yamada #if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) 507221b1638SMasahiro Yamada # define Z_LARGE64 508221b1638SMasahiro Yamada #endif 509221b1638SMasahiro Yamada 510221b1638SMasahiro Yamada #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) 511221b1638SMasahiro Yamada # define Z_WANT64 512221b1638SMasahiro Yamada #endif 513221b1638SMasahiro Yamada 514221b1638SMasahiro Yamada #if !defined(SEEK_SET) && !defined(Z_SOLO) 515221b1638SMasahiro Yamada # define SEEK_SET 0 /* Seek from beginning of file. */ 516221b1638SMasahiro Yamada # define SEEK_CUR 1 /* Seek from current position. */ 517221b1638SMasahiro Yamada # define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 518221b1638SMasahiro Yamada #endif 519221b1638SMasahiro Yamada 520221b1638SMasahiro Yamada #ifndef z_off_t 521221b1638SMasahiro Yamada # define z_off_t long 522221b1638SMasahiro Yamada #endif 523221b1638SMasahiro Yamada 524221b1638SMasahiro Yamada #if !defined(_WIN32) && defined(Z_LARGE64) 525221b1638SMasahiro Yamada # define z_off64_t off64_t 526221b1638SMasahiro Yamada #else 527*fd39217aSManish Pandey # if defined(_WIN32) && !defined(__GNUC__) 528221b1638SMasahiro Yamada # define z_off64_t __int64 529221b1638SMasahiro Yamada # else 530221b1638SMasahiro Yamada # define z_off64_t z_off_t 531221b1638SMasahiro Yamada # endif 532221b1638SMasahiro Yamada #endif 533221b1638SMasahiro Yamada 534221b1638SMasahiro Yamada /* MVS linker does not support external names larger than 8 bytes */ 535221b1638SMasahiro Yamada #if defined(__MVS__) 536221b1638SMasahiro Yamada #pragma map(deflateInit_,"DEIN") 537221b1638SMasahiro Yamada #pragma map(deflateInit2_,"DEIN2") 538221b1638SMasahiro Yamada #pragma map(deflateEnd,"DEEND") 539221b1638SMasahiro Yamada #pragma map(deflateBound,"DEBND") 540221b1638SMasahiro Yamada #pragma map(inflateInit_,"ININ") 541221b1638SMasahiro Yamada #pragma map(inflateInit2_,"ININ2") 542221b1638SMasahiro Yamada #pragma map(inflateEnd,"INEND") 543221b1638SMasahiro Yamada #pragma map(inflateSync,"INSY") 544221b1638SMasahiro Yamada #pragma map(inflateSetDictionary,"INSEDI") 545221b1638SMasahiro Yamada #pragma map(compressBound,"CMBND") 546221b1638SMasahiro Yamada #pragma map(inflate_table,"INTABL") 547221b1638SMasahiro Yamada #pragma map(inflate_fast,"INFA") 548221b1638SMasahiro Yamada #pragma map(inflate_copyright,"INCOPY") 549221b1638SMasahiro Yamada #endif 550221b1638SMasahiro Yamada 551221b1638SMasahiro Yamada #endif /* ZCONF_H */ 552