1/* zconf.h -- configuration of the zlib compression library 2 * Copyright (C) 1995-2006 Jean-loup Gailly. 3 * For conditions of distribution and use, see copyright notice in zlib.h 4 */ 5 6/* @(#) $Id$ */ 7 8#ifndef ZCONF_H 9#define ZCONF_H 10 11/* 12 * If you *really* need a unique prefix for all types and library functions, 13 * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. 14 * Even better than compiling with -DZ_PREFIX would be to use configure to set 15 * this permanently in zconf.h using "./configure --zprefix". 16 */ 17#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ 18 19/* all linked symbols */ 20# define _dist_code z__dist_code 21# define _length_code z__length_code 22# define _tr_align z__tr_align 23# define _tr_flush_block z__tr_flush_block 24# define _tr_init z__tr_init 25# define _tr_stored_block z__tr_stored_block 26# define _tr_tally z__tr_tally 27# define adler32 z_adler32 28# define adler32_combine z_adler32_combine 29# define compress z_compress 30# define compress2 z_compress2 31# define compressBound z_compressBound 32# define crc32 z_crc32 33# define crc32_combine z_crc32_combine 34# define deflate z_deflate 35# define deflateBound z_deflateBound 36# define deflateCopy z_deflateCopy 37# define deflateEnd z_deflateEnd 38# define deflateInit2_ z_deflateInit2_ 39# define deflateInit_ z_deflateInit_ 40# define deflateParams z_deflateParams 41# define deflatePrime z_deflatePrime 42# define deflateReset z_deflateReset 43# define deflateSetDictionary z_deflateSetDictionary 44# define deflateSetHeader z_deflateSetHeader 45# define deflateTune z_deflateTune 46# define deflate_copyright z_deflate_copyright 47# define get_crc_table z_get_crc_table 48# define gzclearerr z_gzclearerr 49# define gzclose z_gzclose 50# define gzdirect z_gzdirect 51# define gzdopen z_gzdopen 52# define gzeof z_gzeof 53# define gzerror z_gzerror 54# define gzflush z_gzflush 55# define gzgetc z_gzgetc 56# define gzgets z_gzgets 57# define gzopen z_gzopen 58# define gzprintf z_gzprintf 59# define gzputc z_gzputc 60# define gzputs z_gzputs 61# define gzread z_gzread 62# define gzrewind z_gzrewind 63# define gzseek z_gzseek 64# define gzsetparams z_gzsetparams 65# define gztell z_gztell 66# define gzungetc z_gzungetc 67# define gzwrite z_gzwrite 68# define inflate z_inflate 69# define inflateBack z_inflateBack 70# define inflateBackEnd z_inflateBackEnd 71# define inflateBackInit_ z_inflateBackInit_ 72# define inflateCopy z_inflateCopy 73# define inflateEnd z_inflateEnd 74# define inflateGetHeader z_inflateGetHeader 75# define inflateInit2_ z_inflateInit2_ 76# define inflateInit_ z_inflateInit_ 77# define inflatePrime z_inflatePrime 78# define inflateReset z_inflateReset 79# define inflateSetDictionary z_inflateSetDictionary 80# define inflateSync z_inflateSync 81# define inflateSyncPoint z_inflateSyncPoint 82# define inflate_copyright z_inflate_copyright 83# define inflate_fast z_inflate_fast 84# define inflate_table z_inflate_table 85# define uncompress z_uncompress 86# define zError z_zError 87# define z_errmsg z_z_errmsg 88# define zcalloc z_zcalloc 89# define zcfree z_zcfree 90# define zlibCompileFlags z_zlibCompileFlags 91# define zlibVersion z_zlibVersion 92 93/* all zlib typedefs in zlib.h and zconf.h */ 94# define Byte z_Byte 95# define Bytef z_Bytef 96# define alloc_func z_alloc_func 97# define charf z_charf 98# define free_func z_free_func 99# define gzFile z_gzFile 100# define gz_header z_gz_header 101# define gz_headerp z_gz_headerp 102# define in_func z_in_func 103# define intf z_intf 104# define out_func z_out_func 105# define uInt z_uInt 106# define uIntf z_uIntf 107# define uLong z_uLong 108# define uLongf z_uLongf 109# define voidp z_voidp 110# define voidp z_voidp 111# define voidpc z_voidpc 112# define voidpc z_voidpc 113# define voidpf z_voidpf 114# define voidpf z_voidpf 115# define z_stream z_z_stream 116# define z_streamp z_z_streamp 117 118/* all zlib structs in zlib.h and zconf.h */ 119# define gz_header_s z_gz_header_s 120# define internal_state z_internal_state 121# define z_stream_s z_z_stream_s 122 123#endif 124 125#if defined(__MSDOS__) && !defined(MSDOS) 126# define MSDOS 127#endif 128#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) 129# define OS2 130#endif 131#if defined(_WINDOWS) && !defined(WINDOWS) 132# define WINDOWS 133#endif 134#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) 135# ifndef WIN32 136# define WIN32 137# endif 138#endif 139#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) 140# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) 141# ifndef SYS16BIT 142# define SYS16BIT 143# endif 144# endif 145#endif 146 147/* 148 * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 149 * than 64k bytes at a time (needed on systems with 16-bit int). 150 */ 151#ifdef SYS16BIT 152# define MAXSEG_64K 153#endif 154#ifdef MSDOS 155# define UNALIGNED_OK 156#endif 157 158#ifdef __STDC_VERSION__ 159# ifndef STDC 160# define STDC 161# endif 162# if __STDC_VERSION__ >= 199901L 163# ifndef STDC99 164# define STDC99 165# endif 166# endif 167#endif 168#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) 169# define STDC 170#endif 171#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) 172# define STDC 173#endif 174#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) 175# define STDC 176#endif 177#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) 178# define STDC 179#endif 180 181#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ 182# define STDC 183#endif 184 185#ifndef STDC 186# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 187# define const /* note: need a more gentle solution here */ 188# endif 189#endif 190 191/* Some Mac compilers merge all .h files incorrectly: */ 192#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) 193# define NO_DUMMY_DECL 194#endif 195 196/* Maximum value for memLevel in deflateInit2 */ 197#ifndef MAX_MEM_LEVEL 198# ifdef MAXSEG_64K 199# define MAX_MEM_LEVEL 8 200# else 201# define MAX_MEM_LEVEL 9 202# endif 203#endif 204 205/* Maximum value for windowBits in deflateInit2 and inflateInit2. 206 * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 207 * created by gzip. (Files created by minigzip can still be extracted by 208 * gzip.) 209 */ 210#ifndef MAX_WBITS 211# define MAX_WBITS 15 /* 32K LZ77 window */ 212#endif 213 214/* The memory requirements for deflate are (in bytes): 215 (1 << (windowBits+2)) + (1 << (memLevel+9)) 216 that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 217 plus a few kilobytes for small objects. For example, if you want to reduce 218 the default memory requirements from 256K to 128K, compile with 219 make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 220 Of course this will generally degrade compression (there's no free lunch). 221 222 The memory requirements for inflate are (in bytes) 1 << windowBits 223 that is, 32K for windowBits=15 (default value) plus a few kilobytes 224 for small objects. 225*/ 226 227 /* Type declarations */ 228 229#ifndef OF /* function prototypes */ 230# ifdef STDC 231# define OF(args) args 232# else 233# define OF(args) () 234# endif 235#endif 236 237/* The following definitions for FAR are needed only for MSDOS mixed 238 * model programming (small or medium model with some far allocations). 239 * This was tested only with MSC; for other MSDOS compilers you may have 240 * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 241 * just define FAR to be empty. 242 */ 243#ifdef SYS16BIT 244# if defined(M_I86SM) || defined(M_I86MM) 245 /* MSC small or medium model */ 246# define SMALL_MEDIUM 247# ifdef _MSC_VER 248# define FAR _far 249# else 250# define FAR far 251# endif 252# endif 253# if (defined(__SMALL__) || defined(__MEDIUM__)) 254 /* Turbo C small or medium model */ 255# define SMALL_MEDIUM 256# ifdef __BORLANDC__ 257# define FAR _far 258# else 259# define FAR far 260# endif 261# endif 262#endif 263 264#if defined(WINDOWS) || defined(WIN32) 265 /* If building or using zlib as a DLL, define ZLIB_DLL. 266 * This is not mandatory, but it offers a little performance increase. 267 */ 268# ifdef ZLIB_DLL 269# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 270# ifdef ZLIB_INTERNAL 271# define ZEXTERN extern __declspec(dllexport) 272# else 273# define ZEXTERN extern __declspec(dllimport) 274# endif 275# endif 276# endif /* ZLIB_DLL */ 277 /* If building or using zlib with the WINAPI/WINAPIV calling convention, 278 * define ZLIB_WINAPI. 279 * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 280 */ 281# ifdef ZLIB_WINAPI 282# ifdef FAR 283# undef FAR 284# endif 285# include <windows.h> 286 /* No need for _export, use ZLIB.DEF instead. */ 287 /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 288# define ZEXPORT WINAPI 289# ifdef WIN32 290# define ZEXPORTVA WINAPIV 291# else 292# define ZEXPORTVA FAR CDECL 293# endif 294# endif 295#endif 296 297#if defined (__BEOS__) 298# ifdef ZLIB_DLL 299# ifdef ZLIB_INTERNAL 300# define ZEXPORT __declspec(dllexport) 301# define ZEXPORTVA __declspec(dllexport) 302# else 303# define ZEXPORT __declspec(dllimport) 304# define ZEXPORTVA __declspec(dllimport) 305# endif 306# endif 307#endif 308 309#ifdef HAVE_VISIBILITY_PRAGMA 310# define ZEXTERN __attribute__((visibility ("default"))) extern 311#endif 312 313#ifndef ZEXTERN 314# define ZEXTERN extern 315#endif 316#ifndef ZEXPORT 317# define ZEXPORT 318#endif 319#ifndef ZEXPORTVA 320# define ZEXPORTVA 321#endif 322 323#ifndef FAR 324# define FAR 325#endif 326 327#if !defined(__MACTYPES__) 328typedef unsigned char Byte; /* 8 bits */ 329#endif 330typedef unsigned int uInt; /* 16 bits or more */ 331typedef unsigned long uLong; /* 32 bits or more */ 332 333#ifdef SMALL_MEDIUM 334 /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 335# define Bytef Byte FAR 336#else 337 typedef Byte FAR Bytef; 338#endif 339typedef char FAR charf; 340typedef int FAR intf; 341typedef uInt FAR uIntf; 342typedef uLong FAR uLongf; 343 344#ifdef STDC 345 typedef void const *voidpc; 346 typedef void FAR *voidpf; 347 typedef void *voidp; 348#else 349 typedef Byte const *voidpc; 350 typedef Byte FAR *voidpf; 351 typedef Byte *voidp; 352#endif 353 354#include "zlibdefs.h" /* created by configure */ 355 356#ifdef _LARGEFILE64_SOURCE 357#include <sys/types.h> 358#endif 359 360#ifndef SEEK_SET 361# define SEEK_SET 0 /* Seek from beginning of file. */ 362# define SEEK_CUR 1 /* Seek from current position. */ 363# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 364#endif 365#ifndef z_off_t 366# define z_off_t long 367#endif 368 369#if defined(__OS400__) 370# define NO_vsnprintf 371#endif 372 373#if defined(__MVS__) 374# define NO_vsnprintf 375#endif 376 377/* MVS linker does not support external names larger than 8 bytes */ 378#if defined(__MVS__) 379# pragma map(deflateInit_,"DEIN") 380# pragma map(deflateInit2_,"DEIN2") 381# pragma map(deflateEnd,"DEEND") 382# pragma map(deflateBound,"DEBND") 383# pragma map(inflateInit_,"ININ") 384# pragma map(inflateInit2_,"ININ2") 385# pragma map(inflateEnd,"INEND") 386# pragma map(inflateSync,"INSY") 387# pragma map(inflateSetDictionary,"INSEDI") 388# pragma map(compressBound,"CMBND") 389# pragma map(inflate_table,"INTABL") 390# pragma map(inflate_fast,"INFA") 391# pragma map(inflate_copyright,"INCOPY") 392#endif 393 394#endif /* ZCONF_H */ 395