| /* config1a.h -- configuration for the LZO1A algorithm |
| |
| This file is part of the LZO real-time data compression library. |
| |
| Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer |
| Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer |
| All Rights Reserved. |
| |
| The LZO library is free software; you can redistribute it and/or |
| modify it under the terms of the GNU General Public License as |
| published by the Free Software Foundation; either version 2 of |
| the License, or (at your option) any later version. |
| |
| The LZO library is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with the LZO library; see the file COPYING. |
| If not, write to the Free Software Foundation, Inc., |
| 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| |
| Markus F.X.J. Oberhumer |
| <markus@oberhumer.com> |
| http://www.oberhumer.com/opensource/lzo/ |
| */ |
| |
| |
| /* WARNING: this file should *not* be used by applications. It is |
| part of the implementation of the library and is subject |
| to change. |
| */ |
| |
| |
| #ifndef __LZO_CONFIG1A_H |
| #define __LZO_CONFIG1A_H |
| |
| #include "lzo_conf.h" |
| #include "lzo/lzo1a.h" |
| |
| #undef LZO_COLLECT_STATS /* no support for stats here */ |
| |
| |
| /*********************************************************************** |
| // algorithm configuration |
| ************************************************************************/ |
| |
| /* run bits (4 - 5) - the compressor and the decompressor |
| * must use the same value. */ |
| #if !defined(RBITS) |
| # define RBITS 5 |
| #endif |
| |
| /* dictionary depth (0 - 6) - this only affects the compressor. |
| * 0 is fastest, 6 is best compression ratio */ |
| #if !defined(DDBITS) |
| # define DDBITS 0 |
| #endif |
| |
| /* compression level (1 - 9) - this only affects the compressor. |
| * 1 is fastest, 9 is best compression ratio */ |
| #if !defined(CLEVEL) |
| # define CLEVEL 1 /* fastest by default */ |
| #endif |
| |
| |
| /* check configuration */ |
| #if (RBITS < 4 || RBITS > 5) |
| # error "invalid RBITS" |
| #endif |
| #if (DDBITS < 0 || DDBITS > 6) |
| # error "invalid DDBITS" |
| #endif |
| #if (CLEVEL < 1 || CLEVEL > 9) |
| # error "invalid CLEVEL" |
| #endif |
| |
| |
| /*********************************************************************** |
| // internal configuration |
| ************************************************************************/ |
| |
| /* add a special code so that the decompressor can detect the |
| * end of the compressed data block (overhead is 3 bytes per block) */ |
| #undef LZO_EOF_CODE |
| |
| |
| /*********************************************************************** |
| // algorithm internal configuration |
| ************************************************************************/ |
| |
| /* choose the hashing strategy */ |
| #ifndef LZO_HASH |
| #define LZO_HASH LZO_HASH_LZO_INCREMENTAL_A |
| #endif |
| |
| /* config */ |
| #define R_BITS RBITS |
| #define DD_BITS DDBITS |
| #ifndef D_BITS |
| #define D_BITS 16 |
| #endif |
| |
| |
| /*********************************************************************** |
| // optimization and debugging |
| ************************************************************************/ |
| |
| /* Collect statistics */ |
| #if 0 && !defined(LZO_COLLECT_STATS) |
| # define LZO_COLLECT_STATS |
| #endif |
| |
| |
| /*********************************************************************** |
| // |
| ************************************************************************/ |
| |
| #define M3O_BITS M2O_BITS |
| #define M3L_BITS CHAR_BIT |
| #define M3_MAX_LEN (M3_MIN_LEN + LZO_SIZE(M3L_BITS) - 1) |
| #define _MAX_OFFSET _M2_MAX_OFFSET |
| #define LZO_NO_M3 |
| |
| #include "lzo1b_de.h" |
| #include "stats1b.h" |
| |
| #include "lzo1b_cc.h" |
| |
| |
| /*********************************************************************** |
| // check for total LZO1/LZO1A compatibility |
| ************************************************************************/ |
| |
| #undef M2_MARKER |
| #define M2_MARKER (1 << M2O_BITS) |
| |
| #if (R_BITS != 5) |
| # error |
| #endif |
| #if (M2O_BITS != 5) |
| # error |
| #endif |
| #if (M3O_BITS != 5) |
| # error |
| #endif |
| #if (M2_MIN_LEN != 3) |
| # error |
| #endif |
| #if (M2_MAX_LEN != 8) |
| # error |
| #endif |
| #if (M3_MIN_LEN != 9) |
| # error |
| #endif |
| #if (M3_MAX_LEN != 264) |
| # error |
| #endif |
| #if (_M2_MAX_OFFSET != (1u << 13)) |
| # error |
| #endif |
| #if (_M2_MAX_OFFSET != _M3_MAX_OFFSET) |
| # error |
| #endif |
| #if (_M2_MAX_OFFSET != _MAX_OFFSET) |
| # error |
| #endif |
| #if (R0MIN != 32) |
| # error |
| #endif |
| #if (R0MAX != 287) |
| # error |
| #endif |
| #if (R0FAST != 280) |
| # error |
| #endif |
| |
| |
| #endif /* already included */ |
| |
| /* |
| vi:ts=4:et |
| */ |
| |