Blame zlib-src/zutil.h

Packit Service 4a2782
/* zutil.h -- internal interface and configuration of the compression library
Packit Service 4a2782
 * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
Packit Service 4a2782
 * For conditions of distribution and use, see copyright notice in zlib.h
Packit Service 4a2782
 */
Packit Service 4a2782
Packit Service 4a2782
/* WARNING: this file should *not* be used by applications. It is
Packit Service 4a2782
   part of the implementation of the compression library and is
Packit Service 4a2782
   subject to change. Applications should only use zlib.h.
Packit Service 4a2782
 */
Packit Service 4a2782
Packit Service 4a2782
/* @(#) $Id$ */
Packit Service 4a2782
Packit Service 4a2782
#ifndef ZUTIL_H
Packit Service 4a2782
#define ZUTIL_H
Packit Service 4a2782
Packit Service 4a2782
#ifdef __cplusplus
Packit Service 4a2782
extern "C" {
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifdef HAVE_HIDDEN
Packit Service 4a2782
#  define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
Packit Service 4a2782
#else
Packit Service 4a2782
#  define ZLIB_INTERNAL
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#include "zlib.h"
Packit Service 4a2782
Packit Service 4a2782
#if defined(STDC) && !defined(Z_SOLO)
Packit Service 4a2782
#  if !(defined(_WIN32_WCE) && defined(_MSC_VER))
Packit Service 4a2782
#    include <stddef.h>
Packit Service 4a2782
#  endif
Packit Service 4a2782
#  include <string.h>
Packit Service 4a2782
#  include <stdlib.h>
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifdef Z_SOLO
Packit Service 4a2782
   typedef long ptrdiff_t;  /* guess -- will be caught if guess is wrong */
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifndef local
Packit Service 4a2782
#  define local static
Packit Service 4a2782
#endif
Packit Service 4a2782
/* since "static" is used to mean two completely different things in C, we
Packit Service 4a2782
   define "local" for the non-static meaning of "static", for readability
Packit Service 4a2782
   (compile with -Dlocal if your debugger can't find static symbols) */
Packit Service 4a2782
Packit Service 4a2782
typedef unsigned char  uch;
Packit Service 4a2782
typedef uch FAR uchf;
Packit Service 4a2782
typedef unsigned short ush;
Packit Service 4a2782
typedef ush FAR ushf;
Packit Service 4a2782
typedef unsigned long  ulg;
Packit Service 4a2782
Packit Service 4a2782
extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
Packit Service 4a2782
/* (size given to avoid silly warnings with Visual C++) */
Packit Service 4a2782
Packit Service 4a2782
#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
Packit Service 4a2782
Packit Service 4a2782
#define ERR_RETURN(strm,err) \
Packit Service 4a2782
  return (strm->msg = ERR_MSG(err), (err))
Packit Service 4a2782
/* To be used only when the state is known to be valid */
Packit Service 4a2782
Packit Service 4a2782
        /* common constants */
Packit Service 4a2782
Packit Service 4a2782
#ifndef DEF_WBITS
Packit Service 4a2782
#  define DEF_WBITS MAX_WBITS
Packit Service 4a2782
#endif
Packit Service 4a2782
/* default windowBits for decompression. MAX_WBITS is for compression only */
Packit Service 4a2782
Packit Service 4a2782
#if MAX_MEM_LEVEL >= 8
Packit Service 4a2782
#  define DEF_MEM_LEVEL 8
Packit Service 4a2782
#else
Packit Service 4a2782
#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
Packit Service 4a2782
#endif
Packit Service 4a2782
/* default memLevel */
Packit Service 4a2782
Packit Service 4a2782
#define STORED_BLOCK 0
Packit Service 4a2782
#define STATIC_TREES 1
Packit Service 4a2782
#define DYN_TREES    2
Packit Service 4a2782
/* The three kinds of block type */
Packit Service 4a2782
Packit Service 4a2782
#define MIN_MATCH  3
Packit Service 4a2782
#define MAX_MATCH  258
Packit Service 4a2782
/* The minimum and maximum match lengths */
Packit Service 4a2782
Packit Service 4a2782
#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
Packit Service 4a2782
Packit Service 4a2782
        /* target dependencies */
Packit Service 4a2782
Packit Service 4a2782
#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32))
Packit Service 4a2782
#  define OS_CODE  0x00
Packit Service 4a2782
#  ifndef Z_SOLO
Packit Service 4a2782
#    if defined(__TURBOC__) || defined(__BORLANDC__)
Packit Service 4a2782
#      if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
Packit Service 4a2782
         /* Allow compilation with ANSI keywords only enabled */
Packit Service 4a2782
         void _Cdecl farfree( void *block );
Packit Service 4a2782
         void *_Cdecl farmalloc( unsigned long nbytes );
Packit Service 4a2782
#      else
Packit Service 4a2782
#        include <alloc.h>
Packit Service 4a2782
#      endif
Packit Service 4a2782
#    else /* MSC or DJGPP */
Packit Service 4a2782
#      include <malloc.h>
Packit Service 4a2782
#    endif
Packit Service 4a2782
#  endif
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifdef AMIGA
Packit Service 4a2782
#  define OS_CODE  1
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#if defined(VAXC) || defined(VMS)
Packit Service 4a2782
#  define OS_CODE  2
Packit Service 4a2782
#  define F_OPEN(name, mode) \
Packit Service 4a2782
     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifdef __370__
Packit Service 4a2782
#  if __TARGET_LIB__ < 0x20000000
Packit Service 4a2782
#    define OS_CODE 4
Packit Service 4a2782
#  elif __TARGET_LIB__ < 0x40000000
Packit Service 4a2782
#    define OS_CODE 11
Packit Service 4a2782
#  else
Packit Service 4a2782
#    define OS_CODE 8
Packit Service 4a2782
#  endif
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#if defined(ATARI) || defined(atarist)
Packit Service 4a2782
#  define OS_CODE  5
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifdef OS2
Packit Service 4a2782
#  define OS_CODE  6
Packit Service 4a2782
#  if defined(M_I86) && !defined(Z_SOLO)
Packit Service 4a2782
#    include <malloc.h>
Packit Service 4a2782
#  endif
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#if defined(MACOS) || defined(TARGET_OS_MAC)
Packit Service 4a2782
#  define OS_CODE  7
Packit Service 4a2782
#  ifndef Z_SOLO
Packit Service 4a2782
#    if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
Packit Service 4a2782
#      include <unix.h> /* for fdopen */
Packit Service 4a2782
#    else
Packit Service 4a2782
#      ifndef fdopen
Packit Service 4a2782
#        define fdopen(fd,mode) NULL /* No fdopen() */
Packit Service 4a2782
#      endif
Packit Service 4a2782
#    endif
Packit Service 4a2782
#  endif
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifdef __acorn
Packit Service 4a2782
#  define OS_CODE 13
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#if defined(WIN32) && !defined(__CYGWIN__)
Packit Service 4a2782
#  define OS_CODE  10
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifdef _BEOS_
Packit Service 4a2782
#  define OS_CODE  16
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifdef __TOS_OS400__
Packit Service 4a2782
#  define OS_CODE 18
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifdef __APPLE__
Packit Service 4a2782
#  define OS_CODE 19
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#if defined(_BEOS_) || defined(RISCOS)
Packit Service 4a2782
#  define fdopen(fd,mode) NULL /* No fdopen() */
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX
Packit Service 4a2782
#  if defined(_WIN32_WCE)
Packit Service 4a2782
#    define fdopen(fd,mode) NULL /* No fdopen() */
Packit Service 4a2782
#    ifndef _PTRDIFF_T_DEFINED
Packit Service 4a2782
       typedef int ptrdiff_t;
Packit Service 4a2782
#      define _PTRDIFF_T_DEFINED
Packit Service 4a2782
#    endif
Packit Service 4a2782
#  else
Packit Service 4a2782
#    define fdopen(fd,type)  _fdopen(fd,type)
Packit Service 4a2782
#  endif
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#if defined(__BORLANDC__) && !defined(MSDOS)
Packit Service 4a2782
  #pragma warn -8004
Packit Service 4a2782
  #pragma warn -8008
Packit Service 4a2782
  #pragma warn -8066
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
/* provide prototypes for these when building zlib without LFS */
Packit Service 4a2782
#if !defined(_WIN32) && \
Packit Service 4a2782
    (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
Packit Service 4a2782
    ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
Packit Service 4a2782
    ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
        /* common defaults */
Packit Service 4a2782
Packit Service 4a2782
#ifndef OS_CODE
Packit Service 4a2782
#  define OS_CODE  3     /* assume Unix */
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifndef F_OPEN
Packit Service 4a2782
#  define F_OPEN(name, mode) fopen((name), (mode))
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
         /* functions */
Packit Service 4a2782
Packit Service 4a2782
#if defined(pyr) || defined(Z_SOLO)
Packit Service 4a2782
#  define NO_MEMCPY
Packit Service 4a2782
#endif
Packit Service 4a2782
#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
Packit Service 4a2782
 /* Use our own functions for small and medium model with MSC <= 5.0.
Packit Service 4a2782
  * You may have to use the same strategy for Borland C (untested).
Packit Service 4a2782
  * The __SC__ check is for Symantec.
Packit Service 4a2782
  */
Packit Service 4a2782
#  define NO_MEMCPY
Packit Service 4a2782
#endif
Packit Service 4a2782
#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
Packit Service 4a2782
#  define HAVE_MEMCPY
Packit Service 4a2782
#endif
Packit Service 4a2782
#ifdef HAVE_MEMCPY
Packit Service 4a2782
#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
Packit Service 4a2782
#    define zmemcpy _fmemcpy
Packit Service 4a2782
#    define zmemcmp _fmemcmp
Packit Service 4a2782
#    define zmemzero(dest, len) _fmemset(dest, 0, len)
Packit Service 4a2782
#  else
Packit Service 4a2782
#    define zmemcpy memcpy
Packit Service 4a2782
#    define zmemcmp memcmp
Packit Service 4a2782
#    define zmemzero(dest, len) memset(dest, 0, len)
Packit Service 4a2782
#  endif
Packit Service 4a2782
#else
Packit Service 4a2782
   void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
Packit Service 4a2782
   int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
Packit Service 4a2782
   void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len));
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
/* Diagnostic functions */
Packit Service 4a2782
#ifdef ZLIB_DEBUG
Packit Service 4a2782
#  include <stdio.h>
Packit Service 4a2782
   extern int ZLIB_INTERNAL z_verbose;
Packit Service 4a2782
   extern void ZLIB_INTERNAL z_error OF((char *m));
Packit Service 4a2782
#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
Packit Service 4a2782
#  define Trace(x) {if (z_verbose>=0) fprintf x ;}
Packit Service 4a2782
#  define Tracev(x) {if (z_verbose>0) fprintf x ;}
Packit Service 4a2782
#  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
Packit Service 4a2782
#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
Packit Service 4a2782
#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
Packit Service 4a2782
#else
Packit Service 4a2782
#  define Assert(cond,msg)
Packit Service 4a2782
#  define Trace(x)
Packit Service 4a2782
#  define Tracev(x)
Packit Service 4a2782
#  define Tracevv(x)
Packit Service 4a2782
#  define Tracec(c,x)
Packit Service 4a2782
#  define Tracecv(c,x)
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#ifndef Z_SOLO
Packit Service 4a2782
   voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
Packit Service 4a2782
                                    unsigned size));
Packit Service 4a2782
   void ZLIB_INTERNAL zcfree  OF((voidpf opaque, voidpf ptr));
Packit Service 4a2782
#endif
Packit Service 4a2782
Packit Service 4a2782
#define ZALLOC(strm, items, size) \
Packit Service 4a2782
           (*((strm)->zalloc))((strm)->opaque, (items), (size))
Packit Service 4a2782
#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
Packit Service 4a2782
#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
Packit Service 4a2782
Packit Service 4a2782
/* Reverse the bytes in a 32-bit value */
Packit Service 4a2782
#define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
Packit Service 4a2782
                    (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
Packit Service 4a2782
Packit Service 4a2782
#ifdef __cplusplus
Packit Service 4a2782
}
Packit Service 4a2782
#endif   
Packit Service 4a2782
#endif /* ZUTIL_H */