source: trunk/third/zlib/zutil.h @ 17315

Revision 17315, 5.5 KB checked in by zacheiss, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r17314, which included commits to RCS files with non-trunk default branches.
Line 
1/* zutil.h -- internal interface and configuration of the compression library
2 * Copyright (C) 1995-2002 Jean-loup Gailly.
3 * For conditions of distribution and use, see copyright notice in zlib.h
4 */
5
6/* WARNING: this file should *not* be used by applications. It is
7   part of the implementation of the compression library and is
8   subject to change. Applications should only use zlib.h.
9 */
10
11/* @(#) $Id: zutil.h,v 1.1.1.2 2002-03-12 17:19:03 zacheiss Exp $ */
12
13#ifndef _Z_UTIL_H
14#define _Z_UTIL_H
15
16#include "zlib.h"
17
18#ifdef STDC
19#  include <stddef.h>
20#  include <string.h>
21#  include <stdlib.h>
22#endif
23#ifdef NO_ERRNO_H
24    extern int errno;
25#else
26#   include <errno.h>
27#endif
28
29#ifndef local
30#  define local static
31#endif
32/* compile with -Dlocal if your debugger can't find static symbols */
33
34typedef unsigned char  uch;
35typedef uch FAR uchf;
36typedef unsigned short ush;
37typedef ush FAR ushf;
38typedef unsigned long  ulg;
39
40extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */
41/* (size given to avoid silly warnings with Visual C++) */
42
43#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
44
45#define ERR_RETURN(strm,err) \
46  return (strm->msg = (char*)ERR_MSG(err), (err))
47/* To be used only when the state is known to be valid */
48
49        /* common constants */
50
51#ifndef DEF_WBITS
52#  define DEF_WBITS MAX_WBITS
53#endif
54/* default windowBits for decompression. MAX_WBITS is for compression only */
55
56#if MAX_MEM_LEVEL >= 8
57#  define DEF_MEM_LEVEL 8
58#else
59#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
60#endif
61/* default memLevel */
62
63#define STORED_BLOCK 0
64#define STATIC_TREES 1
65#define DYN_TREES    2
66/* The three kinds of block type */
67
68#define MIN_MATCH  3
69#define MAX_MATCH  258
70/* The minimum and maximum match lengths */
71
72#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
73
74        /* target dependencies */
75
76#ifdef MSDOS
77#  define OS_CODE  0x00
78#  if defined(__TURBOC__) || defined(__BORLANDC__)
79#    if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
80       /* Allow compilation with ANSI keywords only enabled */
81       void _Cdecl farfree( void *block );
82       void *_Cdecl farmalloc( unsigned long nbytes );
83#    else
84#     include <alloc.h>
85#    endif
86#  else /* MSC or DJGPP */
87#    include <malloc.h>
88#  endif
89#endif
90
91#ifdef OS2
92#  define OS_CODE  0x06
93#endif
94
95#ifdef WIN32 /* Window 95 & Windows NT */
96#  define OS_CODE  0x0b
97#endif
98
99#if defined(VAXC) || defined(VMS)
100#  define OS_CODE  0x02
101#  define F_OPEN(name, mode) \
102     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
103#endif
104
105#ifdef AMIGA
106#  define OS_CODE  0x01
107#endif
108
109#if defined(ATARI) || defined(atarist)
110#  define OS_CODE  0x05
111#endif
112
113#if defined(MACOS) || defined(TARGET_OS_MAC)
114#  define OS_CODE  0x07
115#  if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
116#    include <unix.h> /* for fdopen */
117#  else
118#    ifndef fdopen
119#      define fdopen(fd,mode) NULL /* No fdopen() */
120#    endif
121#  endif
122#endif
123
124#ifdef __50SERIES /* Prime/PRIMOS */
125#  define OS_CODE  0x0F
126#endif
127
128#ifdef TOPS20
129#  define OS_CODE  0x0a
130#endif
131
132#if defined(_BEOS_) || defined(RISCOS)
133#  define fdopen(fd,mode) NULL /* No fdopen() */
134#endif
135
136#if (defined(_MSC_VER) && (_MSC_VER > 600))
137#  define fdopen(fd,type)  _fdopen(fd,type)
138#endif
139
140
141        /* Common defaults */
142
143#ifndef OS_CODE
144#  define OS_CODE  0x03  /* assume Unix */
145#endif
146
147#ifndef F_OPEN
148#  define F_OPEN(name, mode) fopen((name), (mode))
149#endif
150
151         /* functions */
152
153#ifdef HAVE_STRERROR
154   extern char *strerror OF((int));
155#  define zstrerror(errnum) strerror(errnum)
156#else
157#  define zstrerror(errnum) ""
158#endif
159
160#if defined(pyr)
161#  define NO_MEMCPY
162#endif
163#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
164 /* Use our own functions for small and medium model with MSC <= 5.0.
165  * You may have to use the same strategy for Borland C (untested).
166  * The __SC__ check is for Symantec.
167  */
168#  define NO_MEMCPY
169#endif
170#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
171#  define HAVE_MEMCPY
172#endif
173#ifdef HAVE_MEMCPY
174#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
175#    define zmemcpy _fmemcpy
176#    define zmemcmp _fmemcmp
177#    define zmemzero(dest, len) _fmemset(dest, 0, len)
178#  else
179#    define zmemcpy memcpy
180#    define zmemcmp memcmp
181#    define zmemzero(dest, len) memset(dest, 0, len)
182#  endif
183#else
184   extern void zmemcpy  OF((Bytef* dest, const Bytef* source, uInt len));
185   extern int  zmemcmp  OF((const Bytef* s1, const Bytef* s2, uInt len));
186   extern void zmemzero OF((Bytef* dest, uInt len));
187#endif
188
189/* Diagnostic functions */
190#ifdef DEBUG
191#  include <stdio.h>
192   extern int z_verbose;
193   extern void z_error    OF((char *m));
194#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
195#  define Trace(x) {if (z_verbose>=0) fprintf x ;}
196#  define Tracev(x) {if (z_verbose>0) fprintf x ;}
197#  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
198#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
199#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
200#else
201#  define Assert(cond,msg)
202#  define Trace(x)
203#  define Tracev(x)
204#  define Tracevv(x)
205#  define Tracec(c,x)
206#  define Tracecv(c,x)
207#endif
208
209
210typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf,
211                                       uInt len));
212voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
213void   zcfree  OF((voidpf opaque, voidpf ptr));
214
215#define ZALLOC(strm, items, size) \
216           (*((strm)->zalloc))((strm)->opaque, (items), (size))
217#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
218#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
219
220#endif /* _Z_UTIL_H */
Note: See TracBrowser for help on using the repository browser.