zconf.h revision 33908
117651Speter/* zconf.h -- configuration of the zlib compression library 2205471Sdelphij * Copyright (C) 1995-1998 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 33908 1998-02-28 06:08:17Z steve $ */ 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 */ 15205471Sdelphij#ifdef Z_PREFIX 1617651Speter# define deflateInit_ z_deflateInit_ 17205471Sdelphij# define deflate z_deflate 18205471Sdelphij# define deflateEnd z_deflateEnd 19205471Sdelphij# define inflateInit_ z_inflateInit_ 20205471Sdelphij# define inflate z_inflate 21205471Sdelphij# define inflateEnd z_inflateEnd 22205471Sdelphij# define deflateInit2_ z_deflateInit2_ 23205471Sdelphij# define deflateSetDictionary z_deflateSetDictionary 24205471Sdelphij# define deflateCopy z_deflateCopy 25205471Sdelphij# define deflateReset z_deflateReset 26205471Sdelphij# define deflateParams z_deflateParams 27205471Sdelphij# define inflateInit2_ z_inflateInit2_ 28205471Sdelphij# define inflateSetDictionary z_inflateSetDictionary 29205471Sdelphij# define inflateSync z_inflateSync 30205471Sdelphij# define inflateSyncPoint z_inflateSyncPoint 31205471Sdelphij# define inflateReset z_inflateReset 32205471Sdelphij# define compress z_compress 33205471Sdelphij# define compress2 z_compress2 34205471Sdelphij# define uncompress z_uncompress 35205471Sdelphij# define adler32 z_adler32 36145490Skientzle# define crc32 z_crc32 37205471Sdelphij# define get_crc_table z_get_crc_table 38205471Sdelphij 39145490Skientzle# define Byte z_Byte 40145490Skientzle# define uInt z_uInt 41205471Sdelphij# define uLong z_uLong 42145490Skientzle# define Bytef z_Bytef 43145490Skientzle# define charf z_charf 44205471Sdelphij# define intf z_intf 45205471Sdelphij# define uIntf z_uIntf 46205471Sdelphij# define uLongf z_uLongf 47205471Sdelphij# define voidpf z_voidpf 48205471Sdelphij# define voidp z_voidp 49205471Sdelphij#endif 50205471Sdelphij 51205471Sdelphij#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) 52205471Sdelphij# define WIN32 53205471Sdelphij#endif 54205471Sdelphij#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386) 55205471Sdelphij# ifndef __32BIT__ 56205471Sdelphij# define __32BIT__ 57205471Sdelphij# endif 58205471Sdelphij#endif 59205471Sdelphij#if defined(__MSDOS__) && !defined(MSDOS) 60205471Sdelphij# define MSDOS 61205471Sdelphij#endif 62205471Sdelphij 63205471Sdelphij/* 64205471Sdelphij * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 65205471Sdelphij * than 64k bytes at a time (needed on systems with 16-bit int). 66205471Sdelphij */ 67205471Sdelphij#if defined(MSDOS) && !defined(__32BIT__) 68205471Sdelphij# define MAXSEG_64K 69205471Sdelphij#endif 70205471Sdelphij#ifdef MSDOS 71205471Sdelphij# define UNALIGNED_OK 72205471Sdelphij#endif 73205471Sdelphij 74205471Sdelphij#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) && !defined(STDC) 75205471Sdelphij# define STDC 76205471Sdelphij#endif 77205471Sdelphij#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__) 78205471Sdelphij# ifndef STDC 79205471Sdelphij# define STDC 80205471Sdelphij# endif 81205471Sdelphij#endif 82205471Sdelphij 83205471Sdelphij#ifndef STDC 84205471Sdelphij# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 85205471Sdelphij# define const 86205471Sdelphij# endif 87205471Sdelphij#endif 88145490Skientzle 89205471Sdelphij/* Some Mac compilers merge all .h files incorrectly: */ 90205471Sdelphij#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__) 91205471Sdelphij# define NO_DUMMY_DECL 92205471Sdelphij#endif 93205471Sdelphij 94145490Skientzle/* Borland C incorrectly complains about missing returns: */ 95145490Skientzle#if defined(__BORLANDC__) 96145490Skientzle# define NEED_DUMMY_RETURN 97205471Sdelphij#endif 98205471Sdelphij 99205471Sdelphij 100205471Sdelphij/* Maximum value for memLevel in deflateInit2 */ 101145490Skientzle#ifndef MAX_MEM_LEVEL 102145490Skientzle# ifdef MAXSEG_64K 103205471Sdelphij# define MAX_MEM_LEVEL 8 104205471Sdelphij# else 105205471Sdelphij# define MAX_MEM_LEVEL 9 106205471Sdelphij# endif 10717651Speter#endif 108205471Sdelphij 109205471Sdelphij/* Maximum value for windowBits in deflateInit2 and inflateInit2. 110205471Sdelphij * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 111157046Sdes * created by gzip. (Files created by minigzip can still be extracted by 112205471Sdelphij * gzip.) 113157046Sdes */ 114205471Sdelphij#ifndef MAX_WBITS 115205471Sdelphij# define MAX_WBITS 15 /* 32K LZ77 window */ 116205471Sdelphij#endif 117157046Sdes 118205471Sdelphij/* The memory requirements for deflate are (in bytes): 119157046Sdes (1 << (windowBits+2)) + (1 << (memLevel+9)) 120145490Skientzle that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 121205471Sdelphij plus a few kilobytes for small objects. For example, if you want to reduce 122145490Skientzle the default memory requirements from 256K to 128K, compile with 123145490Skientzle make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 124205471Sdelphij Of course this will generally degrade compression (there's no free lunch). 125205471Sdelphij 126145490Skientzle The memory requirements for inflate are (in bytes) 1 << windowBits 127205471Sdelphij that is, 32K for windowBits=15 (default value) plus a few kilobytes 128205471Sdelphij for small objects. 129205471Sdelphij*/ 130205471Sdelphij 131205471Sdelphij /* Type declarations */ 13217651Speter 13317651Speter#ifndef OF /* function prototypes */ 134131380Stjr# ifdef STDC 135131380Stjr# define OF(args) args 136131380Stjr# else 137131380Stjr# define OF(args) () 138131380Stjr# endif 139131380Stjr#endif 140131380Stjr 141131380Stjr/* The following definitions for FAR are needed only for MSDOS mixed 142131380Stjr * model programming (small or medium model with some far allocations). 143157046Sdes * This was tested only with MSC; for other MSDOS compilers you may have 144157046Sdes * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 145157046Sdes * just define FAR to be empty. 146157046Sdes */ 14717651Speter#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__) 148131380Stjr /* MSC small or medium model */ 149131380Stjr# define SMALL_MEDIUM 150131380Stjr# ifdef _MSC_VER 151131380Stjr# define FAR __far 152131380Stjr# else 15317651Speter# define FAR far 15417651Speter# endif 15517651Speter#endif 15617651Speter#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__)) 15717651Speter# ifndef __32BIT__ 15817651Speter# define SMALL_MEDIUM 15917651Speter# define FAR __far 160131380Stjr# endif 16117651Speter#endif 16217651Speter 16317651Speter/* Compile with -DZLIB_DLL for Windows DLL support */ 16417651Speter#if (defined(_WINDOWS) || defined(WINDOWS)) && defined(ZLIB_DLL) 16517651Speter# ifdef FAR 16617651Speter# undef FAR 167131380Stjr# endif 16833908Ssteve# include <windows.h> 16933908Ssteve# define ZEXPORT WINAPI 17033908Ssteve# ifdef WIN32 171131380Stjr# define ZEXPORTVA WINAPIV 172131380Stjr# else 173131380Stjr# define ZEXPORTVA FAR _cdecl _export 174131380Stjr# endif 175131380Stjr#else 17617651Speter# if defined (__BORLANDC__) && defined (_Windows) && defined (__DLL__) 177131380Stjr# define ZEXPORT _export 178131380Stjr# define ZEXPORTVA _export 179131380Stjr# else 180131380Stjr# define ZEXPORT 181131380Stjr# define ZEXPORTVA 182131380Stjr# endif 183131380Stjr#endif 184131380Stjr 185131380Stjr#ifndef FAR 186131380Stjr# define FAR 187131380Stjr#endif 188131380Stjr 18917651Spetertypedef unsigned char Byte; /* 8 bits */ 190131380Stjrtypedef unsigned int uInt; /* 16 bits or more */ 191131380Stjrtypedef unsigned long uLong; /* 32 bits or more */ 192131380Stjr 193131380Stjr#if defined(__BORLANDC__) && defined(SMALL_MEDIUM) 19417651Speter /* Borland C/C++ ignores FAR inside typedef */ 19517651Speter# define Bytef Byte FAR 196131380Stjr#else 19717651Speter typedef Byte FAR Bytef; 19817651Speter#endif 19917651Spetertypedef char FAR charf; 20017651Spetertypedef int FAR intf; 201131380Stjrtypedef uInt FAR uIntf; 20217651Spetertypedef uLong FAR uLongf; 20317651Speter 20417651Speter#ifdef STDC 20517651Speter typedef void FAR *voidpf; 20617651Speter typedef void *voidp; 20717651Speter#else 20817651Speter typedef Byte FAR *voidpf; 20917651Speter typedef Byte *voidp; 21017651Speter#endif 21117651Speter 21217651Speter#ifdef HAVE_UNISTD_H 21317651Speter# include <sys/types.h> /* for off_t */ 21433908Ssteve# include <unistd.h> /* for SEEK_* and off_t */ 21533908Ssteve# define z_off_t off_t 21633908Ssteve#endif 21733908Ssteve#ifndef SEEK_SET 21833908Ssteve# define SEEK_SET 0 /* Seek from beginning of file. */ 21917651Speter# define SEEK_CUR 1 /* Seek from current position. */ 22017651Speter#endif 22117651Speter#ifndef z_off_t 22217651Speter# define z_off_t long 22317651Speter#endif 22433908Ssteve 22517651Speter/* MVS linker does not support external names larger than 8 bytes */ 22617651Speter#if defined(__MVS__) 22717651Speter# pragma map(deflateInit_,"DEIN") 22817651Speter# pragma map(deflateInit2_,"DEIN2") 22917651Speter# pragma map(deflateEnd,"DEEND") 23017651Speter# pragma map(inflateInit_,"ININ") 23117651Speter# pragma map(inflateInit2_,"ININ2") 23217651Speter# pragma map(inflateEnd,"INEND") 23317651Speter# pragma map(inflateSync,"INSY") 23417651Speter# pragma map(inflateSetDictionary,"INSEDI") 23517651Speter# pragma map(inflate_blocks,"INBL") 23617651Speter# pragma map(inflate_blocks_new,"INBLNE") 23717651Speter# pragma map(inflate_blocks_free,"INBLFR") 23817651Speter# pragma map(inflate_blocks_reset,"INBLRE") 23917651Speter# pragma map(inflate_codes_free,"INCOFR") 24017651Speter# pragma map(inflate_codes,"INCO") 24117651Speter# pragma map(inflate_fast,"INFA") 24217651Speter# pragma map(inflate_flush,"INFLU") 24317651Speter# pragma map(inflate_mask,"INMA") 24417651Speter# pragma map(inflate_set_dictionary,"INSEDI2") 24517651Speter# pragma map(inflate_copyright,"INCOPY") 24617651Speter# pragma map(inflate_trees_bits,"INTRBI") 24717651Speter# pragma map(inflate_trees_dynamic,"INTRDY") 24817651Speter# pragma map(inflate_trees_fixed,"INTRFI") 24917651Speter# pragma map(inflate_trees_free,"INTRFR") 25017651Speter#endif 25117651Speter 252131380Stjr#endif /* _ZCONF_H */ 253131380Stjr