zconf.h revision 145490
1/* zconf.h -- configuration of the zlib compression library 2 * Copyright (C) 1995-2004 Jean-loup Gailly. 3 * For conditions of distribution and use, see copyright notice in zlib.h 4 */ 5 6/* @(#) $FreeBSD: head/lib/libz/zconf.h 145490 2005-04-24 22:04:34Z kientzle $ */ 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 */ 15#ifdef Z_PREFIX 16# define deflateInit_ z_deflateInit_ 17# define deflate z_deflate 18# define deflateEnd z_deflateEnd 19# define inflateInit_ z_inflateInit_ 20# define inflate z_inflate 21# define inflateEnd z_inflateEnd 22# define deflateInit2_ z_deflateInit2_ 23# define deflateSetDictionary z_deflateSetDictionary 24# define deflateCopy z_deflateCopy 25# define deflateReset z_deflateReset 26# define deflateParams z_deflateParams 27# define deflateBound z_deflateBound 28# define deflatePrime z_deflatePrime 29# define inflateInit2_ z_inflateInit2_ 30# define inflateSetDictionary z_inflateSetDictionary 31# define inflateSync z_inflateSync 32# define inflateSyncPoint z_inflateSyncPoint 33# define inflateCopy z_inflateCopy 34# define inflateReset z_inflateReset 35# define inflateBack z_inflateBack 36# define inflateBackEnd z_inflateBackEnd 37# define compress z_compress 38# define compress2 z_compress2 39# define compressBound z_compressBound 40# define uncompress z_uncompress 41# define adler32 z_adler32 42# define crc32 z_crc32 43# define get_crc_table z_get_crc_table 44# define zError z_zError 45 46# define Byte z_Byte 47# define uInt z_uInt 48# define uLong z_uLong 49# define Bytef z_Bytef 50# define charf z_charf 51# define intf z_intf 52# define uIntf z_uIntf 53# define uLongf z_uLongf 54# define voidpf z_voidpf 55# define voidp z_voidp 56#endif 57 58#if defined(__MSDOS__) && !defined(MSDOS) 59# define MSDOS 60#endif 61#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) 62# define OS2 63#endif 64#if defined(_WINDOWS) && !defined(WINDOWS) 65# define WINDOWS 66#endif 67#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) 68# define WIN32 69#endif 70#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) 71# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) 72# ifndef SYS16BIT 73# define SYS16BIT 74# endif 75# endif 76#endif 77 78/* 79 * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 80 * than 64k bytes at a time (needed on systems with 16-bit int). 81 */ 82#ifdef SYS16BIT 83# define MAXSEG_64K 84#endif 85#ifdef MSDOS 86# define UNALIGNED_OK 87#endif 88 89#ifdef __STDC_VERSION__ 90# ifndef STDC 91# define STDC 92# endif 93# if __STDC_VERSION__ >= 199901L 94# ifndef STDC99 95# define STDC99 96# endif 97# endif 98#endif 99#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) 100# define STDC 101#endif 102#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) 103# define STDC 104#endif 105#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) 106# define STDC 107#endif 108#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) 109# define STDC 110#endif 111 112#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ 113# define STDC 114#endif 115 116#ifndef STDC 117# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 118# define const /* note: need a more gentle solution here */ 119# endif 120#endif 121 122/* Some Mac compilers merge all .h files incorrectly: */ 123#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) 124# define NO_DUMMY_DECL 125#endif 126 127/* Maximum value for memLevel in deflateInit2 */ 128#ifndef MAX_MEM_LEVEL 129# ifdef MAXSEG_64K 130# define MAX_MEM_LEVEL 8 131# else 132# define MAX_MEM_LEVEL 9 133# endif 134#endif 135 136/* Maximum value for windowBits in deflateInit2 and inflateInit2. 137 * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 138 * created by gzip. (Files created by minigzip can still be extracted by 139 * gzip.) 140 */ 141#ifndef MAX_WBITS 142# define MAX_WBITS 15 /* 32K LZ77 window */ 143#endif 144 145/* The memory requirements for deflate are (in bytes): 146 (1 << (windowBits+2)) + (1 << (memLevel+9)) 147 that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 148 plus a few kilobytes for small objects. For example, if you want to reduce 149 the default memory requirements from 256K to 128K, compile with 150 make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 151 Of course this will generally degrade compression (there's no free lunch). 152 153 The memory requirements for inflate are (in bytes) 1 << windowBits 154 that is, 32K for windowBits=15 (default value) plus a few kilobytes 155 for small objects. 156*/ 157 158 /* Type declarations */ 159 160#ifndef OF /* function prototypes */ 161# ifdef STDC 162# define OF(args) args 163# else 164# define OF(args) () 165# endif 166#endif 167 168/* The following definitions for FAR are needed only for MSDOS mixed 169 * model programming (small or medium model with some far allocations). 170 * This was tested only with MSC; for other MSDOS compilers you may have 171 * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 172 * just define FAR to be empty. 173 */ 174#ifdef SYS16BIT 175# if defined(M_I86SM) || defined(M_I86MM) 176 /* MSC small or medium model */ 177# define SMALL_MEDIUM 178# ifdef _MSC_VER 179# define FAR _far 180# else 181# define FAR far 182# endif 183# endif 184# if (defined(__SMALL__) || defined(__MEDIUM__)) 185 /* Turbo C small or medium model */ 186# define SMALL_MEDIUM 187# ifdef __BORLANDC__ 188# define FAR _far 189# else 190# define FAR far 191# endif 192# endif 193#endif 194 195#if defined(WINDOWS) || defined(WIN32) 196 /* If building or using zlib as a DLL, define ZLIB_DLL. 197 * This is not mandatory, but it offers a little performance increase. 198 */ 199# ifdef ZLIB_DLL 200# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 201# ifdef ZLIB_INTERNAL 202# define ZEXTERN extern __declspec(dllexport) 203# else 204# define ZEXTERN extern __declspec(dllimport) 205# endif 206# endif 207# endif /* ZLIB_DLL */ 208 /* If building or using zlib with the WINAPI/WINAPIV calling convention, 209 * define ZLIB_WINAPI. 210 * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 211 */ 212# ifdef ZLIB_WINAPI 213# ifdef FAR 214# undef FAR 215# endif 216# include <windows.h> 217 /* No need for _export, use ZLIB.DEF instead. */ 218 /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 219# define ZEXPORT WINAPI 220# ifdef WIN32 221# define ZEXPORTVA WINAPIV 222# else 223# define ZEXPORTVA FAR CDECL 224# endif 225# endif 226#endif 227 228#if defined (__BEOS__) 229# ifdef ZLIB_DLL 230# ifdef ZLIB_INTERNAL 231# define ZEXPORT __declspec(dllexport) 232# define ZEXPORTVA __declspec(dllexport) 233# else 234# define ZEXPORT __declspec(dllimport) 235# define ZEXPORTVA __declspec(dllimport) 236# endif 237# endif 238#endif 239 240#ifndef ZEXTERN 241# define ZEXTERN extern 242#endif 243#ifndef ZEXPORT 244# define ZEXPORT 245#endif 246#ifndef ZEXPORTVA 247# define ZEXPORTVA 248#endif 249 250#ifndef FAR 251# define FAR 252#endif 253 254#if !defined(__MACTYPES__) 255typedef unsigned char Byte; /* 8 bits */ 256#endif 257typedef unsigned int uInt; /* 16 bits or more */ 258typedef unsigned long uLong; /* 32 bits or more */ 259 260#ifdef SMALL_MEDIUM 261 /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 262# define Bytef Byte FAR 263#else 264 typedef Byte FAR Bytef; 265#endif 266typedef char FAR charf; 267typedef int FAR intf; 268typedef uInt FAR uIntf; 269typedef uLong FAR uLongf; 270 271#ifdef STDC 272 typedef void const *voidpc; 273 typedef void FAR *voidpf; 274 typedef void *voidp; 275#else 276 typedef Byte const *voidpc; 277 typedef Byte FAR *voidpf; 278 typedef Byte *voidp; 279#endif 280 281#if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */ 282# include <sys/types.h> /* for off_t */ 283# include <unistd.h> /* for SEEK_* and off_t */ 284# ifdef VMS 285# include <unixio.h> /* for off_t */ 286# endif 287# define z_off_t off_t 288#endif 289#ifndef SEEK_SET 290# define SEEK_SET 0 /* Seek from beginning of file. */ 291# define SEEK_CUR 1 /* Seek from current position. */ 292# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 293#endif 294 295/* 296 * This is hard-configured for FreeBSD, since zlib doesn't actually support 297 * using the system off_t for offsets unless off_t is no longer than long. 298 * To minimize the diff, we just "undef z_off_t" rather than modifying 299 * the following lines. 300 */ 301#undef z_off_t 302 303#ifndef z_off_t 304# define z_off_t long 305#endif 306 307#if defined(__OS400__) 308# define NO_vsnprintf 309#endif 310 311#if defined(__MVS__) 312# define NO_vsnprintf 313# ifdef FAR 314# undef FAR 315# endif 316#endif 317 318/* MVS linker does not support external names larger than 8 bytes */ 319#if defined(__MVS__) 320# pragma map(deflateInit_,"DEIN") 321# pragma map(deflateInit2_,"DEIN2") 322# pragma map(deflateEnd,"DEEND") 323# pragma map(deflateBound,"DEBND") 324# pragma map(inflateInit_,"ININ") 325# pragma map(inflateInit2_,"ININ2") 326# pragma map(inflateEnd,"INEND") 327# pragma map(inflateSync,"INSY") 328# pragma map(inflateSetDictionary,"INSEDI") 329# pragma map(compressBound,"CMBND") 330# pragma map(inflate_table,"INTABL") 331# pragma map(inflate_fast,"INFA") 332# pragma map(inflate_copyright,"INCOPY") 333#endif 334 335#endif /* ZCONF_H */ 336