zconf.h revision 205471
117651Speter/* zconf.h -- configuration of the zlib compression library 2205471Sdelphij * Copyright (C) 1995-2010 Jean-loup Gailly. 3131380Stjr * For conditions of distribution and use, see copyright notice in zlib.h 417651Speter */ 517651Speter 650476Speter/* @(#) $FreeBSD: head/lib/libz/zconf.h 205471 2010-03-22 21:11:55Z delphij $ */ 717651Speter 8131380Stjr#ifndef ZCONF_H 9131380Stjr#define ZCONF_H 1017651Speter 1117651Speter/* 1217651Speter * If you *really* need a unique prefix for all types and library functions, 1317651Speter * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. 14205471Sdelphij * Even better than compiling with -DZ_PREFIX would be to use configure to set 15205471Sdelphij * this permanently in zconf.h using "./configure --zprefix". 1617651Speter */ 17205471Sdelphij#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */ 18205471Sdelphij 19205471Sdelphij/* all linked symbols */ 20205471Sdelphij# define _dist_code z__dist_code 21205471Sdelphij# define _length_code z__length_code 22205471Sdelphij# define _tr_align z__tr_align 23205471Sdelphij# define _tr_flush_block z__tr_flush_block 24205471Sdelphij# define _tr_init z__tr_init 25205471Sdelphij# define _tr_stored_block z__tr_stored_block 26205471Sdelphij# define _tr_tally z__tr_tally 27205471Sdelphij# define adler32 z_adler32 28205471Sdelphij# define adler32_combine z_adler32_combine 29205471Sdelphij# define adler32_combine64 z_adler32_combine64 30205471Sdelphij# define compress z_compress 31205471Sdelphij# define compress2 z_compress2 32205471Sdelphij# define compressBound z_compressBound 33205471Sdelphij# define crc32 z_crc32 34205471Sdelphij# define crc32_combine z_crc32_combine 35205471Sdelphij# define crc32_combine64 z_crc32_combine64 36145490Skientzle# define deflate z_deflate 37205471Sdelphij# define deflateBound z_deflateBound 38205471Sdelphij# define deflateCopy z_deflateCopy 39145490Skientzle# define deflateEnd z_deflateEnd 40145490Skientzle# define deflateInit2_ z_deflateInit2_ 41205471Sdelphij# define deflateInit_ z_deflateInit_ 42145490Skientzle# define deflateParams z_deflateParams 43145490Skientzle# define deflatePrime z_deflatePrime 44205471Sdelphij# define deflateReset z_deflateReset 45205471Sdelphij# define deflateSetDictionary z_deflateSetDictionary 46205471Sdelphij# define deflateSetHeader z_deflateSetHeader 47205471Sdelphij# define deflateTune z_deflateTune 48205471Sdelphij# define deflate_copyright z_deflate_copyright 49205471Sdelphij# define get_crc_table z_get_crc_table 50205471Sdelphij# define gz_error z_gz_error 51205471Sdelphij# define gz_intmax z_gz_intmax 52205471Sdelphij# define gz_strwinerror z_gz_strwinerror 53205471Sdelphij# define gzbuffer z_gzbuffer 54205471Sdelphij# define gzclearerr z_gzclearerr 55205471Sdelphij# define gzclose z_gzclose 56205471Sdelphij# define gzclose_r z_gzclose_r 57205471Sdelphij# define gzclose_w z_gzclose_w 58205471Sdelphij# define gzdirect z_gzdirect 59205471Sdelphij# define gzdopen z_gzdopen 60205471Sdelphij# define gzeof z_gzeof 61205471Sdelphij# define gzerror z_gzerror 62205471Sdelphij# define gzflush z_gzflush 63205471Sdelphij# define gzgetc z_gzgetc 64205471Sdelphij# define gzgets z_gzgets 65205471Sdelphij# define gzoffset z_gzoffset 66205471Sdelphij# define gzoffset64 z_gzoffset64 67205471Sdelphij# define gzopen z_gzopen 68205471Sdelphij# define gzopen64 z_gzopen64 69205471Sdelphij# define gzprintf z_gzprintf 70205471Sdelphij# define gzputc z_gzputc 71205471Sdelphij# define gzputs z_gzputs 72205471Sdelphij# define gzread z_gzread 73205471Sdelphij# define gzrewind z_gzrewind 74205471Sdelphij# define gzseek z_gzseek 75205471Sdelphij# define gzseek64 z_gzseek64 76205471Sdelphij# define gzsetparams z_gzsetparams 77205471Sdelphij# define gztell z_gztell 78205471Sdelphij# define gztell64 z_gztell64 79205471Sdelphij# define gzungetc z_gzungetc 80205471Sdelphij# define gzwrite z_gzwrite 81205471Sdelphij# define inflate z_inflate 82205471Sdelphij# define inflateBack z_inflateBack 83205471Sdelphij# define inflateBackEnd z_inflateBackEnd 84205471Sdelphij# define inflateBackInit_ z_inflateBackInit_ 85205471Sdelphij# define inflateCopy z_inflateCopy 86205471Sdelphij# define inflateEnd z_inflateEnd 87205471Sdelphij# define inflateGetHeader z_inflateGetHeader 88145490Skientzle# define inflateInit2_ z_inflateInit2_ 89205471Sdelphij# define inflateInit_ z_inflateInit_ 90205471Sdelphij# define inflateMark z_inflateMark 91205471Sdelphij# define inflatePrime z_inflatePrime 92205471Sdelphij# define inflateReset z_inflateReset 93205471Sdelphij# define inflateReset2 z_inflateReset2 94145490Skientzle# define inflateSetDictionary z_inflateSetDictionary 95145490Skientzle# define inflateSync z_inflateSync 96145490Skientzle# define inflateSyncPoint z_inflateSyncPoint 97205471Sdelphij# define inflateUndermine z_inflateUndermine 98205471Sdelphij# define inflate_copyright z_inflate_copyright 99205471Sdelphij# define inflate_fast z_inflate_fast 100205471Sdelphij# define inflate_table z_inflate_table 101145490Skientzle# define uncompress z_uncompress 102145490Skientzle# define zError z_zError 103205471Sdelphij# define zcalloc z_zcalloc 104205471Sdelphij# define zcfree z_zcfree 105205471Sdelphij# define zlibCompileFlags z_zlibCompileFlags 106205471Sdelphij# define zlibVersion z_zlibVersion 10717651Speter 108205471Sdelphij/* all zlib typedefs in zlib.h and zconf.h */ 109205471Sdelphij# define Byte z_Byte 110205471Sdelphij# define Bytef z_Bytef 111157046Sdes# define alloc_func z_alloc_func 112205471Sdelphij# define charf z_charf 113157046Sdes# define free_func z_free_func 114205471Sdelphij# define gzFile z_gzFile 115205471Sdelphij# define gz_header z_gz_header 116205471Sdelphij# define gz_headerp z_gz_headerp 117157046Sdes# define in_func z_in_func 118205471Sdelphij# define intf z_intf 119157046Sdes# define out_func z_out_func 120145490Skientzle# define uInt z_uInt 121205471Sdelphij# define uIntf z_uIntf 122145490Skientzle# define uLong z_uLong 123145490Skientzle# define uLongf z_uLongf 124205471Sdelphij# define voidp z_voidp 125205471Sdelphij# define voidpc z_voidpc 126145490Skientzle# define voidpf z_voidpf 127205471Sdelphij 128205471Sdelphij/* all zlib structs in zlib.h and zconf.h */ 129205471Sdelphij# define gz_header_s z_gz_header_s 130205471Sdelphij# define internal_state z_internal_state 131205471Sdelphij 13217651Speter#endif 13317651Speter 134131380Stjr#if defined(__MSDOS__) && !defined(MSDOS) 135131380Stjr# define MSDOS 136131380Stjr#endif 137131380Stjr#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) 138131380Stjr# define OS2 139131380Stjr#endif 140131380Stjr#if defined(_WINDOWS) && !defined(WINDOWS) 141131380Stjr# define WINDOWS 142131380Stjr#endif 143157046Sdes#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) 144157046Sdes# ifndef WIN32 145157046Sdes# define WIN32 146157046Sdes# endif 14717651Speter#endif 148131380Stjr#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) 149131380Stjr# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) 150131380Stjr# ifndef SYS16BIT 151131380Stjr# define SYS16BIT 152131380Stjr# endif 15317651Speter# endif 15417651Speter#endif 15517651Speter 15617651Speter/* 15717651Speter * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 15817651Speter * than 64k bytes at a time (needed on systems with 16-bit int). 15917651Speter */ 160131380Stjr#ifdef SYS16BIT 16117651Speter# define MAXSEG_64K 16217651Speter#endif 16317651Speter#ifdef MSDOS 16417651Speter# define UNALIGNED_OK 16517651Speter#endif 16617651Speter 167131380Stjr#ifdef __STDC_VERSION__ 16833908Ssteve# ifndef STDC 16933908Ssteve# define STDC 17033908Ssteve# endif 171131380Stjr# if __STDC_VERSION__ >= 199901L 172131380Stjr# ifndef STDC99 173131380Stjr# define STDC99 174131380Stjr# endif 175131380Stjr# endif 17617651Speter#endif 177131380Stjr#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) 178131380Stjr# define STDC 179131380Stjr#endif 180131380Stjr#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) 181131380Stjr# define STDC 182131380Stjr#endif 183131380Stjr#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) 184131380Stjr# define STDC 185131380Stjr#endif 186131380Stjr#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) 187131380Stjr# define STDC 188131380Stjr#endif 18917651Speter 190131380Stjr#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ 191131380Stjr# define STDC 192131380Stjr#endif 193131380Stjr 19417651Speter#ifndef STDC 19517651Speter# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 196131380Stjr# define const /* note: need a more gentle solution here */ 19717651Speter# endif 19817651Speter#endif 19917651Speter 20017651Speter/* Some Mac compilers merge all .h files incorrectly: */ 201131380Stjr#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) 20217651Speter# define NO_DUMMY_DECL 20317651Speter#endif 20417651Speter 20517651Speter/* Maximum value for memLevel in deflateInit2 */ 20617651Speter#ifndef MAX_MEM_LEVEL 20717651Speter# ifdef MAXSEG_64K 20817651Speter# define MAX_MEM_LEVEL 8 20917651Speter# else 21017651Speter# define MAX_MEM_LEVEL 9 21117651Speter# endif 21217651Speter#endif 21317651Speter 21433908Ssteve/* Maximum value for windowBits in deflateInit2 and inflateInit2. 21533908Ssteve * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 21633908Ssteve * created by gzip. (Files created by minigzip can still be extracted by 21733908Ssteve * gzip.) 21833908Ssteve */ 21917651Speter#ifndef MAX_WBITS 22017651Speter# define MAX_WBITS 15 /* 32K LZ77 window */ 22117651Speter#endif 22217651Speter 22317651Speter/* The memory requirements for deflate are (in bytes): 22433908Ssteve (1 << (windowBits+2)) + (1 << (memLevel+9)) 22517651Speter that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 22617651Speter plus a few kilobytes for small objects. For example, if you want to reduce 22717651Speter the default memory requirements from 256K to 128K, compile with 22817651Speter make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 22917651Speter Of course this will generally degrade compression (there's no free lunch). 23017651Speter 23117651Speter The memory requirements for inflate are (in bytes) 1 << windowBits 23217651Speter that is, 32K for windowBits=15 (default value) plus a few kilobytes 23317651Speter for small objects. 23417651Speter*/ 23517651Speter 23617651Speter /* Type declarations */ 23717651Speter 23817651Speter#ifndef OF /* function prototypes */ 23917651Speter# ifdef STDC 24017651Speter# define OF(args) args 24117651Speter# else 24217651Speter# define OF(args) () 24317651Speter# endif 24417651Speter#endif 24517651Speter 24617651Speter/* The following definitions for FAR are needed only for MSDOS mixed 24717651Speter * model programming (small or medium model with some far allocations). 24817651Speter * This was tested only with MSC; for other MSDOS compilers you may have 24917651Speter * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 25017651Speter * just define FAR to be empty. 25117651Speter */ 252131380Stjr#ifdef SYS16BIT 253131380Stjr# if defined(M_I86SM) || defined(M_I86MM) 254131380Stjr /* MSC small or medium model */ 255131380Stjr# define SMALL_MEDIUM 256131380Stjr# ifdef _MSC_VER 257131380Stjr# define FAR _far 258131380Stjr# else 259131380Stjr# define FAR far 260131380Stjr# endif 26117651Speter# endif 262131380Stjr# if (defined(__SMALL__) || defined(__MEDIUM__)) 263131380Stjr /* Turbo C small or medium model */ 26417651Speter# define SMALL_MEDIUM 265131380Stjr# ifdef __BORLANDC__ 266131380Stjr# define FAR _far 267131380Stjr# else 268131380Stjr# define FAR far 269131380Stjr# endif 27017651Speter# endif 27117651Speter#endif 27233908Ssteve 273131380Stjr#if defined(WINDOWS) || defined(WIN32) 274131380Stjr /* If building or using zlib as a DLL, define ZLIB_DLL. 275131380Stjr * This is not mandatory, but it offers a little performance increase. 276131380Stjr */ 277131380Stjr# ifdef ZLIB_DLL 278131380Stjr# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) 279131380Stjr# ifdef ZLIB_INTERNAL 280131380Stjr# define ZEXTERN extern __declspec(dllexport) 281131380Stjr# else 282131380Stjr# define ZEXTERN extern __declspec(dllimport) 283131380Stjr# endif 284131380Stjr# endif 285131380Stjr# endif /* ZLIB_DLL */ 286131380Stjr /* If building or using zlib with the WINAPI/WINAPIV calling convention, 287131380Stjr * define ZLIB_WINAPI. 288131380Stjr * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. 289131380Stjr */ 290131380Stjr# ifdef ZLIB_WINAPI 29142471Speter# ifdef FAR 29242471Speter# undef FAR 29342471Speter# endif 29442471Speter# include <windows.h> 295131380Stjr /* No need for _export, use ZLIB.DEF instead. */ 296131380Stjr /* For complete Windows compatibility, use WINAPI, not __stdcall. */ 297131380Stjr# define ZEXPORT WINAPI 29842471Speter# ifdef WIN32 299131380Stjr# define ZEXPORTVA WINAPIV 30042471Speter# else 301131380Stjr# define ZEXPORTVA FAR CDECL 30242471Speter# endif 30333908Ssteve# endif 304131380Stjr#endif 305131380Stjr 306131380Stjr#if defined (__BEOS__) 307131380Stjr# ifdef ZLIB_DLL 308131380Stjr# ifdef ZLIB_INTERNAL 309131380Stjr# define ZEXPORT __declspec(dllexport) 310131380Stjr# define ZEXPORTVA __declspec(dllexport) 31142471Speter# else 312131380Stjr# define ZEXPORT __declspec(dllimport) 313131380Stjr# define ZEXPORTVA __declspec(dllimport) 31442471Speter# endif 31542471Speter# endif 31642471Speter#endif 31742471Speter 318205471Sdelphij#ifdef HAVE_VISIBILITY_PRAGMA 319205471Sdelphij# define ZEXTERN __attribute__((visibility ("default"))) extern 320205471Sdelphij#endif 321205471Sdelphij 322131380Stjr#ifndef ZEXTERN 323131380Stjr# define ZEXTERN extern 32433908Ssteve#endif 32542471Speter#ifndef ZEXPORT 32642471Speter# define ZEXPORT 32742471Speter#endif 32842471Speter#ifndef ZEXPORTVA 32942471Speter# define ZEXPORTVA 33042471Speter#endif 33142471Speter 33217651Speter#ifndef FAR 333131380Stjr# define FAR 33417651Speter#endif 33517651Speter 336131380Stjr#if !defined(__MACTYPES__) 33717651Spetertypedef unsigned char Byte; /* 8 bits */ 33842471Speter#endif 33917651Spetertypedef unsigned int uInt; /* 16 bits or more */ 34017651Spetertypedef unsigned long uLong; /* 32 bits or more */ 34117651Speter 34242471Speter#ifdef SMALL_MEDIUM 34342471Speter /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 34417651Speter# define Bytef Byte FAR 34517651Speter#else 34617651Speter typedef Byte FAR Bytef; 34717651Speter#endif 34817651Spetertypedef char FAR charf; 34917651Spetertypedef int FAR intf; 35017651Spetertypedef uInt FAR uIntf; 35117651Spetertypedef uLong FAR uLongf; 35217651Speter 35317651Speter#ifdef STDC 354131380Stjr typedef void const *voidpc; 355131380Stjr typedef void FAR *voidpf; 356131380Stjr typedef void *voidp; 35717651Speter#else 358131380Stjr typedef Byte const *voidpc; 359131380Stjr typedef Byte FAR *voidpf; 360131380Stjr typedef Byte *voidp; 36117651Speter#endif 36217651Speter 363205471Sdelphij#if 0 /* was set to #if 0 by ./configure */ 364205471Sdelphij# define Z_HAVE_UNISTD_H 365205471Sdelphij#endif 366205471Sdelphij 367205471Sdelphij#ifdef Z_HAVE_UNISTD_H 368205471Sdelphij# include <sys/types.h> /* for off_t */ 369205471Sdelphij# include <unistd.h> /* for SEEK_* and off_t */ 370131380Stjr# ifdef VMS 371205471Sdelphij# include <unixio.h> /* for off_t */ 372131380Stjr# endif 373205471Sdelphij# ifndef z_off_t 374205471Sdelphij# define z_off_t off_t 375205471Sdelphij# endif 37633908Ssteve#endif 377205471Sdelphij 378205471Sdelphij#ifdef _LARGEFILE64_SOURCE 379205471Sdelphij# include <sys/types.h> 380205471Sdelphij#endif 381205471Sdelphij 38233908Ssteve#ifndef SEEK_SET 38333908Ssteve# define SEEK_SET 0 /* Seek from beginning of file. */ 38433908Ssteve# define SEEK_CUR 1 /* Seek from current position. */ 38542471Speter# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ 38633908Ssteve#endif 38717651Speter 38852054Sbde/* 389205471Sdelphij * This is hard-configured for FreeBSD. 39052054Sbde */ 391205471Sdelphij#include <sys/types.h> 392205471Sdelphij#define z_off_t off_t 393205471Sdelphij#ifndef _FILE_OFFSET_BITS 394205471Sdelphij#define _FILE_OFFSET_BITS 64 395205471Sdelphij#endif 39652054Sbde 397145490Skientzle#ifndef z_off_t 398145490Skientzle# define z_off_t long 399145490Skientzle#endif 400145490Skientzle 401131380Stjr#if defined(__OS400__) 402145490Skientzle# define NO_vsnprintf 403131380Stjr#endif 404131380Stjr 405131380Stjr#if defined(__MVS__) 406131380Stjr# define NO_vsnprintf 407131380Stjr#endif 408131380Stjr 40933908Ssteve/* MVS linker does not support external names larger than 8 bytes */ 41033908Ssteve#if defined(__MVS__) 411205471Sdelphij #pragma map(deflateInit_,"DEIN") 412205471Sdelphij #pragma map(deflateInit2_,"DEIN2") 413205471Sdelphij #pragma map(deflateEnd,"DEEND") 414205471Sdelphij #pragma map(deflateBound,"DEBND") 415205471Sdelphij #pragma map(inflateInit_,"ININ") 416205471Sdelphij #pragma map(inflateInit2_,"ININ2") 417205471Sdelphij #pragma map(inflateEnd,"INEND") 418205471Sdelphij #pragma map(inflateSync,"INSY") 419205471Sdelphij #pragma map(inflateSetDictionary,"INSEDI") 420205471Sdelphij #pragma map(compressBound,"CMBND") 421205471Sdelphij #pragma map(inflate_table,"INTABL") 422205471Sdelphij #pragma map(inflate_fast,"INFA") 423205471Sdelphij #pragma map(inflate_copyright,"INCOPY") 42417651Speter#endif 42517651Speter 426131380Stjr#endif /* ZCONF_H */ 427