www.pudn.com > zlibsource.zip > zconf.h


/* zconf.h -- configuration of the zlib compression library 
 * Copyright (C) 1995-2002 Jean-loup Gailly. 
 * For conditions of distribution and use, see copyright notice in zlib.h  
 */ 
 
/* @(#) $Id: zconf.h,v 1.0 2002-05-07 00:56:37+02 jdehalle Exp $ */ 
 
#ifndef _ZCONF_H 
#define _ZCONF_H 
 
/* 
 * If you *really* need a unique prefix for all types and library functions, 
 * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. 
 */ 
#ifdef Z_PREFIX 
#  define deflateInit_	z_deflateInit_ 
#  define deflate	z_deflate 
#  define deflateEnd	z_deflateEnd 
#  define inflateInit_ 	z_inflateInit_ 
#  define inflate	z_inflate 
#  define inflateEnd	z_inflateEnd 
#  define deflateInit2_	z_deflateInit2_ 
#  define deflateSetDictionary z_deflateSetDictionary 
#  define deflateCopy	z_deflateCopy 
#  define deflateReset	z_deflateReset 
#  define deflateParams	z_deflateParams 
#  define inflateInit2_	z_inflateInit2_ 
#  define inflateSetDictionary z_inflateSetDictionary 
#  define inflateSync	z_inflateSync 
#  define inflateSyncPoint z_inflateSyncPoint 
#  define inflateReset	z_inflateReset 
#  define compress	z_compress 
#  define compress2	z_compress2 
#  define uncompress	z_uncompress 
#  define adler32	z_adler32 
#  define crc32		z_crc32 
#  define get_crc_table z_get_crc_table 
 
#  define Byte		z_Byte 
#  define uInt		z_uInt 
#  define uLong		z_uLong 
#  define Bytef	        z_Bytef 
#  define charf		z_charf 
#  define intf		z_intf 
#  define uIntf		z_uIntf 
#  define uLongf	z_uLongf 
#  define voidpf	z_voidpf 
#  define voidp		z_voidp 
#endif 
 
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) 
#  define WIN32 
#endif 
#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386) 
#  ifndef __32BIT__ 
#    define __32BIT__ 
#  endif 
#endif 
#if defined(__MSDOS__) && !defined(MSDOS) 
#  define MSDOS 
#endif 
 
/* 
 * Compile with -DMAXSEG_64K if the alloc function cannot allocate more 
 * than 64k bytes at a time (needed on systems with 16-bit int). 
 */ 
#if defined(MSDOS) && !defined(__32BIT__) 
#  define MAXSEG_64K 
#endif 
#ifdef MSDOS 
#  define UNALIGNED_OK 
#endif 
 
#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32))  && !defined(STDC) 
#  define STDC 
#endif 
#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__) 
#  ifndef STDC 
#    define STDC 
#  endif 
#endif 
 
#ifndef STDC 
#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ 
#    define const 
#  endif 
#endif 
 
/* Some Mac compilers merge all .h files incorrectly: */ 
#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__) 
#  define NO_DUMMY_DECL 
#endif 
 
/* Old Borland C incorrectly complains about missing returns: */ 
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500) 
#  define NEED_DUMMY_RETURN 
#endif 
 
 
/* Maximum value for memLevel in deflateInit2 */ 
#ifndef MAX_MEM_LEVEL 
#  ifdef MAXSEG_64K 
#    define MAX_MEM_LEVEL 8 
#  else 
#    define MAX_MEM_LEVEL 9 
#  endif 
#endif 
 
/* Maximum value for windowBits in deflateInit2 and inflateInit2. 
 * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 
 * created by gzip. (Files created by minigzip can still be extracted by 
 * gzip.) 
 */ 
#ifndef MAX_WBITS 
#  define MAX_WBITS   15 /* 32K LZ77 window */ 
#endif 
 
/* The memory requirements for deflate are (in bytes): 
            (1 << (windowBits+2)) +  (1 << (memLevel+9)) 
 that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values) 
 plus a few kilobytes for small objects. For example, if you want to reduce 
 the default memory requirements from 256K to 128K, compile with 
     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 
 Of course this will generally degrade compression (there's no free lunch). 
 
   The memory requirements for inflate are (in bytes) 1 << windowBits 
 that is, 32K for windowBits=15 (default value) plus a few kilobytes 
 for small objects. 
*/ 
 
                        /* Type declarations */ 
 
#ifndef OF /* function prototypes */ 
#  ifdef STDC 
#    define OF(args)  args 
#  else 
#    define OF(args)  () 
#  endif 
#endif 
 
/* The following definitions for FAR are needed only for MSDOS mixed 
 * model programming (small or medium model with some far allocations). 
 * This was tested only with MSC; for other MSDOS compilers you may have 
 * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model, 
 * just define FAR to be empty. 
 */ 
#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__) 
   /* MSC small or medium model */ 
#  define SMALL_MEDIUM 
#  ifdef _MSC_VER 
#    define FAR _far 
#  else 
#    define FAR far 
#  endif 
#endif 
#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__)) 
#  ifndef __32BIT__ 
#    define SMALL_MEDIUM 
#    define FAR _far 
#  endif 
#endif 
 
/* Compile with -DZLIB_DLL for Windows DLL support */ 
#if defined(ZLIB_DLL) 
#  if defined(_WINDOWS) || defined(WINDOWS) 
#    ifdef FAR 
#      undef FAR 
#    endif 
#    include  
#    define ZEXPORT  WINAPI 
#    ifdef WIN32 
#      define ZEXPORTVA  WINAPIV 
#    else 
#      define ZEXPORTVA  FAR _cdecl _export 
#    endif 
#  endif 
#  if defined (__BORLANDC__) 
#    if (__BORLANDC__ >= 0x0500) && defined (WIN32) 
#      include  
#      define ZEXPORT __declspec(dllexport) WINAPI 
#      define ZEXPORTRVA __declspec(dllexport) WINAPIV 
#    else 
#      if defined (_Windows) && defined (__DLL__) 
#        define ZEXPORT _export 
#        define ZEXPORTVA _export 
#      endif 
#    endif 
#  endif 
#endif 
 
#if defined (__BEOS__) 
#  if defined (ZLIB_DLL) 
#    define ZEXTERN extern __declspec(dllexport) 
#  else 
#    define ZEXTERN extern __declspec(dllimport) 
#  endif 
#endif 
 
#ifndef ZEXPORT 
#  define ZEXPORT 
#endif 
#ifndef ZEXPORTVA 
#  define ZEXPORTVA 
#endif 
#ifndef ZEXTERN 
#  define ZEXTERN extern 
#endif 
 
#ifndef FAR 
#   define FAR 
#endif 
 
#if !defined(MACOS) && !defined(TARGET_OS_MAC) 
typedef unsigned char  Byte;  /* 8 bits */ 
#endif 
typedef unsigned int   uInt;  /* 16 bits or more */ 
typedef unsigned long  uLong; /* 32 bits or more */ 
 
#ifdef SMALL_MEDIUM 
   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ 
#  define Bytef Byte FAR 
#else 
   typedef Byte  FAR Bytef; 
#endif 
typedef char  FAR charf; 
typedef int   FAR intf; 
typedef uInt  FAR uIntf; 
typedef uLong FAR uLongf; 
 
#ifdef STDC 
   typedef void FAR *voidpf; 
   typedef void     *voidp; 
#else 
   typedef Byte FAR *voidpf; 
   typedef Byte     *voidp; 
#endif 
 
#ifdef HAVE_UNISTD_H 
#  include  /* for off_t */ 
#  include     /* for SEEK_* and off_t */ 
#  define z_off_t  off_t 
#endif 
#ifndef SEEK_SET 
#  define SEEK_SET        0       /* Seek from beginning of file.  */ 
#  define SEEK_CUR        1       /* Seek from current position.  */ 
#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */ 
#endif 
#ifndef z_off_t 
#  define  z_off_t long 
#endif 
 
/* MVS linker does not support external names larger than 8 bytes */ 
#if defined(__MVS__) 
#   pragma map(deflateInit_,"DEIN") 
#   pragma map(deflateInit2_,"DEIN2") 
#   pragma map(deflateEnd,"DEEND") 
#   pragma map(inflateInit_,"ININ") 
#   pragma map(inflateInit2_,"ININ2") 
#   pragma map(inflateEnd,"INEND") 
#   pragma map(inflateSync,"INSY") 
#   pragma map(inflateSetDictionary,"INSEDI") 
#   pragma map(inflate_blocks,"INBL") 
#   pragma map(inflate_blocks_new,"INBLNE") 
#   pragma map(inflate_blocks_free,"INBLFR") 
#   pragma map(inflate_blocks_reset,"INBLRE") 
#   pragma map(inflate_codes_free,"INCOFR") 
#   pragma map(inflate_codes,"INCO") 
#   pragma map(inflate_fast,"INFA") 
#   pragma map(inflate_flush,"INFLU") 
#   pragma map(inflate_mask,"INMA") 
#   pragma map(inflate_set_dictionary,"INSEDI2") 
#   pragma map(inflate_copyright,"INCOPY") 
#   pragma map(inflate_trees_bits,"INTRBI") 
#   pragma map(inflate_trees_dynamic,"INTRDY") 
#   pragma map(inflate_trees_fixed,"INTRFI") 
#   pragma map(inflate_trees_free,"INTRFR") 
#endif 
 
#endif /* _ZCONF_H */