Blame src/lzo_conf.h

Packit 679830
/* lzo_conf.h -- main internal configuration file for the the LZO library
Packit 679830
Packit 679830
   This file is part of the LZO real-time data compression library.
Packit 679830
Packit 679830
   Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Packit 679830
   All Rights Reserved.
Packit 679830
Packit 679830
   The LZO library is free software; you can redistribute it and/or
Packit 679830
   modify it under the terms of the GNU General Public License as
Packit 679830
   published by the Free Software Foundation; either version 2 of
Packit 679830
   the License, or (at your option) any later version.
Packit 679830
Packit 679830
   The LZO library is distributed in the hope that it will be useful,
Packit 679830
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 679830
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 679830
   GNU General Public License for more details.
Packit 679830
Packit 679830
   You should have received a copy of the GNU General Public License
Packit 679830
   along with the LZO library; see the file COPYING.
Packit 679830
   If not, write to the Free Software Foundation, Inc.,
Packit 679830
   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Packit 679830
Packit 679830
   Markus F.X.J. Oberhumer
Packit 679830
   <markus@oberhumer.com>
Packit 679830
   http://www.oberhumer.com/opensource/lzo/
Packit 679830
 */
Packit 679830
Packit 679830
Packit 679830
/* WARNING: this file should *not* be used by applications. It is
Packit 679830
   part of the implementation of the library and is subject
Packit 679830
   to change.
Packit 679830
 */
Packit 679830
Packit 679830
Packit 679830
#ifndef __LZO_CONF_H
Packit 679830
#define __LZO_CONF_H 1
Packit 679830
Packit 679830
#if !defined(__LZO_IN_MINILZO)
Packit 679830
#if defined(LZO_CFG_FREESTANDING) && (LZO_CFG_FREESTANDING)
Packit 679830
#  define LZO_LIBC_FREESTANDING 1
Packit 679830
#  define LZO_OS_FREESTANDING 1
Packit 679830
#endif
Packit 679830
#if defined(LZO_CFG_EXTRA_CONFIG_HEADER)
Packit 679830
#  include LZO_CFG_EXTRA_CONFIG_HEADER
Packit 679830
#endif
Packit 679830
#if defined(__LZOCONF_H) || defined(__LZOCONF_H_INCLUDED)
Packit 679830
#  error "include this file first"
Packit 679830
#endif
Packit 679830
#include "lzo/lzoconf.h"
Packit 679830
#if defined(LZO_CFG_EXTRA_CONFIG_HEADER2)
Packit 679830
#  include LZO_CFG_EXTRA_CONFIG_HEADER2
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
Packit 679830
#if (LZO_VERSION < 0x2080) || !defined(__LZOCONF_H_INCLUDED)
Packit 679830
#  error "version mismatch"
Packit 679830
#endif
Packit 679830
Packit 679830
Packit 679830
/***********************************************************************
Packit 679830
// pragmas
Packit 679830
************************************************************************/
Packit 679830
Packit 679830
#if (LZO_CC_MSC && (_MSC_VER >= 1000 && _MSC_VER < 1100))
Packit 679830
   /* disable bogus "unreachable code" warnings */
Packit 679830
#  pragma warning(disable: 4702)
Packit 679830
#endif
Packit 679830
#if (LZO_CC_MSC && (_MSC_VER >= 1000))
Packit 679830
#  pragma warning(disable: 4127 4701)
Packit 679830
   /* disable warnings about inlining */
Packit 679830
#  pragma warning(disable: 4514 4710 4711)
Packit 679830
#endif
Packit 679830
#if (LZO_CC_MSC && (_MSC_VER >= 1300))
Packit 679830
   /* disable '-Wall' warnings in system header files */
Packit 679830
#  pragma warning(disable: 4820)
Packit 679830
#endif
Packit 679830
#if (LZO_CC_MSC && (_MSC_VER >= 1800))
Packit 679830
   /* disable '-Wall' warnings in system header files */
Packit 679830
#  pragma warning(disable: 4746)
Packit 679830
#endif
Packit 679830
Packit 679830
#if (LZO_CC_SUNPROC)
Packit 679830
#if !defined(__cplusplus)
Packit 679830
#  pragma error_messages(off,E_END_OF_LOOP_CODE_NOT_REACHED)
Packit 679830
#  pragma error_messages(off,E_LOOP_NOT_ENTERED_AT_TOP)
Packit 679830
#  pragma error_messages(off,E_STATEMENT_NOT_REACHED)
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
Packit 679830
Packit 679830
/***********************************************************************
Packit 679830
//
Packit 679830
************************************************************************/
Packit 679830
Packit 679830
#if defined(__LZO_IN_MINILZO) || (LZO_CFG_FREESTANDING)
Packit 679830
#elif 1
Packit 679830
#  include <string.h>
Packit 679830
#else
Packit 679830
#  define LZO_WANT_ACC_INCD_H 1
Packit 679830
#endif
Packit 679830
#if defined(LZO_HAVE_CONFIG_H)
Packit 679830
#  define LZO_CFG_NO_CONFIG_HEADER 1
Packit 679830
#endif
Packit 679830
#include "lzo_supp.h"
Packit 679830
Packit 679830
/* Integral types */
Packit 679830
#if 1 || defined(lzo_int8_t) || defined(lzo_uint8_t)
Packit 679830
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t)  == 1)
Packit 679830
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint8_t) == 1)
Packit 679830
#endif
Packit 679830
#if 1 || defined(lzo_int16_t) || defined(lzo_uint16_t)
Packit 679830
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t)  == 2)
Packit 679830
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint16_t) == 2)
Packit 679830
#endif
Packit 679830
#if 1 || defined(lzo_int32_t) || defined(lzo_uint32_t)
Packit 679830
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t)  == 4)
Packit 679830
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint32_t) == 4)
Packit 679830
#endif
Packit 679830
#if defined(lzo_int64_t) || defined(lzo_uint64_t)
Packit 679830
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t)  == 8)
Packit 679830
LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint64_t) == 8)
Packit 679830
#endif
Packit 679830
Packit 679830
#if (LZO_CFG_FREESTANDING)
Packit 679830
#  undef HAVE_MEMCMP
Packit 679830
#  undef HAVE_MEMCPY
Packit 679830
#  undef HAVE_MEMMOVE
Packit 679830
#  undef HAVE_MEMSET
Packit 679830
#endif
Packit 679830
Packit 679830
#if !(HAVE_MEMCMP)
Packit 679830
#  undef memcmp
Packit 679830
#  define memcmp(a,b,c)         lzo_memcmp(a,b,c)
Packit 679830
#else
Packit 679830
#  undef lzo_memcmp
Packit 679830
#  define lzo_memcmp(a,b,c)     memcmp(a,b,c)
Packit 679830
#endif
Packit 679830
#if !(HAVE_MEMCPY)
Packit 679830
#  undef memcpy
Packit 679830
#  define memcpy(a,b,c)         lzo_memcpy(a,b,c)
Packit 679830
#else
Packit 679830
#  undef lzo_memcpy
Packit 679830
#  define lzo_memcpy(a,b,c)     memcpy(a,b,c)
Packit 679830
#endif
Packit 679830
#if !(HAVE_MEMMOVE)
Packit 679830
#  undef memmove
Packit 679830
#  define memmove(a,b,c)        lzo_memmove(a,b,c)
Packit 679830
#else
Packit 679830
#  undef lzo_memmove
Packit 679830
#  define lzo_memmove(a,b,c)    memmove(a,b,c)
Packit 679830
#endif
Packit 679830
#if !(HAVE_MEMSET)
Packit 679830
#  undef memset
Packit 679830
#  define memset(a,b,c)         lzo_memset(a,b,c)
Packit 679830
#else
Packit 679830
#  undef lzo_memset
Packit 679830
#  define lzo_memset(a,b,c)     memset(a,b,c)
Packit 679830
#endif
Packit 679830
Packit 679830
#undef NDEBUG
Packit 679830
#if (LZO_CFG_FREESTANDING)
Packit 679830
#  undef LZO_DEBUG
Packit 679830
#  define NDEBUG 1
Packit 679830
#  undef assert
Packit 679830
#  define assert(e) ((void)0)
Packit 679830
#else
Packit 679830
#  if !defined(LZO_DEBUG)
Packit 679830
#    define NDEBUG 1
Packit 679830
#  endif
Packit 679830
#  include <assert.h>
Packit 679830
#endif
Packit 679830
Packit 679830
#if 0 && defined(__BOUNDS_CHECKING_ON)
Packit 679830
#  include <unchecked.h>
Packit 679830
#else
Packit 679830
#  define BOUNDS_CHECKING_OFF_DURING(stmt)      stmt
Packit 679830
#  define BOUNDS_CHECKING_OFF_IN_EXPR(expr)     (expr)
Packit 679830
#endif
Packit 679830
Packit 679830
#if (LZO_CFG_PGO)
Packit 679830
#  undef __lzo_likely
Packit 679830
#  undef __lzo_unlikely
Packit 679830
#  define __lzo_likely(e)       (e)
Packit 679830
#  define __lzo_unlikely(e)     (e)
Packit 679830
#endif
Packit 679830
Packit 679830
#undef _
Packit 679830
#undef __
Packit 679830
#undef ___
Packit 679830
#undef ____
Packit 679830
#undef _p0
Packit 679830
#undef _p1
Packit 679830
#undef _p2
Packit 679830
#undef _p3
Packit 679830
#undef _p4
Packit 679830
#undef _s0
Packit 679830
#undef _s1
Packit 679830
#undef _s2
Packit 679830
#undef _s3
Packit 679830
#undef _s4
Packit 679830
#undef _ww
Packit 679830
Packit 679830
Packit 679830
/***********************************************************************
Packit 679830
//
Packit 679830
************************************************************************/
Packit 679830
Packit 679830
#if 1
Packit 679830
#  define LZO_BYTE(x)       ((unsigned char) (x))
Packit 679830
#else
Packit 679830
#  define LZO_BYTE(x)       ((unsigned char) ((x) & 0xff))
Packit 679830
#endif
Packit 679830
Packit 679830
#define LZO_MAX(a,b)        ((a) >= (b) ? (a) : (b))
Packit 679830
#define LZO_MIN(a,b)        ((a) <= (b) ? (a) : (b))
Packit 679830
#define LZO_MAX3(a,b,c)     ((a) >= (b) ? LZO_MAX(a,c) : LZO_MAX(b,c))
Packit 679830
#define LZO_MIN3(a,b,c)     ((a) <= (b) ? LZO_MIN(a,c) : LZO_MIN(b,c))
Packit 679830
Packit 679830
#define lzo_sizeof(type)    ((lzo_uint) (sizeof(type)))
Packit 679830
Packit 679830
#define LZO_HIGH(array)     ((lzo_uint) (sizeof(array)/sizeof(*(array))))
Packit 679830
Packit 679830
/* this always fits into 32 bits */
Packit 679830
#define LZO_SIZE(bits)      (1u << (bits))
Packit 679830
#define LZO_MASK(bits)      (LZO_SIZE(bits) - 1)
Packit 679830
Packit 679830
#define LZO_USIZE(bits)     ((lzo_uint) 1 << (bits))
Packit 679830
#define LZO_UMASK(bits)     (LZO_USIZE(bits) - 1)
Packit 679830
Packit 679830
#if !defined(DMUL)
Packit 679830
#if 0
Packit 679830
   /* 32*32 multiplies may be faster than 64*64 on some 64-bit machines,
Packit 679830
    * but then we need extra casts from unsigned<->size_t */
Packit 679830
#  define DMUL(a,b) ((lzo_xint) ((lzo_uint32_t)(a) * (lzo_uint32_t)(b)))
Packit 679830
#else
Packit 679830
#  define DMUL(a,b) ((lzo_xint) ((a) * (b)))
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
Packit 679830
Packit 679830
/***********************************************************************
Packit 679830
// compiler and architecture specific stuff
Packit 679830
************************************************************************/
Packit 679830
Packit 679830
/* Some defines that indicate if memory can be accessed at unaligned
Packit 679830
 * memory addresses. You should also test that this is actually faster
Packit 679830
 * even if it is allowed by your system.
Packit 679830
 */
Packit 679830
Packit 679830
#include "lzo_func.h"
Packit 679830
Packit 679830
#ifndef UA_SET1
Packit 679830
#define UA_SET1             LZO_MEMOPS_SET1
Packit 679830
#endif
Packit 679830
#ifndef UA_SET2
Packit 679830
#define UA_SET2             LZO_MEMOPS_SET2
Packit 679830
#endif
Packit 679830
#ifndef UA_SET3
Packit 679830
#define UA_SET3             LZO_MEMOPS_SET3
Packit 679830
#endif
Packit 679830
#ifndef UA_SET4
Packit 679830
#define UA_SET4             LZO_MEMOPS_SET4
Packit 679830
#endif
Packit 679830
#ifndef UA_MOVE1
Packit 679830
#define UA_MOVE1            LZO_MEMOPS_MOVE1
Packit 679830
#endif
Packit 679830
#ifndef UA_MOVE2
Packit 679830
#define UA_MOVE2            LZO_MEMOPS_MOVE2
Packit 679830
#endif
Packit 679830
#ifndef UA_MOVE3
Packit 679830
#define UA_MOVE3            LZO_MEMOPS_MOVE3
Packit 679830
#endif
Packit 679830
#ifndef UA_MOVE4
Packit 679830
#define UA_MOVE4            LZO_MEMOPS_MOVE4
Packit 679830
#endif
Packit 679830
#ifndef UA_MOVE8
Packit 679830
#define UA_MOVE8            LZO_MEMOPS_MOVE8
Packit 679830
#endif
Packit 679830
#ifndef UA_COPY1
Packit 679830
#define UA_COPY1            LZO_MEMOPS_COPY1
Packit 679830
#endif
Packit 679830
#ifndef UA_COPY2
Packit 679830
#define UA_COPY2            LZO_MEMOPS_COPY2
Packit 679830
#endif
Packit 679830
#ifndef UA_COPY3
Packit 679830
#define UA_COPY3            LZO_MEMOPS_COPY3
Packit 679830
#endif
Packit 679830
#ifndef UA_COPY4
Packit 679830
#define UA_COPY4            LZO_MEMOPS_COPY4
Packit 679830
#endif
Packit 679830
#ifndef UA_COPY8
Packit 679830
#define UA_COPY8            LZO_MEMOPS_COPY8
Packit 679830
#endif
Packit 679830
#ifndef UA_COPYN
Packit 679830
#define UA_COPYN            LZO_MEMOPS_COPYN
Packit 679830
#endif
Packit 679830
#ifndef UA_COPYN_X
Packit 679830
#define UA_COPYN_X          LZO_MEMOPS_COPYN
Packit 679830
#endif
Packit 679830
#ifndef UA_GET_LE16
Packit 679830
#define UA_GET_LE16         LZO_MEMOPS_GET_LE16
Packit 679830
#endif
Packit 679830
#ifndef UA_GET_LE32
Packit 679830
#define UA_GET_LE32         LZO_MEMOPS_GET_LE32
Packit 679830
#endif
Packit 679830
#ifdef LZO_MEMOPS_GET_LE64
Packit 679830
#ifndef UA_GET_LE64
Packit 679830
#define UA_GET_LE64         LZO_MEMOPS_GET_LE64
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#ifndef UA_GET_NE16
Packit 679830
#define UA_GET_NE16         LZO_MEMOPS_GET_NE16
Packit 679830
#endif
Packit 679830
#ifndef UA_GET_NE32
Packit 679830
#define UA_GET_NE32         LZO_MEMOPS_GET_NE32
Packit 679830
#endif
Packit 679830
#ifdef LZO_MEMOPS_GET_NE64
Packit 679830
#ifndef UA_GET_NE64
Packit 679830
#define UA_GET_NE64         LZO_MEMOPS_GET_NE64
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
#ifndef UA_PUT_LE16
Packit 679830
#define UA_PUT_LE16         LZO_MEMOPS_PUT_LE16
Packit 679830
#endif
Packit 679830
#ifndef UA_PUT_LE32
Packit 679830
#define UA_PUT_LE32         LZO_MEMOPS_PUT_LE32
Packit 679830
#endif
Packit 679830
#ifndef UA_PUT_NE16
Packit 679830
#define UA_PUT_NE16         LZO_MEMOPS_PUT_NE16
Packit 679830
#endif
Packit 679830
#ifndef UA_PUT_NE32
Packit 679830
#define UA_PUT_NE32         LZO_MEMOPS_PUT_NE32
Packit 679830
#endif
Packit 679830
Packit 679830
Packit 679830
/* Fast memcpy that copies multiples of 8 byte chunks.
Packit 679830
 * len is the number of bytes.
Packit 679830
 * note: all parameters must be lvalues, len >= 8
Packit 679830
 *       dest and src advance, len is undefined afterwards
Packit 679830
 */
Packit 679830
Packit 679830
#define MEMCPY8_DS(dest,src,len) \
Packit 679830
    lzo_memcpy(dest,src,len); dest += len; src += len
Packit 679830
Packit 679830
#define BZERO8_PTR(s,l,n) \
Packit 679830
    lzo_memset((lzo_voidp)(s),0,(lzo_uint)(l)*(n))
Packit 679830
Packit 679830
#define MEMCPY_DS(dest,src,len) \
Packit 679830
    do *dest++ = *src++; while (--len > 0)
Packit 679830
Packit 679830
Packit 679830
/***********************************************************************
Packit 679830
//
Packit 679830
************************************************************************/
Packit 679830
Packit 679830
LZO_EXTERN(const lzo_bytep) lzo_copyright(void);
Packit 679830
Packit 679830
#include "lzo_ptr.h"
Packit 679830
Packit 679830
/* Generate compressed data in a deterministic way.
Packit 679830
 * This is fully portable, and compression can be faster as well.
Packit 679830
 * A reason NOT to be deterministic is when the block size is
Packit 679830
 * very small (e.g. 8kB) or the dictionary is big, because
Packit 679830
 * then the initialization of the dictionary becomes a relevant
Packit 679830
 * magnitude for compression speed.
Packit 679830
 */
Packit 679830
#ifndef LZO_DETERMINISTIC
Packit 679830
#define LZO_DETERMINISTIC 1
Packit 679830
#endif
Packit 679830
Packit 679830
Packit 679830
#ifndef LZO_DICT_USE_PTR
Packit 679830
#define LZO_DICT_USE_PTR 1
Packit 679830
#endif
Packit 679830
Packit 679830
#if (LZO_DICT_USE_PTR)
Packit 679830
#  define lzo_dict_t    const lzo_bytep
Packit 679830
#  define lzo_dict_p    lzo_dict_t *
Packit 679830
#else
Packit 679830
#  define lzo_dict_t    lzo_uint
Packit 679830
#  define lzo_dict_p    lzo_dict_t *
Packit 679830
#endif
Packit 679830
Packit 679830
Packit 679830
#endif /* already included */
Packit 679830
Packit 679830
/*
Packit 679830
vi:ts=4:et
Packit 679830
*/
Packit 679830