zutil.h
上传用户:jnfxsk
上传日期:2022-06-16
资源大小:3675k
文件大小:4k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /* zutil.h -- internal interface and configuration of the compression library
  2.  * Copyright (C) 1995-2003 Jean-loup Gailly.
  3.  * For conditions of distribution and use, see copyright notice in zlib.h
  4.  */
  5. /* WARNING: this file should *not* be used by applications. It is
  6. part of the implementation of the compression library and is
  7. subject to change. Applications should only use zlib.h.
  8.  */
  9. /* @(#) $Id: zutil.h,v 1.1 2005/11/23 14:29:59 stingerx Exp $ */
  10. #ifndef ZUTIL_H
  11.   #define ZUTIL_H
  12.   #define ZLIB_INTERNAL
  13.   #include "zlib.h"
  14.   #ifdef STDC
  15.     #include <stddef.h>
  16.     #include <string.h>
  17.     #include <stdlib.h>
  18.   #endif
  19.   #ifdef NO_ERRNO_H
  20.     extern int errno;
  21.   #else
  22.     #include <errno.h>
  23.   #endif
  24.   extern const char *const z_errmsg[10]; /* indexed by 2-zlib_error */
  25.   /* (size given to avoid silly warnings with Visual C++) */
  26.   #define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
  27.   #define ERR_RETURN(strm,err) return (strm->msg = (char*)ERR_MSG(err), (err))
  28.   /* To be used only when the state is known to be valid */
  29.   /* common constants */
  30.   #ifndef DEF_WBITS
  31.     #define DEF_WBITS MAX_WBITS
  32.   #endif
  33.   /* default windowBits for decompression. MAX_WBITS is for compression only */
  34.   #if MAX_MEM_LEVEL >= 8
  35.     #define DEF_MEM_LEVEL 8
  36.   #else
  37.     #define DEF_MEM_LEVEL  MAX_MEM_LEVEL
  38.   #endif
  39.   /* default memLevel */
  40.   #define STORED_BLOCK 0
  41.   #define STATIC_TREES 1
  42.   #define DYN_TREES    2
  43.   /* The three kinds of block type */
  44.   #define MIN_MATCH  3
  45.   #define MAX_MATCH  258
  46.   /* The minimum and maximum match lengths */
  47.   #define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
  48.   /* target dependencies */
  49.   #ifdef WIN32
  50.     #ifndef __CYGWIN__  /* Cygwin is Unix, not Win32 */
  51.       #define OS_CODE  0x0b
  52.     #endif
  53.   #endif
  54.   #if (defined(_MSC_VER) && (_MSC_VER > 600))
  55.     #if defined(_WIN32_WCE)
  56.       #define fdopen(fd,mode) NULL /* No fdopen() */
  57.       #ifndef _PTRDIFF_T_DEFINED
  58.         typedef int ptrdiff_t;
  59.         #define _PTRDIFF_T_DEFINED
  60.       #endif
  61.     #else
  62.       #define fdopen(fd,type)  _fdopen(fd,type)
  63.     #endif
  64.   #endif
  65.   /* common defaults */
  66.   #ifndef OS_CODE
  67.     #define OS_CODE  0x03  /* assume Unix */
  68.   #endif
  69.   #ifndef F_OPEN
  70.     #define F_OPEN(name, mode) fopen((name), (mode))
  71.   #endif
  72.   /* functions */
  73.   #if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
  74.     #ifndef HAVE_VSNPRINTF
  75.       #define HAVE_VSNPRINTF
  76.     #endif
  77.   #endif
  78.   #if defined(__CYGWIN__)
  79.     #ifndef HAVE_VSNPRINTF
  80.       #define HAVE_VSNPRINTF
  81.     #endif
  82.   #endif
  83.   #ifndef HAVE_VSNPRINTF
  84.     #ifdef MSDOS
  85.       /* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
  86.       but for now we just assume it doesn't. */
  87.       #define NO_vsnprintf
  88.     #endif
  89.     #ifdef __TURBOC__
  90.       #define NO_vsnprintf
  91.     #endif
  92.     #ifdef WIN32
  93.       /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
  94.       #if !defined(vsnprintf) && !defined(NO_vsnprintf)
  95.         #define vsnprintf _vsnprintf
  96.       #endif
  97.     #endif
  98.     #ifdef __SASC
  99.       #define NO_vsnprintf
  100.     #endif
  101.   #endif
  102.   #ifdef HAVE_STRERROR
  103.     extern char *strerror OF((int));
  104.     #define zstrerror(errnum) strerror(errnum)
  105.   #else
  106.     #define zstrerror(errnum) ""
  107.   #endif
  108.   #define zmemcpy memcpy
  109.   #define zmemcmp memcmp
  110.   #define zmemzero(dest, len) memset(dest, 0, len)
  111.   /* Diagnostic functions */
  112.   void *zcalloc(void *opaque, DWORD items, DWORD size);
  113.   void zcfree(void *opaque, void *ptr);
  114.   #define ZALLOC(strm, items, size) (*((strm)->zalloc))((strm)->opaque, (items), (size))
  115.   #define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (void *)(addr))
  116.   #define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
  117. #endif /* ZUTIL_H */