Rizin
unix-like reverse engineering framework and cli tools
zutil.h
Go to the documentation of this file.
1 /* zutil.h -- internal interface and configuration of the compression library
2  * Copyright (C) 1995-2022 Jean-loup Gailly, Mark Adler
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 #ifdef HAVE_HIDDEN
17 # define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
18 #else
19 # define ZLIB_INTERNAL
20 #endif
21 
22 #include "zlib.h"
23 
24 #if defined(STDC) && !defined(Z_SOLO)
25 # if !(defined(_WIN32_WCE) && defined(_MSC_VER))
26 # include <stddef.h>
27 # endif
28 # include <string.h>
29 # include <stdlib.h>
30 #endif
31 
32 #ifndef local
33 # define local static
34 #endif
35 /* since "static" is used to mean two completely different things in C, we
36  define "local" for the non-static meaning of "static", for readability
37  (compile with -Dlocal if your debugger can't find static symbols) */
38 
39 typedef unsigned char uch;
40 typedef uch FAR uchf;
41 typedef unsigned short ush;
42 typedef ush FAR ushf;
43 typedef unsigned long ulg;
44 
45 #if !defined(Z_U8) && !defined(Z_SOLO) && defined(STDC)
46 # include <limits.h>
47 # if (ULONG_MAX == 0xffffffffffffffff)
48 # define Z_U8 unsigned long
49 # elif (ULLONG_MAX == 0xffffffffffffffff)
50 # define Z_U8 unsigned long long
51 # elif (UINT_MAX == 0xffffffffffffffff)
52 # define Z_U8 unsigned
53 # endif
54 #endif
55 
56 extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
57 /* (size given to avoid silly warnings with Visual C++) */
58 
59 #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
60 
61 #define ERR_RETURN(strm,err) \
62  return (strm->msg = 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 # ifndef Z_SOLO
95 # if defined(__TURBOC__) || defined(__BORLANDC__)
96 # if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
97  /* Allow compilation with ANSI keywords only enabled */
98  void _Cdecl farfree( void *block );
99  void *_Cdecl farmalloc( unsigned long nbytes );
100 # else
101 # include <alloc.h>
102 # endif
103 # else /* MSC or DJGPP */
104 # include <malloc.h>
105 # endif
106 # endif
107 #endif
108 
109 #ifdef AMIGA
110 # define OS_CODE 1
111 #endif
112 
113 #if defined(VAXC) || defined(VMS)
114 # define OS_CODE 2
115 # define F_OPEN(name, mode) \
116  fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
117 #endif
118 
119 #ifdef __370__
120 # if __TARGET_LIB__ < 0x20000000
121 # define OS_CODE 4
122 # elif __TARGET_LIB__ < 0x40000000
123 # define OS_CODE 11
124 # else
125 # define OS_CODE 8
126 # endif
127 #endif
128 
129 #if defined(ATARI) || defined(atarist)
130 # define OS_CODE 5
131 #endif
132 
133 #ifdef OS2
134 # define OS_CODE 6
135 # if defined(M_I86) && !defined(Z_SOLO)
136 # include <malloc.h>
137 # endif
138 #endif
139 
140 #if defined(MACOS) || defined(TARGET_OS_MAC)
141 # define OS_CODE 7
142 # ifndef Z_SOLO
143 # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
144 # include <unix.h> /* for fdopen */
145 # else
146 # ifndef fdopen
147 # define fdopen(fd,mode) NULL /* No fdopen() */
148 # endif
149 # endif
150 # endif
151 #endif
152 
153 #ifdef __acorn
154 # define OS_CODE 13
155 #endif
156 
157 #if defined(WIN32) && !defined(__CYGWIN__)
158 # define OS_CODE 10
159 #endif
160 
161 #ifdef _BEOS_
162 # define OS_CODE 16
163 #endif
164 
165 #ifdef __TOS_OS400__
166 # define OS_CODE 18
167 #endif
168 
169 #ifdef __APPLE__
170 # define OS_CODE 19
171 #endif
172 
173 #if defined(_BEOS_) || defined(RISCOS)
174 # define fdopen(fd,mode) NULL /* No fdopen() */
175 #endif
176 
177 #if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX
178 # if defined(_WIN32_WCE)
179 # define fdopen(fd,mode) NULL /* No fdopen() */
180 # else
181 # define fdopen(fd,type) _fdopen(fd,type)
182 # endif
183 #endif
184 
185 #if defined(__BORLANDC__) && !defined(MSDOS)
186  #pragma warn -8004
187  #pragma warn -8008
188  #pragma warn -8066
189 #endif
190 
191 /* provide prototypes for these when building zlib without LFS */
192 #if !defined(_WIN32) && \
193  (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
196 #endif
197 
198  /* common defaults */
199 
200 #ifndef OS_CODE
201 # define OS_CODE 3 /* assume Unix */
202 #endif
203 
204 #ifndef F_OPEN
205 # define F_OPEN(name, mode) fopen((name), (mode))
206 #endif
207 
208  /* functions */
209 
210 #if defined(pyr) || defined(Z_SOLO)
211 # define NO_MEMCPY
212 #endif
213 #if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
214  /* Use our own functions for small and medium model with MSC <= 5.0.
215  * You may have to use the same strategy for Borland C (untested).
216  * The __SC__ check is for Symantec.
217  */
218 # define NO_MEMCPY
219 #endif
220 #if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
221 # define HAVE_MEMCPY
222 #endif
223 #ifdef HAVE_MEMCPY
224 # ifdef SMALL_MEDIUM /* MSDOS small or medium model */
225 # define zmemcpy _fmemcpy
226 # define zmemcmp _fmemcmp
227 # define zmemzero(dest, len) _fmemset(dest, 0, len)
228 # else
229 # define zmemcpy memcpy
230 # define zmemcmp memcmp
231 # define zmemzero(dest, len) memset(dest, 0, len)
232 # endif
233 #else
235  int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
237 #endif
238 
239 /* Diagnostic functions */
240 #ifdef ZLIB_DEBUG
241 # include <stdio.h>
242  extern int ZLIB_INTERNAL z_verbose;
243  extern void ZLIB_INTERNAL z_error OF((char *m));
244 # define Assert(cond,msg) {if(!(cond)) z_error(msg);}
245 # define Trace(x) {if (z_verbose>=0) fprintf x ;}
246 # define Tracev(x) {if (z_verbose>0) fprintf x ;}
247 # define Tracevv(x) {if (z_verbose>1) fprintf x ;}
248 # define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
249 # define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
250 #else
251 # define Assert(cond,msg)
252 # define Trace(x)
253 # define Tracev(x)
254 # define Tracevv(x)
255 # define Tracec(c,x)
256 # define Tracecv(c,x)
257 #endif
258 
259 #ifndef Z_SOLO
260  voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
261  unsigned size));
262  void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr));
263 #endif
264 
265 #define ZALLOC(strm, items, size) \
266  (*((strm)->zalloc))((strm)->opaque, (items), (size))
267 #define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
268 #define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
269 
270 /* Reverse the bytes in a 32-bit value */
271 #define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
272  (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
273 
274 #endif /* ZUTIL_H */
size_t len
Definition: 6502dis.c:15
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void nbytes
Definition: sflib.h:113
voidpf void uLong size
Definition: ioapi.h:138
const char * source
Definition: lz4.h:699
char * dest
Definition: lz4.h:697
#define s1(x)
Definition: sha256.c:60
uLong ZEXPORT adler32_combine64(uLong adler1, uLong adler2, z_off64_t len2)
Definition: adler32.c:180
unsigned long uLong
Definition: zconf.h:394
#define ZEXPORT
Definition: zconf.h:380
#define ZEXTERN
Definition: zconf.h:377
Byte FAR * voidpf
Definition: zconf.h:413
unsigned int uInt
Definition: zconf.h:393
#define z_off_t
Definition: zconf.h:504
#define z_const
Definition: zconf.h:237
Byte FAR Bytef
Definition: zconf.h:400
#define FAR
Definition: zconf.h:387
uLong ZEXPORT crc32_combine64(uLong crc1, uLong crc2, z_off64_t len2)
Definition: crc32.c:1072
void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
Definition: zutil.c:315
voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned size)
Definition: zutil.c:305
void ZLIB_INTERNAL zmemzero(Bytef *dest, uInt len)
Definition: zutil.c:173
void ZLIB_INTERNAL zmemcpy(Bytef *dest, const Bytef *source, uInt len)
Definition: zutil.c:149
int ZLIB_INTERNAL zmemcmp(Bytef *s1, const Bytef *s2, uInt len) const
Definition: zutil.c:160
unsigned short ush
Definition: zutil.h:41
#define ZLIB_INTERNAL
Definition: zutil.h:19
z_const char *const z_errmsg[10]
Definition: zutil.c:13
uch FAR uchf
Definition: zutil.h:40
ush FAR ushf
Definition: zutil.h:42
unsigned long ulg
Definition: zutil.h:43
unsigned char uch
Definition: zutil.h:39
ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t))