zconf.h revision 33908
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
621673Sjkh/* $FreeBSD: head/lib/libz/zconf.h 33908 1998-02-28 06:08:17Z steve $ */
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
9433908Ssteve/* Borland C incorrectly complains about missing returns: */
9533908Ssteve#if defined(__BORLANDC__)
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
15117651Speter#    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
15917651Speter#    define FAR __far
16017651Speter#  endif
16117651Speter#endif
16233908Ssteve
16333908Ssteve/* Compile with -DZLIB_DLL for Windows DLL support */
16433908Ssteve#if (defined(_WINDOWS) || defined(WINDOWS)) && defined(ZLIB_DLL)
16533908Ssteve#  ifdef FAR
16633908Ssteve#    undef FAR
16733908Ssteve#  endif
16833908Ssteve#  include <windows.h>
16933908Ssteve#  define ZEXPORT  WINAPI
17033908Ssteve#  ifdef WIN32
17133908Ssteve#    define ZEXPORTVA  WINAPIV
17233908Ssteve#  else
17333908Ssteve#    define ZEXPORTVA  FAR _cdecl _export
17433908Ssteve#  endif
17533908Ssteve#else
17633908Ssteve#   if defined (__BORLANDC__) && defined (_Windows) && defined (__DLL__)
17733908Ssteve#       define ZEXPORT _export
17833908Ssteve#       define ZEXPORTVA _export
17933908Ssteve#   else
18033908Ssteve#       define ZEXPORT
18133908Ssteve#       define ZEXPORTVA
18233908Ssteve#   endif
18333908Ssteve#endif
18433908Ssteve
18517651Speter#ifndef FAR
18617651Speter#   define FAR
18717651Speter#endif
18817651Speter
18917651Spetertypedef unsigned char  Byte;  /* 8 bits */
19017651Spetertypedef unsigned int   uInt;  /* 16 bits or more */
19117651Spetertypedef unsigned long  uLong; /* 32 bits or more */
19217651Speter
19317651Speter#if defined(__BORLANDC__) && defined(SMALL_MEDIUM)
19417651Speter   /* Borland C/C++ ignores FAR inside typedef */
19517651Speter#  define Bytef Byte FAR
19617651Speter#else
19717651Speter   typedef Byte  FAR Bytef;
19817651Speter#endif
19917651Spetertypedef char  FAR charf;
20017651Spetertypedef int   FAR intf;
20117651Spetertypedef 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
21233908Ssteve#ifdef HAVE_UNISTD_H
21333908Ssteve#  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.  */
21933908Ssteve#  define SEEK_CUR        1       /* Seek from current position.  */
22033908Ssteve#endif
22133908Ssteve#ifndef z_off_t
22233908Ssteve#  define  z_off_t long
22333908Ssteve#endif
22417651Speter
22533908Ssteve/* MVS linker does not support external names larger than 8 bytes */
22633908Ssteve#if defined(__MVS__)
22733908Ssteve#   pragma map(deflateInit_,"DEIN")
22833908Ssteve#   pragma map(deflateInit2_,"DEIN2")
22933908Ssteve#   pragma map(deflateEnd,"DEEND")
23033908Ssteve#   pragma map(inflateInit_,"ININ")
23133908Ssteve#   pragma map(inflateInit2_,"ININ2")
23233908Ssteve#   pragma map(inflateEnd,"INEND")
23333908Ssteve#   pragma map(inflateSync,"INSY")
23433908Ssteve#   pragma map(inflateSetDictionary,"INSEDI")
23533908Ssteve#   pragma map(inflate_blocks,"INBL")
23633908Ssteve#   pragma map(inflate_blocks_new,"INBLNE")
23733908Ssteve#   pragma map(inflate_blocks_free,"INBLFR")
23833908Ssteve#   pragma map(inflate_blocks_reset,"INBLRE")
23933908Ssteve#   pragma map(inflate_codes_free,"INCOFR")
24033908Ssteve#   pragma map(inflate_codes,"INCO")
24133908Ssteve#   pragma map(inflate_fast,"INFA")
24233908Ssteve#   pragma map(inflate_flush,"INFLU")
24333908Ssteve#   pragma map(inflate_mask,"INMA")
24433908Ssteve#   pragma map(inflate_set_dictionary,"INSEDI2")
24533908Ssteve#   pragma map(inflate_copyright,"INCOPY")
24633908Ssteve#   pragma map(inflate_trees_bits,"INTRBI")
24733908Ssteve#   pragma map(inflate_trees_dynamic,"INTRDY")
24833908Ssteve#   pragma map(inflate_trees_fixed,"INTRFI")
24933908Ssteve#   pragma map(inflate_trees_free,"INTRFR")
25017651Speter#endif
25117651Speter
25217651Speter#endif /* _ZCONF_H */
253