1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* zconf.h -- configuration of the zlib compression library 2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Copyright (C) 1995-1998 Jean-loup Gailly. 3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * For conditions of distribution and use, see copyright notice in zlib.h 4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* @(#) $Id$ */ 7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _ZCONF_H 9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _ZCONF_H 10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* The memory requirements for deflate are (in bytes): 12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru (1 << (windowBits+2)) + (1 << (memLevel+9)) 13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru plus a few kilobytes for small objects. For example, if you want to reduce 15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru the default memory requirements from 256K to 128K, compile with 16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru Of course this will generally degrade compression (there's no free lunch). 18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru The memory requirements for inflate are (in bytes) 1 << windowBits 20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru that is, 32K for windowBits=15 (default value) plus a few kilobytes 21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru for small objects. 22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru*/ 23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* Maximum value for memLevel in deflateInit2 */ 25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef MAX_MEM_LEVEL 26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define MAX_MEM_LEVEL 8 27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* Maximum value for windowBits in deflateInit2 and inflateInit2. 30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * created by gzip. (Files created by minigzip can still be extracted by 32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * gzip.) 33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef MAX_WBITS 35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define MAX_WBITS 15 /* 32K LZ77 window */ 36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* default windowBits for decompression. MAX_WBITS is for compression only */ 39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef DEF_WBITS 40c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define DEF_WBITS MAX_WBITS 41c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 42c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 43c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* default memLevel */ 44c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#if MAX_MEM_LEVEL >= 8 45c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define DEF_MEM_LEVEL 8 46c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else 47c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define DEF_MEM_LEVEL MAX_MEM_LEVEL 48c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 49c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 50c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru /* Type declarations */ 51c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 52c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef unsigned char Byte; /* 8 bits */ 53c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef unsigned int uInt; /* 16 bits or more */ 54c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef unsigned long uLong; /* 32 bits or more */ 55c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef void *voidp; 56c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 57c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif /* _ZCONF_H */ 58