PBRT
|
00001 /* zconf.h -- configuration of the zlib compression library 00002 * Copyright (C) 1995-2010 Jean-loup Gailly. 00003 * For conditions of distribution and use, see copyright notice in zlib.h 00004 */ 00005 00006 /* @(#) $Id$ */ 00007 00008 #ifndef ZCONF_H 00009 #define ZCONF_H 00010 00011 /* 00012 * If you *really* need a unique prefix for all types and library functions, 00013 * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. 00014 * Even better than compiling with -DZ_PREFIX would be to use configure to set 00015 * this permanently in zconf.h using "./configure --zprefix". 00016 */ 00017 #ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ 00018 00019 /* all linked symbols */ 00020 # define _dist_code z__dist_code 00021 # define _length_code z__length_code 00022 # define _tr_align z__tr_align 00023 # define _tr_flush_block z__tr_flush_block 00024 # define _tr_init z__tr_init 00025 # define _tr_stored_block z__tr_stored_block 00026 # define _tr_tally z__tr_tally 00027 # define adler32 z_adler32 00028 # define adler32_combine z_adler32_combine 00029 # define adler32_combine64 z_adler32_combine64 00030 # define compress z_compress 00031 # define compress2 z_compress2 00032 # define compressBound z_compressBound 00033 # define crc32 z_crc32 00034 # define crc32_combine z_crc32_combine 00035 # define crc32_combine64 z_crc32_combine64 00036 # define deflate z_deflate 00037 # define deflateBound z_deflateBound 00038 # define deflateCopy z_deflateCopy 00039 # define deflateEnd z_deflateEnd 00040 # define deflateInit2_ z_deflateInit2_ 00041 # define deflateInit_ z_deflateInit_ 00042 # define deflateParams z_deflateParams 00043 # define deflatePrime z_deflatePrime 00044 # define deflateReset z_deflateReset 00045 # define deflateSetDictionary z_deflateSetDictionary 00046 # define deflateSetHeader z_deflateSetHeader 00047 # define deflateTune z_deflateTune 00048 # define deflate_copyright z_deflate_copyright 00049 # define get_crc_table z_get_crc_table 00050 # define gz_error z_gz_error 00051 # define gz_intmax z_gz_intmax 00052 # define gz_strwinerror z_gz_strwinerror 00053 # define gzbuffer z_gzbuffer 00054 # define gzclearerr z_gzclearerr 00055 # define gzclose z_gzclose 00056 # define gzclose_r z_gzclose_r 00057 # define gzclose_w z_gzclose_w 00058 # define gzdirect z_gzdirect 00059 # define gzdopen z_gzdopen 00060 # define gzeof z_gzeof 00061 # define gzerror z_gzerror 00062 # define gzflush z_gzflush 00063 # define gzgetc z_gzgetc 00064 # define gzgets z_gzgets 00065 # define gzoffset z_gzoffset 00066 # define gzoffset64 z_gzoffset64 00067 # define gzopen z_gzopen 00068 # define gzopen64 z_gzopen64 00069 # define gzprintf z_gzprintf 00070 # define gzputc z_gzputc 00071 # define gzputs z_gzputs 00072 # define gzread z_gzread 00073 # define gzrewind z_gzrewind 00074 # define gzseek z_gzseek 00075 # define gzseek64 z_gzseek64 00076 # define gzsetparams z_gzsetparams 00077 # define gztell z_gztell 00078 # define gztell64 z_gztell64 00079 # define gzungetc z_gzungetc 00080 # define gzwrite z_gzwrite 00081 # define inflate z_inflate 00082 # define inflateBack z_inflateBack 00083 # define inflateBackEnd z_inflateBackEnd 00084 # define inflateBackInit_ z_inflateBackInit_ 00085 # define inflateCopy z_inflateCopy 00086 # define inflateEnd z_inflateEnd 00087 # define inflateGetHeader z_inflateGetHeader 00088 # define inflateInit2_ z_inflateInit2_ 00089 # define inflateInit_ z_inflateInit_ 00090 # define inflateMark z_inflateMark 00091 # define inflatePrime z_inflatePrime 00092 # define inflateReset z_inflateReset 00093 # define inflateReset2 z_inflateReset2 00094 # define inflateSetDictionary z_inflateSetDictionary 00095 # define inflateSync z_inflateSync 00096 # define inflateSyncPoint z_inflateSyncPoint 00097 # define inflateUndermine z_inflateUndermine 00098 # define inflate_copyright z_inflate_copyright 00099 # define inflate_fast z_inflate_fast 00100 # define inflate_table z_inflate_table 00101 # define uncompress z_uncompress 00102 # define zError z_zError 00103 # define zcalloc z_zcalloc 00104 # define zcfree z_zcfree 00105 # define zlibCompileFlags z_zlibCompileFlags 00106 # define zlibVersion z_zlibVersion 00107 00108 /* all zlib typedefs in zlib.h and zconf.h */ 00109 # define Byte z_Byte 00110 # define Bytef z_Bytef 00111 # define alloc_func z_alloc_func 00112 # define charf z_charf 00113 # define free_func z_free_func 00114 # define gzFile z_gzFile 00115 # define gz_header z_gz_header 00116 # define gz_headerp z_gz_headerp 00117 # define in_func z_in_func 00118 # define intf z_intf 00119 # define out_func z_out_func 00120 # define uInt z_uInt 00121 # define uIntf z_uIntf 00122 # define uLong z_uLong 00123 # define uLongf z_uLongf 00124 # define voidp z_voidp 00125 # define voidpc z_voidpc 00126 # define voidpf z_voidpf 00127 00128 /* all zlib structs in zlib.h and zconf.h */ 00129 # define gz_header_s z_gz_header_s 00130 # define internal_state z_internal_state 00131 00132 #endif 00133 00134 #if defined(__MSDOS__) && !defined(MSDOS) 00135 # define MSDOS 00136 #endif 00137 #if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) 00138 # define OS2 00139 #endif 00140 #if defined(_WINDOWS) && !defined(WINDOWS) 00141 # define WINDOWS 00142 #endif 00143 #if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) 00144 # ifndef WIN32 00145 # define WIN32 00146 # endif 00147 #endif 00148 #if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) 00149 # if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) 00150 # ifndef SYS16BIT 00151 # define SYS16BIT 00152 # endif 00153 # endif 00154 #endif 00155 00156 /* 00157 * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 00158 * than 64k bytes at a time (needed on systems with 16-bit int). 00159 */ 00160 #ifdef SYS16BIT 00161 # define MAXSEG_64K 00162 #endif 00163 #ifdef MSDOS 00164 # define UNALIGNED_OK 00165 #endif 00166 00167 #ifdef __STDC_VERSION__ 00168 # ifndef STDC 00169 # define STDC 00170 # endif 00171 # if __STDC_VERSION__ >= 199901L 00172 # ifndef STDC99 00173 # define STDC99 00174 # endif 00175 # endif 00176 #endif 00177 #if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) 00178 # define STDC 00179 #endif 00180 #if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) 00181 # define STDC 00182 #endif 00183 #if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) 00184 # define STDC 00185 #endif 00186 #if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) 00187 # define STDC 00188 #endif 00189 00190 #if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ 00191 # define STDC 00192 #endif 00193 00194 #ifndef STDC 00195 # ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 00196 # define const /* note: need a more gentle solution here */ 00197 # endif 00198 #endif 00199 00200 /* Some Mac compilers merge all .h files incorrectly: */ 00201 #if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) 00202 # define NO_DUMMY_DECL 00203 #endif 00204 00205 /* Maximum value for memLevel in deflateInit2 */ 00206 #ifndef MAX_MEM_LEVEL 00207 # ifdef MAXSEG_64K 00208 # define MAX_MEM_LEVEL 8 00209 # else 00210 # define MAX_MEM_LEVEL 9 00211 # endif 00212 #endif 00213 00214 /* Maximum value for windowBits in deflateInit2 and inflateInit2. 00215 * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 00216 * created by gzip. (Files created by minigzip can still be extracted by 00217 * gzip.) 00218 */ 00219 #ifndef MAX_WBITS 00220 # define MAX_WBITS 15 /* 32K LZ77 window */ 00221 #endif 00222 00223 /* The memory requirements for deflate are (in bytes): 00224 (1 << (windowBits+2)) + (1 << (memLevel+9)) 00225 that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 00226 plus a few kilobytes for small objects. For example, if you want to reduce 00227 the default memory requirements from 256K to 128K, compile with 00228 make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 00229 Of course this will generally degrade compression (there's no free lunch). 00230 00231 The memory requirements for inflate are (in bytes) 1 << windowBits 00232 that is, 32K for windowBits=15 (default value) plus a few kilobytes 00233 for small objects. 00234 */ 00235 00236 /* Type declarations */ 00237 00238 #ifndef OF /* function prototypes */ 00239 # ifdef STDC 00240 # define OF(args) args 00241 # else 00242 # define OF(args) () 00243 # endif 00244 #endif 00245 00246 /* The following definitions for FAR are needed only for MSDOS mixed 00247 * model programming (small or medium model with some far allocations). 00248 * This was tested only with MSC; for other MSDOS compilers you may have 00249 * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 00250 * just define FAR to be empty. 00251 */ 00252 #ifdef SYS16BIT 00253 # if defined(M_I86SM) || defined(M_I86MM) 00254 /* MSC small or medium model */ 00255 # define SMALL_MEDIUM 00256 # ifdef _MSC_VER 00257 # define FAR _far 00258 # else 00259 # define FAR far 00260 # endif 00261 # endif 00262 # if (defined(__SMALL__) || defined(__MEDIUM__)) 00263 /* Turbo C small or medium model */ 00264 # define SMALL_MEDIUM 00265 # ifdef __BORLANDC__ 00266 # define FAR _far 00267 # else 00268 # define FAR far 00269 # endif 00270 # endif 00271 #endif 00272 00273 #if defined(WINDOWS) || defined(WIN32) 00274 /* If building or using zlib as a DLL, define ZLIB_DLL. 00275 * This is not mandatory, but it offers a little performance increase. 00276 */ 00277 # ifdef ZLIB_DLL 00278 # if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 00279 # ifdef ZLIB_INTERNAL 00280 # define ZEXTERN extern __declspec(dllexport) 00281 # else 00282 # define ZEXTERN extern __declspec(dllimport) 00283 # endif 00284 # endif 00285 # endif /* ZLIB_DLL */ 00286 /* If building or using zlib with the WINAPI/WINAPIV calling convention, 00287 * define ZLIB_WINAPI. 00288 * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 00289 */ 00290 # ifdef ZLIB_WINAPI 00291 # ifdef FAR 00292 # undef FAR 00293 # endif 00294 # include <windows.h> 00295 /* No need for _export, use ZLIB.DEF instead. */ 00296 /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 00297 # define ZEXPORT WINAPI 00298 # ifdef WIN32 00299 # define ZEXPORTVA WINAPIV 00300 # else 00301 # define ZEXPORTVA FAR CDECL 00302 # endif 00303 # endif 00304 #endif 00305 00306 #if defined (__BEOS__) 00307 # ifdef ZLIB_DLL 00308 # ifdef ZLIB_INTERNAL 00309 # define ZEXPORT __declspec(dllexport) 00310 # define ZEXPORTVA __declspec(dllexport) 00311 # else 00312 # define ZEXPORT __declspec(dllimport) 00313 # define ZEXPORTVA __declspec(dllimport) 00314 # endif 00315 # endif 00316 #endif 00317 00318 #ifndef ZEXTERN 00319 # define ZEXTERN extern 00320 #endif 00321 #ifndef ZEXPORT 00322 # define ZEXPORT 00323 #endif 00324 #ifndef ZEXPORTVA 00325 # define ZEXPORTVA 00326 #endif 00327 00328 #ifndef FAR 00329 # define FAR 00330 #endif 00331 00332 #if !defined(__MACTYPES__) 00333 typedef unsigned char Byte; /* 8 bits */ 00334 #endif 00335 typedef unsigned int uInt; /* 16 bits or more */ 00336 typedef unsigned long uLong; /* 32 bits or more */ 00337 00338 #ifdef SMALL_MEDIUM 00339 /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 00340 # define Bytef Byte FAR 00341 #else 00342 typedef Byte FAR Bytef; 00343 #endif 00344 typedef char FAR charf; 00345 typedef int FAR intf; 00346 typedef uInt FAR uIntf; 00347 typedef uLong FAR uLongf; 00348 00349 #ifdef STDC 00350 typedef void const *voidpc; 00351 typedef void FAR *voidpf; 00352 typedef void *voidp; 00353 #else 00354 typedef Byte const *voidpc; 00355 typedef Byte FAR *voidpf; 00356 typedef Byte *voidp; 00357 #endif 00358 00359 #ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ 00360 # define Z_HAVE_UNISTD_H 00361 #endif 00362 00363 #ifdef STDC 00364 # include <sys/types.h> /* for off_t */ 00365 #endif 00366 00367 /* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and 00368 * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even 00369 * though the former does not conform to the LFS document), but considering 00370 * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as 00371 * equivalently requesting no 64-bit operations 00372 */ 00373 #if -_LARGEFILE64_SOURCE - -1 == 1 00374 # undef _LARGEFILE64_SOURCE 00375 #endif 00376 00377 #if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE) 00378 # include <unistd.h> /* for SEEK_* and off_t */ 00379 # ifdef VMS 00380 # include <unixio.h> /* for off_t */ 00381 # endif 00382 # ifndef z_off_t 00383 # define z_off_t off_t 00384 # endif 00385 #endif 00386 00387 #ifndef SEEK_SET 00388 # define SEEK_SET 0 /* Seek from beginning of file. */ 00389 # define SEEK_CUR 1 /* Seek from current position. */ 00390 # define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 00391 #endif 00392 00393 #ifndef z_off_t 00394 # define z_off_t long 00395 #endif 00396 00397 #if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 00398 # define z_off64_t off64_t 00399 #else 00400 # define z_off64_t z_off_t 00401 #endif 00402 00403 #if defined(__OS400__) 00404 # define NO_vsnprintf 00405 #endif 00406 00407 #if defined(__MVS__) 00408 # define NO_vsnprintf 00409 #endif 00410 00411 /* MVS linker does not support external names larger than 8 bytes */ 00412 #if defined(__MVS__) 00413 #pragma map(deflateInit_,"DEIN") 00414 #pragma map(deflateInit2_,"DEIN2") 00415 #pragma map(deflateEnd,"DEEND") 00416 #pragma map(deflateBound,"DEBND") 00417 #pragma map(inflateInit_,"ININ") 00418 #pragma map(inflateInit2_,"ININ2") 00419 #pragma map(inflateEnd,"INEND") 00420 #pragma map(inflateSync,"INSY") 00421 #pragma map(inflateSetDictionary,"INSEDI") 00422 #pragma map(compressBound,"CMBND") 00423 #pragma map(inflate_table,"INTABL") 00424 #pragma map(inflate_fast,"INFA") 00425 #pragma map(inflate_copyright,"INCOPY") 00426 #endif 00427 00428 #endif /* ZCONF_H */