Canorus
0.7
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
zlib
zutil.h
Go to the documentation of this file.
1
/* zutil.h -- internal interface and configuration of the compression library
2
* Copyright (C) 1995-2005 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$ */
12
13
#ifndef ZUTIL_H
14
#define ZUTIL_H
15
16
#define ZLIB_INTERNAL
17
#include "
zlib.h
"
18
19
#ifdef STDC
20
# ifndef _WIN32_WCE
21
# include <stddef.h>
22
# endif
23
# include <string.h>
24
# include <stdlib.h>
25
#endif
26
#ifdef NO_ERRNO_H
27
# ifdef _WIN32_WCE
28
/* The Microsoft C Run-Time Library for Windows CE doesn't have
29
* errno. We define it as a global variable to simplify porting.
30
* Its value is always 0 and should not be used. We rename it to
31
* avoid conflict with other libraries that use the same workaround.
32
*/
33
# define errno z_errno
34
# endif
35
extern
int
errno;
36
#else
37
# ifndef _WIN32_WCE
38
# include <errno.h>
39
# endif
40
#endif
41
42
#ifndef local
43
# define local static
44
#endif
45
/* compile with -Dlocal if your debugger can't find static symbols */
46
47
typedef
unsigned
char
uch
;
48
typedef
uch
FAR
uchf
;
49
typedef
unsigned
short
ush
;
50
typedef
ush
FAR
ushf
;
51
typedef
unsigned
long
ulg
;
52
53
extern
const
char
*
const
z_errmsg
[10];
/* indexed by 2-zlib_error */
54
/* (size given to avoid silly warnings with Visual C++) */
55
56
#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
57
58
#define ERR_RETURN(strm,err) \
59
return (strm->msg = (char*)ERR_MSG(err), (err))
60
/* To be used only when the state is known to be valid */
61
62
/* common constants */
63
64
#ifndef DEF_WBITS
65
# define DEF_WBITS MAX_WBITS
66
#endif
67
/* default windowBits for decompression. MAX_WBITS is for compression only */
68
69
#if MAX_MEM_LEVEL >= 8
70
# define DEF_MEM_LEVEL 8
71
#else
72
# define DEF_MEM_LEVEL MAX_MEM_LEVEL
73
#endif
74
/* default memLevel */
75
76
#define STORED_BLOCK 0
77
#define STATIC_TREES 1
78
#define DYN_TREES 2
79
/* The three kinds of block type */
80
81
#define MIN_MATCH 3
82
#define MAX_MATCH 258
83
/* The minimum and maximum match lengths */
84
85
#define PRESET_DICT 0x20
/* preset dictionary flag in zlib header */
86
87
/* target dependencies */
88
89
#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32))
90
# define OS_CODE 0x00
91
# if defined(__TURBOC__) || defined(__BORLANDC__)
92
# if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
93
/* Allow compilation with ANSI keywords only enabled */
94
void
_Cdecl farfree(
void
*block );
95
void
*_Cdecl farmalloc(
unsigned
long
nbytes );
96
# else
97
# include <alloc.h>
98
# endif
99
# else
/* MSC or DJGPP */
100
# include <malloc.h>
101
# endif
102
#endif
103
104
#ifdef AMIGA
105
# define OS_CODE 0x01
106
#endif
107
108
#if defined(VAXC) || defined(VMS)
109
# define OS_CODE 0x02
110
# define F_OPEN(name, mode) \
111
fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
112
#endif
113
114
#if defined(ATARI) || defined(atarist)
115
# define OS_CODE 0x05
116
#endif
117
118
#ifdef OS2
119
# define OS_CODE 0x06
120
# ifdef M_I86
121
#include <malloc.h>
122
# endif
123
#endif
124
125
#if defined(MACOS) || defined(TARGET_OS_MAC)
126
# define OS_CODE 0x07
127
# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
128
# include <unix.h>
/* for fdopen */
129
# else
130
# ifndef fdopen
131
# define fdopen(fd,mode) NULL
/* No fdopen() */
132
# endif
133
# endif
134
#endif
135
136
#ifdef TOPS20
137
# define OS_CODE 0x0a
138
#endif
139
140
#ifdef WIN32
141
# ifndef __CYGWIN__
/* Cygwin is Unix, not Win32 */
142
# define OS_CODE 0x0b
143
# endif
144
#endif
145
146
#ifdef __50SERIES
/* Prime/PRIMOS */
147
# define OS_CODE 0x0f
148
#endif
149
150
#if defined(_BEOS_) || defined(RISCOS)
151
# define fdopen(fd,mode) NULL
/* No fdopen() */
152
#endif
153
154
#if (defined(_MSC_VER) && (_MSC_VER > 600))
155
# if defined(_WIN32_WCE)
156
# define fdopen(fd,mode) NULL
/* No fdopen() */
157
# ifndef _PTRDIFF_T_DEFINED
158
typedef
int
ptrdiff_t;
159
# define _PTRDIFF_T_DEFINED
160
# endif
161
# else
162
# define fdopen(fd,type) _fdopen(fd,type)
163
# endif
164
#endif
165
166
/* common defaults */
167
168
#ifndef OS_CODE
169
# define OS_CODE 0x03
/* assume Unix */
170
#endif
171
172
#ifndef F_OPEN
173
# define F_OPEN(name, mode) fopen((name), (mode))
174
#endif
175
176
/* functions */
177
178
#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
179
# ifndef HAVE_VSNPRINTF
180
# define HAVE_VSNPRINTF
181
# endif
182
#endif
183
#if defined(__CYGWIN__)
184
# ifndef HAVE_VSNPRINTF
185
# define HAVE_VSNPRINTF
186
# endif
187
#endif
188
#ifndef HAVE_VSNPRINTF
189
# ifdef MSDOS
190
/* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
191
but for now we just assume it doesn't. */
192
# define NO_vsnprintf
193
# endif
194
# ifdef __TURBOC__
195
# define NO_vsnprintf
196
# endif
197
# ifdef WIN32
198
/* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
199
# if !defined(vsnprintf) && !defined(NO_vsnprintf)
200
# define vsnprintf _vsnprintf
201
# endif
202
# endif
203
# ifdef __SASC
204
# define NO_vsnprintf
205
# endif
206
#endif
207
#ifdef VMS
208
# define NO_vsnprintf
209
#endif
210
211
#if defined(pyr)
212
# define NO_MEMCPY
213
#endif
214
#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
215
/* Use our own functions for small and medium model with MSC <= 5.0.
216
* You may have to use the same strategy for Borland C (untested).
217
* The __SC__ check is for Symantec.
218
*/
219
# define NO_MEMCPY
220
#endif
221
#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
222
# define HAVE_MEMCPY
223
#endif
224
#ifdef HAVE_MEMCPY
225
# ifdef SMALL_MEDIUM
/* MSDOS small or medium model */
226
# define zmemcpy _fmemcpy
227
# define zmemcmp _fmemcmp
228
# define zmemzero(dest, len) _fmemset(dest, 0, len)
229
# else
230
# define zmemcpy memcpy
231
# define zmemcmp memcmp
232
# define zmemzero(dest, len) memset(dest, 0, len)
233
# endif
234
#else
235
extern
void
zmemcpy
OF
((
Bytef
* dest,
const
Bytef
* source,
uInt
len));
236
extern
int
zmemcmp
OF
((
const
Bytef
* s1,
const
Bytef
* s2,
uInt
len));
237
extern
void
zmemzero
OF
((
Bytef
* dest,
uInt
len));
238
#endif
239
240
/* Diagnostic functions */
241
#ifdef DEBUG
242
# include <stdio.h>
243
extern
int
z_verbose;
244
extern
void
z_error
OF
((
char
*m));
245
# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
246
# define Trace(x) {if (z_verbose>=0) fprintf x ;}
247
# define Tracev(x) {if (z_verbose>0) fprintf x ;}
248
# define Tracevv(x) {if (z_verbose>1) fprintf x ;}
249
# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
250
# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
251
#else
252
# define Assert(cond,msg)
253
# define Trace(x)
254
# define Tracev(x)
255
# define Tracevv(x)
256
# define Tracec(c,x)
257
# define Tracecv(c,x)
258
#endif
259
260
261
voidpf
zcalloc
OF
((
voidpf
opaque,
unsigned
items,
unsigned
size));
262
void
zcfree
OF
((
voidpf
opaque,
voidpf
ptr));
263
264
#define ZALLOC(strm, items, size) \
265
(*((strm)->zalloc))((strm)->opaque, (items), (size))
266
#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
267
#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
268
269
#endif
/* ZUTIL_H */
voidpf
Byte FAR * voidpf
Definition:
zconf.h:283
ushf
ush FAR ushf
Definition:
zutil.h:50
OF
void zmemcpy OF((Bytef *dest, const Bytef *source, uInt len))
Bytef
Byte FAR Bytef
Definition:
zconf.h:270
zlib.h
ush
unsigned short ush
Definition:
zutil.h:49
z_errmsg
const char *const z_errmsg[10]
uch
unsigned char uch
Definition:
zutil.h:47
ulg
unsigned long ulg
Definition:
zutil.h:51
FAR
#define FAR
Definition:
zconf.h:257
uchf
uch FAR uchf
Definition:
zutil.h:48
uInt
unsigned int uInt
Definition:
zconf.h:263
Generated on Wed Oct 15 2014 08:46:38 for Canorus by
1.8.8