zconf.h revision 50476
117651Speter/* zconf.h -- configuration of the zlib compression library
233908Ssteve * Copyright (C) 1995-1998 Jean-loup Gailly.
317651Speter * For conditions of distribution and use, see copyright notice in zlib.h
417651Speter */
517651Speter
650476Speter/* @(#) $FreeBSD: head/lib/libz/zconf.h 50476 1999-08-28 00:22:10Z peter $ */
717651Speter
817651Speter#ifndef _ZCONF_H
917651Speter#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.
1417651Speter */
1517651Speter#ifdef Z_PREFIX
1617651Speter#  define deflateInit_	z_deflateInit_
1717651Speter#  define deflate	z_deflate
1817651Speter#  define deflateEnd	z_deflateEnd
1917651Speter#  define inflateInit_ 	z_inflateInit_
2017651Speter#  define inflate	z_inflate
2117651Speter#  define inflateEnd	z_inflateEnd
2217651Speter#  define deflateInit2_	z_deflateInit2_
2317651Speter#  define deflateSetDictionary z_deflateSetDictionary
2417651Speter#  define deflateCopy	z_deflateCopy
2517651Speter#  define deflateReset	z_deflateReset
2617651Speter#  define deflateParams	z_deflateParams
2717651Speter#  define inflateInit2_	z_inflateInit2_
2817651Speter#  define inflateSetDictionary z_inflateSetDictionary
2917651Speter#  define inflateSync	z_inflateSync
3033908Ssteve#  define inflateSyncPoint z_inflateSyncPoint
3117651Speter#  define inflateReset	z_inflateReset
3217651Speter#  define compress	z_compress
3333908Ssteve#  define compress2	z_compress2
3417651Speter#  define uncompress	z_uncompress
3517651Speter#  define adler32	z_adler32
3617651Speter#  define crc32		z_crc32
3717651Speter#  define get_crc_table z_get_crc_table
3817651Speter
3917651Speter#  define Byte		z_Byte
4017651Speter#  define uInt		z_uInt
4117651Speter#  define uLong		z_uLong
4217651Speter#  define Bytef	        z_Bytef
4317651Speter#  define charf		z_charf
4417651Speter#  define intf		z_intf
4517651Speter#  define uIntf		z_uIntf
4617651Speter#  define uLongf	z_uLongf
4717651Speter#  define voidpf	z_voidpf
4817651Speter#  define voidp		z_voidp
4917651Speter#endif
5017651Speter
5117651Speter#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
5217651Speter#  define WIN32
5317651Speter#endif
5417651Speter#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
5517651Speter#  ifndef __32BIT__
5617651Speter#    define __32BIT__
5717651Speter#  endif
5817651Speter#endif
5917651Speter#if defined(__MSDOS__) && !defined(MSDOS)
6017651Speter#  define MSDOS
6117651Speter#endif
6217651Speter
6317651Speter/*
6417651Speter * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
6517651Speter * than 64k bytes at a time (needed on systems with 16-bit int).
6617651Speter */
6717651Speter#if defined(MSDOS) && !defined(__32BIT__)
6817651Speter#  define MAXSEG_64K
6917651Speter#endif
7017651Speter#ifdef MSDOS
7117651Speter#  define UNALIGNED_OK
7217651Speter#endif
7317651Speter
7417651Speter#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32))  && !defined(STDC)
7517651Speter#  define STDC
7617651Speter#endif
7733908Ssteve#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)
7833908Ssteve#  ifndef STDC
7933908Ssteve#    define STDC
8033908Ssteve#  endif
8117651Speter#endif
8217651Speter
8317651Speter#ifndef STDC
8417651Speter#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
8517651Speter#    define const
8617651Speter#  endif
8717651Speter#endif
8817651Speter
8917651Speter/* Some Mac compilers merge all .h files incorrectly: */
9017651Speter#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
9117651Speter#  define NO_DUMMY_DECL
9217651Speter#endif
9317651Speter
9442471Speter/* Old Borland C incorrectly complains about missing returns: */
9542471Speter#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
9633908Ssteve#  define NEED_DUMMY_RETURN
9733908Ssteve#endif
9833908Ssteve
9933908Ssteve
10017651Speter/* Maximum value for memLevel in deflateInit2 */
10117651Speter#ifndef MAX_MEM_LEVEL
10217651Speter#  ifdef MAXSEG_64K
10317651Speter#    define MAX_MEM_LEVEL 8
10417651Speter#  else
10517651Speter#    define MAX_MEM_LEVEL 9
10617651Speter#  endif
10717651Speter#endif
10817651Speter
10933908Ssteve/* Maximum value for windowBits in deflateInit2 and inflateInit2.
11033908Ssteve * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
11133908Ssteve * created by gzip. (Files created by minigzip can still be extracted by
11233908Ssteve * gzip.)
11333908Ssteve */
11417651Speter#ifndef MAX_WBITS
11517651Speter#  define MAX_WBITS   15 /* 32K LZ77 window */
11617651Speter#endif
11717651Speter
11817651Speter/* The memory requirements for deflate are (in bytes):
11933908Ssteve            (1 << (windowBits+2)) +  (1 << (memLevel+9))
12017651Speter that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
12117651Speter plus a few kilobytes for small objects. For example, if you want to reduce
12217651Speter the default memory requirements from 256K to 128K, compile with
12317651Speter     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
12417651Speter Of course this will generally degrade compression (there's no free lunch).
12517651Speter
12617651Speter   The memory requirements for inflate are (in bytes) 1 << windowBits
12717651Speter that is, 32K for windowBits=15 (default value) plus a few kilobytes
12817651Speter for small objects.
12917651Speter*/
13017651Speter
13117651Speter                        /* Type declarations */
13217651Speter
13317651Speter#ifndef OF /* function prototypes */
13417651Speter#  ifdef STDC
13517651Speter#    define OF(args)  args
13617651Speter#  else
13717651Speter#    define OF(args)  ()
13817651Speter#  endif
13917651Speter#endif
14017651Speter
14117651Speter/* The following definitions for FAR are needed only for MSDOS mixed
14217651Speter * model programming (small or medium model with some far allocations).
14317651Speter * This was tested only with MSC; for other MSDOS compilers you may have
14417651Speter * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
14517651Speter * just define FAR to be empty.
14617651Speter */
14717651Speter#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
14817651Speter   /* MSC small or medium model */
14917651Speter#  define SMALL_MEDIUM
15017651Speter#  ifdef _MSC_VER
15142471Speter#    define FAR _far
15217651Speter#  else
15317651Speter#    define FAR far
15417651Speter#  endif
15517651Speter#endif
15617651Speter#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
15717651Speter#  ifndef __32BIT__
15817651Speter#    define SMALL_MEDIUM
15942471Speter#    define FAR _far
16017651Speter#  endif
16117651Speter#endif
16233908Ssteve
16333908Ssteve/* Compile with -DZLIB_DLL for Windows DLL support */
16442471Speter#if defined(ZLIB_DLL)
16542471Speter#  if defined(_WINDOWS) || defined(WINDOWS)
16642471Speter#    ifdef FAR
16742471Speter#      undef FAR
16842471Speter#    endif
16942471Speter#    include <windows.h>
17042471Speter#    define ZEXPORT  WINAPI
17142471Speter#    ifdef WIN32
17242471Speter#      define ZEXPORTVA  WINAPIV
17342471Speter#    else
17442471Speter#      define ZEXPORTVA  FAR _cdecl _export
17542471Speter#    endif
17633908Ssteve#  endif
17742471Speter#  if defined (__BORLANDC__)
17842471Speter#    if (__BORLANDC__ >= 0x0500) && defined (WIN32)
17942471Speter#      include <windows.h>
18042471Speter#      define ZEXPORT __declspec(dllexport) WINAPI
18142471Speter#      define ZEXPORTRVA __declspec(dllexport) WINAPIV
18242471Speter#    else
18342471Speter#      if defined (_Windows) && defined (__DLL__)
18442471Speter#        define ZEXPORT _export
18542471Speter#        define ZEXPORTVA _export
18642471Speter#      endif
18742471Speter#    endif
18842471Speter#  endif
18942471Speter#endif
19042471Speter
19142471Speter#if defined (__BEOS__)
19242471Speter#  if defined (ZLIB_DLL)
19342471Speter#    define ZEXTERN extern __declspec(dllexport)
19433908Ssteve#  else
19542471Speter#    define ZEXTERN extern __declspec(dllimport)
19633908Ssteve#  endif
19733908Ssteve#endif
19833908Ssteve
19942471Speter#ifndef ZEXPORT
20042471Speter#  define ZEXPORT
20142471Speter#endif
20242471Speter#ifndef ZEXPORTVA
20342471Speter#  define ZEXPORTVA
20442471Speter#endif
20542471Speter#ifndef ZEXTERN
20642471Speter#  define ZEXTERN extern
20742471Speter#endif
20842471Speter
20917651Speter#ifndef FAR
21017651Speter#   define FAR
21117651Speter#endif
21217651Speter
21342471Speter#if !defined(MACOS) && !defined(TARGET_OS_MAC)
21417651Spetertypedef unsigned char  Byte;  /* 8 bits */
21542471Speter#endif
21617651Spetertypedef unsigned int   uInt;  /* 16 bits or more */
21717651Spetertypedef unsigned long  uLong; /* 32 bits or more */
21817651Speter
21942471Speter#ifdef SMALL_MEDIUM
22042471Speter   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
22117651Speter#  define Bytef Byte FAR
22217651Speter#else
22317651Speter   typedef Byte  FAR Bytef;
22417651Speter#endif
22517651Spetertypedef char  FAR charf;
22617651Spetertypedef int   FAR intf;
22717651Spetertypedef uInt  FAR uIntf;
22817651Spetertypedef uLong FAR uLongf;
22917651Speter
23017651Speter#ifdef STDC
23117651Speter   typedef void FAR *voidpf;
23217651Speter   typedef void     *voidp;
23317651Speter#else
23417651Speter   typedef Byte FAR *voidpf;
23517651Speter   typedef Byte     *voidp;
23617651Speter#endif
23717651Speter
23833908Ssteve#ifdef HAVE_UNISTD_H
23933908Ssteve#  include <sys/types.h> /* for off_t */
24033908Ssteve#  include <unistd.h>    /* for SEEK_* and off_t */
24133908Ssteve#  define z_off_t  off_t
24233908Ssteve#endif
24333908Ssteve#ifndef SEEK_SET
24433908Ssteve#  define SEEK_SET        0       /* Seek from beginning of file.  */
24533908Ssteve#  define SEEK_CUR        1       /* Seek from current position.  */
24642471Speter#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
24733908Ssteve#endif
24833908Ssteve#ifndef z_off_t
24933908Ssteve#  define  z_off_t long
25033908Ssteve#endif
25117651Speter
25233908Ssteve/* MVS linker does not support external names larger than 8 bytes */
25333908Ssteve#if defined(__MVS__)
25433908Ssteve#   pragma map(deflateInit_,"DEIN")
25533908Ssteve#   pragma map(deflateInit2_,"DEIN2")
25633908Ssteve#   pragma map(deflateEnd,"DEEND")
25733908Ssteve#   pragma map(inflateInit_,"ININ")
25833908Ssteve#   pragma map(inflateInit2_,"ININ2")
25933908Ssteve#   pragma map(inflateEnd,"INEND")
26033908Ssteve#   pragma map(inflateSync,"INSY")
26133908Ssteve#   pragma map(inflateSetDictionary,"INSEDI")
26233908Ssteve#   pragma map(inflate_blocks,"INBL")
26333908Ssteve#   pragma map(inflate_blocks_new,"INBLNE")
26433908Ssteve#   pragma map(inflate_blocks_free,"INBLFR")
26533908Ssteve#   pragma map(inflate_blocks_reset,"INBLRE")
26633908Ssteve#   pragma map(inflate_codes_free,"INCOFR")
26733908Ssteve#   pragma map(inflate_codes,"INCO")
26833908Ssteve#   pragma map(inflate_fast,"INFA")
26933908Ssteve#   pragma map(inflate_flush,"INFLU")
27033908Ssteve#   pragma map(inflate_mask,"INMA")
27133908Ssteve#   pragma map(inflate_set_dictionary,"INSEDI2")
27233908Ssteve#   pragma map(inflate_copyright,"INCOPY")
27333908Ssteve#   pragma map(inflate_trees_bits,"INTRBI")
27433908Ssteve#   pragma map(inflate_trees_dynamic,"INTRDY")
27533908Ssteve#   pragma map(inflate_trees_fixed,"INTRFI")
27633908Ssteve#   pragma map(inflate_trees_free,"INTRFR")
27717651Speter#endif
27817651Speter
27917651Speter#endif /* _ZCONF_H */
280