2016-10-26 21:35:35 +02:00
|
|
|
; zutil.inc -- internal interface and configuration of the compression library
|
|
|
|
; Copyright (C) 1995-2013 Jean-loup Gailly.
|
|
|
|
; For conditions of distribution and use, see copyright notice in zlib.inc
|
|
|
|
|
|
|
|
; WARNING: this file should *not* be used by applications. It is
|
|
|
|
; part of the implementation of the compression library and is
|
|
|
|
; subject to change. Applications should only use zlib.inc.
|
|
|
|
|
|
|
|
|
|
|
|
macro ERR_MSG err
|
|
|
|
{
|
2016-10-31 10:19:36 +01:00
|
|
|
mov ecx,Z_NEED_DICT
|
|
|
|
sub ecx,err
|
2016-10-26 21:35:35 +02:00
|
|
|
mov ecx,[4*ecx+z_errmsg]
|
|
|
|
}
|
|
|
|
|
|
|
|
macro ERR_RETURN strm,err
|
|
|
|
{
|
|
|
|
ERR_MSG err
|
|
|
|
mov [strm+z_stream.msg],ecx
|
|
|
|
mov eax,err
|
|
|
|
}
|
|
|
|
; To be used only when the state is known to be valid
|
|
|
|
|
|
|
|
; /* common constants */
|
|
|
|
|
|
|
|
;#ifndef DEF_WBITS
|
|
|
|
;# define DEF_WBITS MAX_WBITS
|
|
|
|
;end if
|
|
|
|
; default windowBits for decompression. MAX_WBITS is for compression only
|
|
|
|
|
|
|
|
;#if MAX_MEM_LEVEL >= 8
|
|
|
|
DEF_MEM_LEVEL equ 8
|
|
|
|
;#else
|
|
|
|
;# define DEF_MEM_LEVEL MAX_MEM_LEVEL
|
|
|
|
;end if
|
|
|
|
; default memLevel
|
|
|
|
|
|
|
|
STORED_BLOCK equ 0
|
|
|
|
STATIC_TREES equ 1
|
|
|
|
DYN_TREES equ 2
|
|
|
|
; The three kinds of block type
|
|
|
|
|
|
|
|
MIN_MATCH equ 3
|
|
|
|
MAX_MATCH equ 258
|
|
|
|
; The minimum and maximum match lengths
|
|
|
|
|
|
|
|
PRESET_DICT equ 0x20 ;preset dictionary flag in zlib header
|
|
|
|
|
|
|
|
; /* common defaults */
|
|
|
|
|
|
|
|
OS_CODE equ 0x03 ;assume Unix
|
|
|
|
|
|
|
|
; /* functions */
|
|
|
|
|
|
|
|
; Diagnostic functions
|
|
|
|
;if DEBUG eq 1
|
|
|
|
;# define Trace(x) {if (z_verbose>=0) fprintf x ;}
|
|
|
|
;# define Tracev(x) {if (z_verbose>0) fprintf x ;}
|
|
|
|
macro Tracevv mes1, mes2
|
|
|
|
{
|
|
|
|
;zlib_debug 'Tracevv = %d', mes1
|
|
|
|
}
|
|
|
|
;# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
|
|
|
|
;# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
|
|
|
|
;end if
|
|
|
|
|
|
|
|
macro ZALLOC strm, items, size
|
|
|
|
{
|
|
|
|
stdcall dword[strm+z_stream.zalloc], [strm+z_stream.opaque], items, size
|
|
|
|
}
|
|
|
|
macro ZFREE strm, p2addr
|
|
|
|
{
|
|
|
|
stdcall dword[strm+z_stream.zfree], dword[strm+z_stream.opaque], p2addr
|
|
|
|
}
|
|
|
|
macro TRY_FREE s, p
|
|
|
|
{
|
|
|
|
local .end0
|
|
|
|
cmp p,0
|
|
|
|
je .end0
|
|
|
|
ZFREE s, p
|
|
|
|
.end0:
|
|
|
|
}
|
|
|
|
|
|
|
|
; Reverse the bytes in a 32-bit value
|
|
|
|
macro ZSWAP32 q
|
|
|
|
{
|
|
|
|
bswap q
|
|
|
|
}
|