1221b1638SMasahiro Yamada /* zconf.h -- configuration of the zlib compression library 2*a8c877cbSChris Kay * Copyright (C) 1995-2024 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 62*a8c877cbSChris Kay # define deflateUsed z_deflateUsed 63221b1638SMasahiro Yamada # define deflate_copyright z_deflate_copyright 64221b1638SMasahiro Yamada # define get_crc_table z_get_crc_table 65221b1638SMasahiro Yamada # ifndef Z_SOLO 66221b1638SMasahiro Yamada # define gz_error z_gz_error 67221b1638SMasahiro Yamada # define gz_intmax z_gz_intmax 68221b1638SMasahiro Yamada # define gz_strwinerror z_gz_strwinerror 69221b1638SMasahiro Yamada # define gzbuffer z_gzbuffer 70221b1638SMasahiro Yamada # define gzclearerr z_gzclearerr 71221b1638SMasahiro Yamada # define gzclose z_gzclose 72221b1638SMasahiro Yamada # define gzclose_r z_gzclose_r 73221b1638SMasahiro Yamada # define gzclose_w z_gzclose_w 74221b1638SMasahiro Yamada # define gzdirect z_gzdirect 75221b1638SMasahiro Yamada # define gzdopen z_gzdopen 76221b1638SMasahiro Yamada # define gzeof z_gzeof 77221b1638SMasahiro Yamada # define gzerror z_gzerror 78221b1638SMasahiro Yamada # define gzflush z_gzflush 79221b1638SMasahiro Yamada # define gzfread z_gzfread 80221b1638SMasahiro Yamada # define gzfwrite z_gzfwrite 81221b1638SMasahiro Yamada # define gzgetc z_gzgetc 82221b1638SMasahiro Yamada # define gzgetc_ z_gzgetc_ 83221b1638SMasahiro Yamada # define gzgets z_gzgets 84221b1638SMasahiro Yamada # define gzoffset z_gzoffset 85221b1638SMasahiro Yamada # define gzoffset64 z_gzoffset64 86221b1638SMasahiro Yamada # define gzopen z_gzopen 87221b1638SMasahiro Yamada # define gzopen64 z_gzopen64 88221b1638SMasahiro Yamada # ifdef _WIN32 89221b1638SMasahiro Yamada # define gzopen_w z_gzopen_w 90221b1638SMasahiro Yamada # endif 91221b1638SMasahiro Yamada # define gzprintf z_gzprintf 92221b1638SMasahiro Yamada # define gzputc z_gzputc 93221b1638SMasahiro Yamada # define gzputs z_gzputs 94221b1638SMasahiro Yamada # define gzread z_gzread 95221b1638SMasahiro Yamada # define gzrewind z_gzrewind 96221b1638SMasahiro Yamada # define gzseek z_gzseek 97221b1638SMasahiro Yamada # define gzseek64 z_gzseek64 98221b1638SMasahiro Yamada # define gzsetparams z_gzsetparams 99221b1638SMasahiro Yamada # define gztell z_gztell 100221b1638SMasahiro Yamada # define gztell64 z_gztell64 101221b1638SMasahiro Yamada # define gzungetc z_gzungetc 102221b1638SMasahiro Yamada # define gzvprintf z_gzvprintf 103221b1638SMasahiro Yamada # define gzwrite z_gzwrite 104221b1638SMasahiro Yamada # endif 105221b1638SMasahiro Yamada # define inflate z_inflate 106221b1638SMasahiro Yamada # define inflateBack z_inflateBack 107221b1638SMasahiro Yamada # define inflateBackEnd z_inflateBackEnd 108221b1638SMasahiro Yamada # define inflateBackInit z_inflateBackInit 109221b1638SMasahiro Yamada # define inflateBackInit_ z_inflateBackInit_ 110221b1638SMasahiro Yamada # define inflateCodesUsed z_inflateCodesUsed 111221b1638SMasahiro Yamada # define inflateCopy z_inflateCopy 112221b1638SMasahiro Yamada # define inflateEnd z_inflateEnd 113221b1638SMasahiro Yamada # define inflateGetDictionary z_inflateGetDictionary 114221b1638SMasahiro Yamada # define inflateGetHeader z_inflateGetHeader 115221b1638SMasahiro Yamada # define inflateInit z_inflateInit 116221b1638SMasahiro Yamada # define inflateInit2 z_inflateInit2 117221b1638SMasahiro Yamada # define inflateInit2_ z_inflateInit2_ 118221b1638SMasahiro Yamada # define inflateInit_ z_inflateInit_ 119221b1638SMasahiro Yamada # define inflateMark z_inflateMark 120221b1638SMasahiro Yamada # define inflatePrime z_inflatePrime 121221b1638SMasahiro Yamada # define inflateReset z_inflateReset 122221b1638SMasahiro Yamada # define inflateReset2 z_inflateReset2 123221b1638SMasahiro Yamada # define inflateResetKeep z_inflateResetKeep 124221b1638SMasahiro Yamada # define inflateSetDictionary z_inflateSetDictionary 125221b1638SMasahiro Yamada # define inflateSync z_inflateSync 126221b1638SMasahiro Yamada # define inflateSyncPoint z_inflateSyncPoint 127221b1638SMasahiro Yamada # define inflateUndermine z_inflateUndermine 128221b1638SMasahiro Yamada # define inflateValidate z_inflateValidate 129221b1638SMasahiro Yamada # define inflate_copyright z_inflate_copyright 130221b1638SMasahiro Yamada # define inflate_fast z_inflate_fast 131221b1638SMasahiro Yamada # define inflate_table z_inflate_table 132221b1638SMasahiro Yamada # ifndef Z_SOLO 133221b1638SMasahiro Yamada # define uncompress z_uncompress 134221b1638SMasahiro Yamada # define uncompress2 z_uncompress2 135221b1638SMasahiro Yamada # endif 136221b1638SMasahiro Yamada # define zError z_zError 137221b1638SMasahiro Yamada # ifndef Z_SOLO 138221b1638SMasahiro Yamada # define zcalloc z_zcalloc 139221b1638SMasahiro Yamada # define zcfree z_zcfree 140221b1638SMasahiro Yamada # endif 141221b1638SMasahiro Yamada # define zlibCompileFlags z_zlibCompileFlags 142221b1638SMasahiro Yamada # define zlibVersion z_zlibVersion 143221b1638SMasahiro Yamada 144221b1638SMasahiro Yamada /* all zlib typedefs in zlib.h and zconf.h */ 145221b1638SMasahiro Yamada # define Byte z_Byte 146221b1638SMasahiro Yamada # define Bytef z_Bytef 147221b1638SMasahiro Yamada # define alloc_func z_alloc_func 148221b1638SMasahiro Yamada # define charf z_charf 149221b1638SMasahiro Yamada # define free_func z_free_func 150221b1638SMasahiro Yamada # ifndef Z_SOLO 151221b1638SMasahiro Yamada # define gzFile z_gzFile 152221b1638SMasahiro Yamada # endif 153221b1638SMasahiro Yamada # define gz_header z_gz_header 154221b1638SMasahiro Yamada # define gz_headerp z_gz_headerp 155221b1638SMasahiro Yamada # define in_func z_in_func 156221b1638SMasahiro Yamada # define intf z_intf 157221b1638SMasahiro Yamada # define out_func z_out_func 158221b1638SMasahiro Yamada # define uInt z_uInt 159221b1638SMasahiro Yamada # define uIntf z_uIntf 160221b1638SMasahiro Yamada # define uLong z_uLong 161221b1638SMasahiro Yamada # define uLongf z_uLongf 162221b1638SMasahiro Yamada # define voidp z_voidp 163221b1638SMasahiro Yamada # define voidpc z_voidpc 164221b1638SMasahiro Yamada # define voidpf z_voidpf 165221b1638SMasahiro Yamada 166221b1638SMasahiro Yamada /* all zlib structs in zlib.h and zconf.h */ 167221b1638SMasahiro Yamada # define gz_header_s z_gz_header_s 168221b1638SMasahiro Yamada # define internal_state z_internal_state 169221b1638SMasahiro Yamada 170221b1638SMasahiro Yamada #endif 171221b1638SMasahiro Yamada 172221b1638SMasahiro Yamada #if defined(__MSDOS__) && !defined(MSDOS) 173221b1638SMasahiro Yamada # define MSDOS 174221b1638SMasahiro Yamada #endif 175221b1638SMasahiro Yamada #if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) 176221b1638SMasahiro Yamada # define OS2 177221b1638SMasahiro Yamada #endif 178221b1638SMasahiro Yamada #if defined(_WINDOWS) && !defined(WINDOWS) 179221b1638SMasahiro Yamada # define WINDOWS 180221b1638SMasahiro Yamada #endif 181221b1638SMasahiro Yamada #if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) 182221b1638SMasahiro Yamada # ifndef WIN32 183221b1638SMasahiro Yamada # define WIN32 184221b1638SMasahiro Yamada # endif 185221b1638SMasahiro Yamada #endif 186221b1638SMasahiro Yamada #if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) 187221b1638SMasahiro Yamada # if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) 188221b1638SMasahiro Yamada # ifndef SYS16BIT 189221b1638SMasahiro Yamada # define SYS16BIT 190221b1638SMasahiro Yamada # endif 191221b1638SMasahiro Yamada # endif 192221b1638SMasahiro Yamada #endif 193221b1638SMasahiro Yamada 194221b1638SMasahiro Yamada /* 195221b1638SMasahiro Yamada * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 196221b1638SMasahiro Yamada * than 64k bytes at a time (needed on systems with 16-bit int). 197221b1638SMasahiro Yamada */ 198221b1638SMasahiro Yamada #ifdef SYS16BIT 199221b1638SMasahiro Yamada # define MAXSEG_64K 200221b1638SMasahiro Yamada #endif 201221b1638SMasahiro Yamada #ifdef MSDOS 202221b1638SMasahiro Yamada # define UNALIGNED_OK 203221b1638SMasahiro Yamada #endif 204221b1638SMasahiro Yamada 205221b1638SMasahiro Yamada #ifdef __STDC_VERSION__ 206221b1638SMasahiro Yamada # ifndef STDC 207221b1638SMasahiro Yamada # define STDC 208221b1638SMasahiro Yamada # endif 209221b1638SMasahiro Yamada # if __STDC_VERSION__ >= 199901L 210221b1638SMasahiro Yamada # ifndef STDC99 211221b1638SMasahiro Yamada # define STDC99 212221b1638SMasahiro Yamada # endif 213221b1638SMasahiro Yamada # endif 214221b1638SMasahiro Yamada #endif 215221b1638SMasahiro Yamada #if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) 216221b1638SMasahiro Yamada # define STDC 217221b1638SMasahiro Yamada #endif 218221b1638SMasahiro Yamada #if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) 219221b1638SMasahiro Yamada # define STDC 220221b1638SMasahiro Yamada #endif 221221b1638SMasahiro Yamada #if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) 222221b1638SMasahiro Yamada # define STDC 223221b1638SMasahiro Yamada #endif 224221b1638SMasahiro Yamada #if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) 225221b1638SMasahiro Yamada # define STDC 226221b1638SMasahiro Yamada #endif 227221b1638SMasahiro Yamada 228221b1638SMasahiro Yamada #if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ 229221b1638SMasahiro Yamada # define STDC 230221b1638SMasahiro Yamada #endif 231221b1638SMasahiro Yamada 232221b1638SMasahiro Yamada #ifndef STDC 233221b1638SMasahiro Yamada # ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 234221b1638SMasahiro Yamada # define const /* note: need a more gentle solution here */ 235221b1638SMasahiro Yamada # endif 236221b1638SMasahiro Yamada #endif 237221b1638SMasahiro Yamada 238*a8c877cbSChris Kay #ifndef z_const 239*a8c877cbSChris Kay # ifdef ZLIB_CONST 240221b1638SMasahiro Yamada # define z_const const 241221b1638SMasahiro Yamada # else 242221b1638SMasahiro Yamada # define z_const 243221b1638SMasahiro Yamada # endif 244*a8c877cbSChris Kay #endif 245221b1638SMasahiro Yamada 246221b1638SMasahiro Yamada #ifdef Z_SOLO 247fd39217aSManish Pandey # ifdef _WIN64 248fd39217aSManish Pandey typedef unsigned long long z_size_t; 249fd39217aSManish Pandey # else 250221b1638SMasahiro Yamada typedef unsigned long z_size_t; 251fd39217aSManish Pandey # endif 252221b1638SMasahiro Yamada #else 253221b1638SMasahiro Yamada # define z_longlong long long 254221b1638SMasahiro Yamada # if defined(NO_SIZE_T) 255221b1638SMasahiro Yamada typedef unsigned NO_SIZE_T z_size_t; 256221b1638SMasahiro Yamada # elif defined(STDC) 257221b1638SMasahiro Yamada # include <stddef.h> 258221b1638SMasahiro Yamada typedef size_t z_size_t; 259221b1638SMasahiro Yamada # else 260221b1638SMasahiro Yamada typedef unsigned long z_size_t; 261221b1638SMasahiro Yamada # endif 262221b1638SMasahiro Yamada # undef z_longlong 263221b1638SMasahiro Yamada #endif 264221b1638SMasahiro Yamada 265221b1638SMasahiro Yamada /* Maximum value for memLevel in deflateInit2 */ 266221b1638SMasahiro Yamada #ifndef MAX_MEM_LEVEL 267221b1638SMasahiro Yamada # ifdef MAXSEG_64K 268221b1638SMasahiro Yamada # define MAX_MEM_LEVEL 8 269221b1638SMasahiro Yamada # else 270221b1638SMasahiro Yamada # define MAX_MEM_LEVEL 9 271221b1638SMasahiro Yamada # endif 272221b1638SMasahiro Yamada #endif 273221b1638SMasahiro Yamada 274221b1638SMasahiro Yamada /* Maximum value for windowBits in deflateInit2 and inflateInit2. 275221b1638SMasahiro Yamada * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 276221b1638SMasahiro Yamada * created by gzip. (Files created by minigzip can still be extracted by 277221b1638SMasahiro Yamada * gzip.) 278221b1638SMasahiro Yamada */ 279221b1638SMasahiro Yamada #ifndef MAX_WBITS 280221b1638SMasahiro Yamada # define MAX_WBITS 15 /* 32K LZ77 window */ 281221b1638SMasahiro Yamada #endif 282221b1638SMasahiro Yamada 283221b1638SMasahiro Yamada /* The memory requirements for deflate are (in bytes): 284221b1638SMasahiro Yamada (1 << (windowBits+2)) + (1 << (memLevel+9)) 285221b1638SMasahiro Yamada that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 286221b1638SMasahiro Yamada plus a few kilobytes for small objects. For example, if you want to reduce 287221b1638SMasahiro Yamada the default memory requirements from 256K to 128K, compile with 288221b1638SMasahiro Yamada make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 289221b1638SMasahiro Yamada Of course this will generally degrade compression (there's no free lunch). 290221b1638SMasahiro Yamada 291221b1638SMasahiro Yamada The memory requirements for inflate are (in bytes) 1 << windowBits 292221b1638SMasahiro Yamada that is, 32K for windowBits=15 (default value) plus about 7 kilobytes 293221b1638SMasahiro Yamada for small objects. 294221b1638SMasahiro Yamada */ 295221b1638SMasahiro Yamada 296221b1638SMasahiro Yamada /* Type declarations */ 297221b1638SMasahiro Yamada 298221b1638SMasahiro Yamada #ifndef OF /* function prototypes */ 299221b1638SMasahiro Yamada # ifdef STDC 300221b1638SMasahiro Yamada # define OF(args) args 301221b1638SMasahiro Yamada # else 302221b1638SMasahiro Yamada # define OF(args) () 303221b1638SMasahiro Yamada # endif 304221b1638SMasahiro Yamada #endif 305221b1638SMasahiro Yamada 306221b1638SMasahiro Yamada /* The following definitions for FAR are needed only for MSDOS mixed 307221b1638SMasahiro Yamada * model programming (small or medium model with some far allocations). 308221b1638SMasahiro Yamada * This was tested only with MSC; for other MSDOS compilers you may have 309221b1638SMasahiro Yamada * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 310221b1638SMasahiro Yamada * just define FAR to be empty. 311221b1638SMasahiro Yamada */ 312221b1638SMasahiro Yamada #ifdef SYS16BIT 313221b1638SMasahiro Yamada # if defined(M_I86SM) || defined(M_I86MM) 314221b1638SMasahiro Yamada /* MSC small or medium model */ 315221b1638SMasahiro Yamada # define SMALL_MEDIUM 316221b1638SMasahiro Yamada # ifdef _MSC_VER 317221b1638SMasahiro Yamada # define FAR _far 318221b1638SMasahiro Yamada # else 319221b1638SMasahiro Yamada # define FAR far 320221b1638SMasahiro Yamada # endif 321221b1638SMasahiro Yamada # endif 322221b1638SMasahiro Yamada # if (defined(__SMALL__) || defined(__MEDIUM__)) 323221b1638SMasahiro Yamada /* Turbo C small or medium model */ 324221b1638SMasahiro Yamada # define SMALL_MEDIUM 325221b1638SMasahiro Yamada # ifdef __BORLANDC__ 326221b1638SMasahiro Yamada # define FAR _far 327221b1638SMasahiro Yamada # else 328221b1638SMasahiro Yamada # define FAR far 329221b1638SMasahiro Yamada # endif 330221b1638SMasahiro Yamada # endif 331221b1638SMasahiro Yamada #endif 332221b1638SMasahiro Yamada 333221b1638SMasahiro Yamada #if defined(WINDOWS) || defined(WIN32) 334221b1638SMasahiro Yamada /* If building or using zlib as a DLL, define ZLIB_DLL. 335221b1638SMasahiro Yamada * This is not mandatory, but it offers a little performance increase. 336221b1638SMasahiro Yamada */ 337221b1638SMasahiro Yamada # ifdef ZLIB_DLL 338221b1638SMasahiro Yamada # if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 339221b1638SMasahiro Yamada # ifdef ZLIB_INTERNAL 340221b1638SMasahiro Yamada # define ZEXTERN extern __declspec(dllexport) 341221b1638SMasahiro Yamada # else 342221b1638SMasahiro Yamada # define ZEXTERN extern __declspec(dllimport) 343221b1638SMasahiro Yamada # endif 344221b1638SMasahiro Yamada # endif 345221b1638SMasahiro Yamada # endif /* ZLIB_DLL */ 346221b1638SMasahiro Yamada /* If building or using zlib with the WINAPI/WINAPIV calling convention, 347221b1638SMasahiro Yamada * define ZLIB_WINAPI. 348221b1638SMasahiro Yamada * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 349221b1638SMasahiro Yamada */ 350221b1638SMasahiro Yamada # ifdef ZLIB_WINAPI 351221b1638SMasahiro Yamada # ifdef FAR 352221b1638SMasahiro Yamada # undef FAR 353221b1638SMasahiro Yamada # endif 354a194255dSDaniel Boulby # ifndef WIN32_LEAN_AND_MEAN 355a194255dSDaniel Boulby # define WIN32_LEAN_AND_MEAN 356a194255dSDaniel Boulby # endif 357221b1638SMasahiro Yamada # include <windows.h> 358221b1638SMasahiro Yamada /* No need for _export, use ZLIB.DEF instead. */ 359221b1638SMasahiro Yamada /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 360221b1638SMasahiro Yamada # define ZEXPORT WINAPI 361221b1638SMasahiro Yamada # ifdef WIN32 362221b1638SMasahiro Yamada # define ZEXPORTVA WINAPIV 363221b1638SMasahiro Yamada # else 364221b1638SMasahiro Yamada # define ZEXPORTVA FAR CDECL 365221b1638SMasahiro Yamada # endif 366221b1638SMasahiro Yamada # endif 367221b1638SMasahiro Yamada #endif 368221b1638SMasahiro Yamada 369221b1638SMasahiro Yamada #if defined (__BEOS__) 370221b1638SMasahiro Yamada # ifdef ZLIB_DLL 371221b1638SMasahiro Yamada # ifdef ZLIB_INTERNAL 372221b1638SMasahiro Yamada # define ZEXPORT __declspec(dllexport) 373221b1638SMasahiro Yamada # define ZEXPORTVA __declspec(dllexport) 374221b1638SMasahiro Yamada # else 375221b1638SMasahiro Yamada # define ZEXPORT __declspec(dllimport) 376221b1638SMasahiro Yamada # define ZEXPORTVA __declspec(dllimport) 377221b1638SMasahiro Yamada # endif 378221b1638SMasahiro Yamada # endif 379221b1638SMasahiro Yamada #endif 380221b1638SMasahiro Yamada 381221b1638SMasahiro Yamada #ifndef ZEXTERN 382221b1638SMasahiro Yamada # define ZEXTERN extern 383221b1638SMasahiro Yamada #endif 384221b1638SMasahiro Yamada #ifndef ZEXPORT 385221b1638SMasahiro Yamada # define ZEXPORT 386221b1638SMasahiro Yamada #endif 387221b1638SMasahiro Yamada #ifndef ZEXPORTVA 388221b1638SMasahiro Yamada # define ZEXPORTVA 389221b1638SMasahiro Yamada #endif 390221b1638SMasahiro Yamada 391221b1638SMasahiro Yamada #ifndef FAR 392221b1638SMasahiro Yamada # define FAR 393221b1638SMasahiro Yamada #endif 394221b1638SMasahiro Yamada 395221b1638SMasahiro Yamada #if !defined(__MACTYPES__) 396221b1638SMasahiro Yamada typedef unsigned char Byte; /* 8 bits */ 397221b1638SMasahiro Yamada #endif 398221b1638SMasahiro Yamada typedef unsigned int uInt; /* 16 bits or more */ 399221b1638SMasahiro Yamada typedef unsigned long uLong; /* 32 bits or more */ 400221b1638SMasahiro Yamada 401221b1638SMasahiro Yamada #ifdef SMALL_MEDIUM 402221b1638SMasahiro Yamada /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 403221b1638SMasahiro Yamada # define Bytef Byte FAR 404221b1638SMasahiro Yamada #else 405221b1638SMasahiro Yamada typedef Byte FAR Bytef; 406221b1638SMasahiro Yamada #endif 407221b1638SMasahiro Yamada typedef char FAR charf; 408221b1638SMasahiro Yamada typedef int FAR intf; 409221b1638SMasahiro Yamada typedef uInt FAR uIntf; 410221b1638SMasahiro Yamada typedef uLong FAR uLongf; 411221b1638SMasahiro Yamada 412221b1638SMasahiro Yamada #ifdef STDC 413221b1638SMasahiro Yamada typedef void const *voidpc; 414221b1638SMasahiro Yamada typedef void FAR *voidpf; 415221b1638SMasahiro Yamada typedef void *voidp; 416221b1638SMasahiro Yamada #else 417221b1638SMasahiro Yamada typedef Byte const *voidpc; 418221b1638SMasahiro Yamada typedef Byte FAR *voidpf; 419221b1638SMasahiro Yamada typedef Byte *voidp; 420221b1638SMasahiro Yamada #endif 421221b1638SMasahiro Yamada 422221b1638SMasahiro Yamada #if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC) 423221b1638SMasahiro Yamada # include <limits.h> 424221b1638SMasahiro Yamada # if (UINT_MAX == 0xffffffffUL) 425221b1638SMasahiro Yamada # define Z_U4 unsigned 426221b1638SMasahiro Yamada # elif (ULONG_MAX == 0xffffffffUL) 427221b1638SMasahiro Yamada # define Z_U4 unsigned long 428221b1638SMasahiro Yamada # elif (USHRT_MAX == 0xffffffffUL) 429221b1638SMasahiro Yamada # define Z_U4 unsigned short 430221b1638SMasahiro Yamada # endif 431221b1638SMasahiro Yamada #endif 432221b1638SMasahiro Yamada 433221b1638SMasahiro Yamada #ifdef Z_U4 434221b1638SMasahiro Yamada typedef Z_U4 z_crc_t; 435221b1638SMasahiro Yamada #else 436221b1638SMasahiro Yamada typedef unsigned long z_crc_t; 437221b1638SMasahiro Yamada #endif 438221b1638SMasahiro Yamada 439*a8c877cbSChris Kay #if HAVE_UNISTD_H-0 /* may be set to #if 1 by ./configure */ 440221b1638SMasahiro Yamada # define Z_HAVE_UNISTD_H 441221b1638SMasahiro Yamada #endif 442221b1638SMasahiro Yamada 443*a8c877cbSChris Kay #if HAVE_STDARG_H-0 /* may be set to #if 1 by ./configure */ 444221b1638SMasahiro Yamada # define Z_HAVE_STDARG_H 445221b1638SMasahiro Yamada #endif 446221b1638SMasahiro Yamada 447221b1638SMasahiro Yamada #ifdef STDC 448221b1638SMasahiro Yamada # ifndef Z_SOLO 449221b1638SMasahiro Yamada # include <sys/types.h> /* for off_t */ 450221b1638SMasahiro Yamada # endif 451221b1638SMasahiro Yamada #endif 452221b1638SMasahiro Yamada 453221b1638SMasahiro Yamada #if defined(STDC) || defined(Z_HAVE_STDARG_H) 454221b1638SMasahiro Yamada # ifndef Z_SOLO 455221b1638SMasahiro Yamada # include <stdarg.h> /* for va_list */ 456221b1638SMasahiro Yamada # endif 457221b1638SMasahiro Yamada #endif 458221b1638SMasahiro Yamada 459221b1638SMasahiro Yamada #ifdef _WIN32 460221b1638SMasahiro Yamada # ifndef Z_SOLO 461221b1638SMasahiro Yamada # include <stddef.h> /* for wchar_t */ 462221b1638SMasahiro Yamada # endif 463221b1638SMasahiro Yamada #endif 464221b1638SMasahiro Yamada 465221b1638SMasahiro Yamada /* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and 466221b1638SMasahiro Yamada * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even 467221b1638SMasahiro Yamada * though the former does not conform to the LFS document), but considering 468221b1638SMasahiro Yamada * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as 469221b1638SMasahiro Yamada * equivalently requesting no 64-bit operations 470221b1638SMasahiro Yamada */ 471221b1638SMasahiro Yamada #if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1 472221b1638SMasahiro Yamada # undef _LARGEFILE64_SOURCE 473221b1638SMasahiro Yamada #endif 474221b1638SMasahiro Yamada 475a194255dSDaniel Boulby #ifndef Z_HAVE_UNISTD_H 476*a8c877cbSChris Kay # if defined(__WATCOMC__) || defined(__GO32__) || \ 477*a8c877cbSChris Kay (defined(_LARGEFILE64_SOURCE) && !defined(_WIN32)) 478a194255dSDaniel Boulby # define Z_HAVE_UNISTD_H 479a194255dSDaniel Boulby # endif 480a194255dSDaniel Boulby #endif 481221b1638SMasahiro Yamada #ifndef Z_SOLO 482a194255dSDaniel Boulby # if defined(Z_HAVE_UNISTD_H) 483221b1638SMasahiro Yamada # include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */ 484221b1638SMasahiro Yamada # ifdef VMS 485221b1638SMasahiro Yamada # include <unixio.h> /* for off_t */ 486221b1638SMasahiro Yamada # endif 487221b1638SMasahiro Yamada # ifndef z_off_t 488221b1638SMasahiro Yamada # define z_off_t off_t 489221b1638SMasahiro Yamada # endif 490221b1638SMasahiro Yamada # endif 491221b1638SMasahiro Yamada #endif 492221b1638SMasahiro Yamada 493221b1638SMasahiro Yamada #if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0 494221b1638SMasahiro Yamada # define Z_LFS64 495221b1638SMasahiro Yamada #endif 496221b1638SMasahiro Yamada 497221b1638SMasahiro Yamada #if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64) 498221b1638SMasahiro Yamada # define Z_LARGE64 499221b1638SMasahiro Yamada #endif 500221b1638SMasahiro Yamada 501221b1638SMasahiro Yamada #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64) 502221b1638SMasahiro Yamada # define Z_WANT64 503221b1638SMasahiro Yamada #endif 504221b1638SMasahiro Yamada 505221b1638SMasahiro Yamada #if !defined(SEEK_SET) && !defined(Z_SOLO) 506221b1638SMasahiro Yamada # define SEEK_SET 0 /* Seek from beginning of file. */ 507221b1638SMasahiro Yamada # define SEEK_CUR 1 /* Seek from current position. */ 508221b1638SMasahiro Yamada # define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 509221b1638SMasahiro Yamada #endif 510221b1638SMasahiro Yamada 511221b1638SMasahiro Yamada #ifndef z_off_t 512*a8c877cbSChris Kay # define z_off_t long long 513221b1638SMasahiro Yamada #endif 514221b1638SMasahiro Yamada 515221b1638SMasahiro Yamada #if !defined(_WIN32) && defined(Z_LARGE64) 516221b1638SMasahiro Yamada # define z_off64_t off64_t 517*a8c877cbSChris Kay #elif defined(__MINGW32__) 518*a8c877cbSChris Kay # define z_off64_t long long 519*a8c877cbSChris Kay #elif defined(_WIN32) && !defined(__GNUC__) 520221b1638SMasahiro Yamada # define z_off64_t __int64 521*a8c877cbSChris Kay #elif defined(__GO32__) 522*a8c877cbSChris Kay # define z_off64_t offset_t 523221b1638SMasahiro Yamada #else 524221b1638SMasahiro Yamada # define z_off64_t z_off_t 525221b1638SMasahiro Yamada #endif 526221b1638SMasahiro Yamada 527221b1638SMasahiro Yamada /* MVS linker does not support external names larger than 8 bytes */ 528221b1638SMasahiro Yamada #if defined(__MVS__) 529221b1638SMasahiro Yamada #pragma map(deflateInit_,"DEIN") 530221b1638SMasahiro Yamada #pragma map(deflateInit2_,"DEIN2") 531221b1638SMasahiro Yamada #pragma map(deflateEnd,"DEEND") 532221b1638SMasahiro Yamada #pragma map(deflateBound,"DEBND") 533221b1638SMasahiro Yamada #pragma map(inflateInit_,"ININ") 534221b1638SMasahiro Yamada #pragma map(inflateInit2_,"ININ2") 535221b1638SMasahiro Yamada #pragma map(inflateEnd,"INEND") 536221b1638SMasahiro Yamada #pragma map(inflateSync,"INSY") 537221b1638SMasahiro Yamada #pragma map(inflateSetDictionary,"INSEDI") 538221b1638SMasahiro Yamada #pragma map(compressBound,"CMBND") 539221b1638SMasahiro Yamada #pragma map(inflate_table,"INTABL") 540221b1638SMasahiro Yamada #pragma map(inflate_fast,"INFA") 541221b1638SMasahiro Yamada #pragma map(inflate_copyright,"INCOPY") 542221b1638SMasahiro Yamada #endif 543221b1638SMasahiro Yamada 544221b1638SMasahiro Yamada #endif /* ZCONF_H */ 545