xref: /dflybsd-src/usr.sbin/makefs/hammer2/zlib/hammer2_zlib_zutil.h (revision 2d60b848f2503f28d840ceae174d07eb149ccce9)
1*2d60b848STomohiro Kusumi /* zutil.h -- internal interface and configuration of the compression library
2*2d60b848STomohiro Kusumi  * Copyright (C) 1995-2013 Jean-loup Gailly.
3*2d60b848STomohiro Kusumi  * For conditions of distribution and use, see copyright notice in zlib.h
4*2d60b848STomohiro Kusumi  */
5*2d60b848STomohiro Kusumi 
6*2d60b848STomohiro Kusumi /* WARNING: this file should *not* be used by applications. It is
7*2d60b848STomohiro Kusumi    part of the implementation of the compression library and is
8*2d60b848STomohiro Kusumi    subject to change. Applications should only use zlib.h.
9*2d60b848STomohiro Kusumi  */
10*2d60b848STomohiro Kusumi 
11*2d60b848STomohiro Kusumi /* @(#) $Id$ */
12*2d60b848STomohiro Kusumi 
13*2d60b848STomohiro Kusumi #ifndef ZUTIL_H
14*2d60b848STomohiro Kusumi #define ZUTIL_H
15*2d60b848STomohiro Kusumi 
16*2d60b848STomohiro Kusumi #ifdef HAVE_HIDDEN
17*2d60b848STomohiro Kusumi #  define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
18*2d60b848STomohiro Kusumi #else
19*2d60b848STomohiro Kusumi #  define ZLIB_INTERNAL
20*2d60b848STomohiro Kusumi #endif
21*2d60b848STomohiro Kusumi 
22*2d60b848STomohiro Kusumi #include <sys/param.h> /* for panic() */
23*2d60b848STomohiro Kusumi #include "hammer2_zlib.h"
24*2d60b848STomohiro Kusumi 
25*2d60b848STomohiro Kusumi #ifndef local
26*2d60b848STomohiro Kusumi #  define local static
27*2d60b848STomohiro Kusumi #endif
28*2d60b848STomohiro Kusumi /* compile with -Dlocal if your debugger can't find static symbols */
29*2d60b848STomohiro Kusumi 
30*2d60b848STomohiro Kusumi typedef unsigned char  uch;
31*2d60b848STomohiro Kusumi typedef uch FAR uchf;
32*2d60b848STomohiro Kusumi typedef unsigned short ush;
33*2d60b848STomohiro Kusumi typedef ush FAR ushf;
34*2d60b848STomohiro Kusumi typedef unsigned long  ulg;
35*2d60b848STomohiro Kusumi 
36*2d60b848STomohiro Kusumi extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
37*2d60b848STomohiro Kusumi /* (size given to avoid silly warnings with Visual C++) */
38*2d60b848STomohiro Kusumi 
39*2d60b848STomohiro Kusumi #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
40*2d60b848STomohiro Kusumi 
41*2d60b848STomohiro Kusumi #define ERR_RETURN(strm,err) \
42*2d60b848STomohiro Kusumi   return (strm->msg = ERR_MSG(err), (err))
43*2d60b848STomohiro Kusumi /* To be used only when the state is known to be valid */
44*2d60b848STomohiro Kusumi 
45*2d60b848STomohiro Kusumi         /* common constants */
46*2d60b848STomohiro Kusumi 
47*2d60b848STomohiro Kusumi #ifndef DEF_WBITS
48*2d60b848STomohiro Kusumi #  define DEF_WBITS MAX_WBITS
49*2d60b848STomohiro Kusumi #endif
50*2d60b848STomohiro Kusumi /* default windowBits for decompression. MAX_WBITS is for compression only */
51*2d60b848STomohiro Kusumi 
52*2d60b848STomohiro Kusumi #if MAX_MEM_LEVEL >= 8
53*2d60b848STomohiro Kusumi #  define DEF_MEM_LEVEL 8
54*2d60b848STomohiro Kusumi #else
55*2d60b848STomohiro Kusumi #  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
56*2d60b848STomohiro Kusumi #endif
57*2d60b848STomohiro Kusumi /* default memLevel */
58*2d60b848STomohiro Kusumi 
59*2d60b848STomohiro Kusumi #define STORED_BLOCK 0
60*2d60b848STomohiro Kusumi #define STATIC_TREES 1
61*2d60b848STomohiro Kusumi #define DYN_TREES    2
62*2d60b848STomohiro Kusumi /* The three kinds of block type */
63*2d60b848STomohiro Kusumi 
64*2d60b848STomohiro Kusumi #define MIN_MATCH  3
65*2d60b848STomohiro Kusumi #define MAX_MATCH  258
66*2d60b848STomohiro Kusumi /* The minimum and maximum match lengths */
67*2d60b848STomohiro Kusumi 
68*2d60b848STomohiro Kusumi #define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
69*2d60b848STomohiro Kusumi 
70*2d60b848STomohiro Kusumi         /* target dependencies */
71*2d60b848STomohiro Kusumi 
72*2d60b848STomohiro Kusumi #if defined(__BORLANDC__) && !defined(MSDOS)
73*2d60b848STomohiro Kusumi   #pragma warn -8004
74*2d60b848STomohiro Kusumi   #pragma warn -8008
75*2d60b848STomohiro Kusumi   #pragma warn -8066
76*2d60b848STomohiro Kusumi #endif
77*2d60b848STomohiro Kusumi 
78*2d60b848STomohiro Kusumi /* provide prototypes for these when building zlib without LFS */
79*2d60b848STomohiro Kusumi #if !defined(_WIN32) && \
80*2d60b848STomohiro Kusumi     (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
81*2d60b848STomohiro Kusumi     uLong adler32_combine64(uLong, uLong, z_off_t);
82*2d60b848STomohiro Kusumi #endif
83*2d60b848STomohiro Kusumi 
84*2d60b848STomohiro Kusumi         /* common defaults */
85*2d60b848STomohiro Kusumi 
86*2d60b848STomohiro Kusumi #ifndef OS_CODE
87*2d60b848STomohiro Kusumi #  define OS_CODE  0x03  /* assume Unix */
88*2d60b848STomohiro Kusumi #endif
89*2d60b848STomohiro Kusumi 
90*2d60b848STomohiro Kusumi #ifndef F_OPEN
91*2d60b848STomohiro Kusumi #  define F_OPEN(name, mode) fopen((name), (mode))
92*2d60b848STomohiro Kusumi #endif
93*2d60b848STomohiro Kusumi 
94*2d60b848STomohiro Kusumi          /* functions */
95*2d60b848STomohiro Kusumi 
96*2d60b848STomohiro Kusumi #if defined(pyr) || defined(Z_SOLO)
97*2d60b848STomohiro Kusumi #  define NO_MEMCPY
98*2d60b848STomohiro Kusumi #endif
99*2d60b848STomohiro Kusumi #if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
100*2d60b848STomohiro Kusumi  /* Use our own functions for small and medium model with MSC <= 5.0.
101*2d60b848STomohiro Kusumi   * You may have to use the same strategy for Borland C (untested).
102*2d60b848STomohiro Kusumi   * The __SC__ check is for Symantec.
103*2d60b848STomohiro Kusumi   */
104*2d60b848STomohiro Kusumi #  define NO_MEMCPY
105*2d60b848STomohiro Kusumi #endif
106*2d60b848STomohiro Kusumi #if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
107*2d60b848STomohiro Kusumi #  define HAVE_MEMCPY
108*2d60b848STomohiro Kusumi #endif
109*2d60b848STomohiro Kusumi #ifdef HAVE_MEMCPY
110*2d60b848STomohiro Kusumi #  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
111*2d60b848STomohiro Kusumi #    define zmemcpy _fmemcpy
112*2d60b848STomohiro Kusumi #    define zmemcmp _fmemcmp
113*2d60b848STomohiro Kusumi #    define zmemzero(dest, len) _fmemset(dest, 0, len)
114*2d60b848STomohiro Kusumi #  else
115*2d60b848STomohiro Kusumi #    define zmemcpy memcpy
116*2d60b848STomohiro Kusumi #    define zmemcmp memcmp
117*2d60b848STomohiro Kusumi #    define zmemzero(dest, len) memset(dest, 0, len)
118*2d60b848STomohiro Kusumi #  endif
119*2d60b848STomohiro Kusumi #else
120*2d60b848STomohiro Kusumi    void ZLIB_INTERNAL zmemcpy((Bytef* dest, const Bytef* source, uInt len));
121*2d60b848STomohiro Kusumi    int ZLIB_INTERNAL zmemcmp((const Bytef* s1, const Bytef* s2, uInt len));
122*2d60b848STomohiro Kusumi    void ZLIB_INTERNAL zmemzero((Bytef* dest, uInt len));
123*2d60b848STomohiro Kusumi #endif
124*2d60b848STomohiro Kusumi 
125*2d60b848STomohiro Kusumi /* Diagnostic functions */
126*2d60b848STomohiro Kusumi #ifdef H2_ZLIB_DEBUG
127*2d60b848STomohiro Kusumi #  include <stdio.h>
128*2d60b848STomohiro Kusumi    extern int ZLIB_INTERNAL z_verbose;
129*2d60b848STomohiro Kusumi    extern void ZLIB_INTERNAL z_error(char *m);
130*2d60b848STomohiro Kusumi #  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
131*2d60b848STomohiro Kusumi #  define Trace(x) {if (z_verbose>=0) fprintf x ;}
132*2d60b848STomohiro Kusumi #  define Tracev(x) {if (z_verbose>0) fprintf x ;}
133*2d60b848STomohiro Kusumi #  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
134*2d60b848STomohiro Kusumi #  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
135*2d60b848STomohiro Kusumi #  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
136*2d60b848STomohiro Kusumi #else
137*2d60b848STomohiro Kusumi #  define Assert(cond,msg)
138*2d60b848STomohiro Kusumi #  define Trace(x)
139*2d60b848STomohiro Kusumi #  define Tracev(x)
140*2d60b848STomohiro Kusumi #  define Tracevv(x)
141*2d60b848STomohiro Kusumi #  define Tracec(c,x)
142*2d60b848STomohiro Kusumi #  define Tracecv(c,x)
143*2d60b848STomohiro Kusumi #endif
144*2d60b848STomohiro Kusumi 
145*2d60b848STomohiro Kusumi /* Reverse the bytes in a 32-bit value */
146*2d60b848STomohiro Kusumi #define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
147*2d60b848STomohiro Kusumi                     (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
148*2d60b848STomohiro Kusumi 
149*2d60b848STomohiro Kusumi #endif /* ZUTIL_H */
150