xref: /linux/include/linux/zconf.h (revision 4f3865fb)
11da177e4SLinus Torvalds /* zconf.h -- configuration of the zlib compression library
21da177e4SLinus Torvalds  * Copyright (C) 1995-1998 Jean-loup Gailly.
31da177e4SLinus Torvalds  * For conditions of distribution and use, see copyright notice in zlib.h
41da177e4SLinus Torvalds  */
51da177e4SLinus Torvalds 
61da177e4SLinus Torvalds /* @(#) $Id$ */
71da177e4SLinus Torvalds 
81da177e4SLinus Torvalds #ifndef _ZCONF_H
91da177e4SLinus Torvalds #define _ZCONF_H
101da177e4SLinus Torvalds 
111da177e4SLinus Torvalds /* The memory requirements for deflate are (in bytes):
121da177e4SLinus Torvalds             (1 << (windowBits+2)) +  (1 << (memLevel+9))
131da177e4SLinus Torvalds  that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
141da177e4SLinus Torvalds  plus a few kilobytes for small objects. For example, if you want to reduce
151da177e4SLinus Torvalds  the default memory requirements from 256K to 128K, compile with
161da177e4SLinus Torvalds      make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
171da177e4SLinus Torvalds  Of course this will generally degrade compression (there's no free lunch).
181da177e4SLinus Torvalds 
191da177e4SLinus Torvalds    The memory requirements for inflate are (in bytes) 1 << windowBits
201da177e4SLinus Torvalds  that is, 32K for windowBits=15 (default value) plus a few kilobytes
211da177e4SLinus Torvalds  for small objects.
221da177e4SLinus Torvalds */
231da177e4SLinus Torvalds 
241da177e4SLinus Torvalds /* Maximum value for memLevel in deflateInit2 */
251da177e4SLinus Torvalds #ifndef MAX_MEM_LEVEL
261da177e4SLinus Torvalds #  define MAX_MEM_LEVEL 8
271da177e4SLinus Torvalds #endif
281da177e4SLinus Torvalds 
291da177e4SLinus Torvalds /* Maximum value for windowBits in deflateInit2 and inflateInit2.
301da177e4SLinus Torvalds  * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
311da177e4SLinus Torvalds  * created by gzip. (Files created by minigzip can still be extracted by
321da177e4SLinus Torvalds  * gzip.)
331da177e4SLinus Torvalds  */
341da177e4SLinus Torvalds #ifndef MAX_WBITS
351da177e4SLinus Torvalds #  define MAX_WBITS   15 /* 32K LZ77 window */
361da177e4SLinus Torvalds #endif
371da177e4SLinus Torvalds 
38*4f3865fbSRichard Purdie /* default windowBits for decompression. MAX_WBITS is for compression only */
39*4f3865fbSRichard Purdie #ifndef DEF_WBITS
40*4f3865fbSRichard Purdie #  define DEF_WBITS MAX_WBITS
41*4f3865fbSRichard Purdie #endif
42*4f3865fbSRichard Purdie 
43*4f3865fbSRichard Purdie /* default memLevel */
44*4f3865fbSRichard Purdie #if MAX_MEM_LEVEL >= 8
45*4f3865fbSRichard Purdie #  define DEF_MEM_LEVEL 8
46*4f3865fbSRichard Purdie #else
47*4f3865fbSRichard Purdie #  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
48*4f3865fbSRichard Purdie #endif
49*4f3865fbSRichard Purdie 
501da177e4SLinus Torvalds                         /* Type declarations */
511da177e4SLinus Torvalds 
521da177e4SLinus Torvalds typedef unsigned char  Byte;  /* 8 bits */
531da177e4SLinus Torvalds typedef unsigned int   uInt;  /* 16 bits or more */
541da177e4SLinus Torvalds typedef unsigned long  uLong; /* 32 bits or more */
551da177e4SLinus Torvalds typedef void     *voidp;
561da177e4SLinus Torvalds 
571da177e4SLinus Torvalds #endif /* _ZCONF_H */
58