1 /* zutil.c -- target dependent utility functions for the compression library
2 * Copyright (C) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly.
3 * For conditions of distribution and use, see copyright notice in zlib.h
8 #include "hammer2_zlib_zutil.h"
11 struct internal_state
{int dummy
;}; /* for buggy compilers */
14 z_const
char * const z_errmsg
[10] = {
15 "need dictionary", /* Z_NEED_DICT 2 */
16 "stream end", /* Z_STREAM_END 1 */
18 "file error", /* Z_ERRNO (-1) */
19 "stream error", /* Z_STREAM_ERROR (-2) */
20 "data error", /* Z_DATA_ERROR (-3) */
21 "insufficient memory", /* Z_MEM_ERROR (-4) */
22 "buffer error", /* Z_BUF_ERROR (-5) */
23 "incompatible version",/* Z_VERSION_ERROR (-6) */
26 const char * zlibVersion(void);
27 uLong
zlibCompileFlags(void);
28 const char * zError(int err
);
38 zlibCompileFlags(void)
43 switch ((int)(sizeof(uInt
))) {
45 case 4: flags
+= 1; break;
46 case 8: flags
+= 2; break;
49 switch ((int)(sizeof(uLong
))) {
51 case 4: flags
+= 1 << 2; break;
52 case 8: flags
+= 2 << 2; break;
53 default: flags
+= 3 << 2;
55 switch ((int)(sizeof(voidpf
))) {
57 case 4: flags
+= 1 << 4; break;
58 case 8: flags
+= 2 << 4; break;
59 default: flags
+= 3 << 4;
61 switch ((int)(sizeof(z_off_t
))) {
63 case 4: flags
+= 1 << 6; break;
64 case 8: flags
+= 2 << 6; break;
65 default: flags
+= 3 << 6;
70 #if defined(ASMV) || defined(ASMINF)
79 #ifdef DYNAMIC_CRC_TABLE
88 #ifdef PKZIP_BUG_WORKAROUND
94 #if defined(STDC) || defined(Z_HAVE_STDARG_H)
97 # ifdef HAS_vsprintf_void
101 # ifdef HAS_vsnprintf_void
109 # ifdef HAS_sprintf_void
113 # ifdef HAS_snprintf_void
126 int ZLIB_INTERNAL z_verbose
= verbose
;
128 void ZLIB_INTERNAL
z_error (char *m
)
131 panic("h2 %s: %s", __func__
, m
);
133 fprintf(stderr
, "%s\n", m
);
139 /* exported to allow conversion of error code to string for compress() and
153 zmemcpy(Bytef
* dest
, const Bytef
* source
, uInt len
)
155 if (len
== 0) return;
157 *dest
++ = *source
++; /* ??? to be unrolled */
158 } while (--len
!= 0);
163 zmemcmp(const Bytef
* s1
, const Bytef
* s2
, uInt len
)
167 for (j
= 0; j
< len
; j
++) {
168 if (s1
[j
] != s2
[j
]) return 2*(s1
[j
] > s2
[j
])-1;
175 zmemzero(Bytef
* dest
, uInt len
)
177 if (len
== 0) return;
179 *dest
++ = 0; /* ??? to be unrolled */
180 } while (--len
!= 0);