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



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019