1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* lzoconf.h -- configuration of the LZO data compression library 2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov This file is part of the LZO real-time data compression library. 4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer 6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer 7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer 8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer 9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer 10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer 11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer 12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer 13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer 14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer 15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer 16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer 17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer 18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer 19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer 20436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer 21436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov All Rights Reserved. 22436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 23436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov The LZO library is free software; you can redistribute it and/or 24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov modify it under the terms of the GNU General Public License as 25436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov published by the Free Software Foundation; either version 2 of 26436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov the License, or (at your option) any later version. 27436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 28436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov The LZO library is distributed in the hope that it will be useful, 29436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov but WITHOUT ANY WARRANTY; without even the implied warranty of 30436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 31436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov GNU General Public License for more details. 32436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 33436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov You should have received a copy of the GNU General Public License 34436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov along with the LZO library; see the file COPYING. 35436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov If not, write to the Free Software Foundation, Inc., 36436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 37436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 38436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov Markus F.X.J. Oberhumer 39436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov <markus@oberhumer.com> 40436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov http://www.oberhumer.com/opensource/lzo/ 41436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov */ 42436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 43436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 44436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef __LZOCONF_H_INCLUDED 45436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __LZOCONF_H_INCLUDED 1 46436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 47436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_VERSION 0x2060 48436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_VERSION_STRING "2.06" 49436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_VERSION_DATE "Aug 12 2011" 50436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 51436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* internal Autoconf configuration file - only used when building LZO */ 52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if defined(LZO_HAVE_CONFIG_H) 53436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# include <config.h> 54436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 55436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include <limits.h> 56436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include <stddef.h> 57436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 58436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 59436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*********************************************************************** 60436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// LZO requires a conforming <limits.h> 61436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov************************************************************************/ 62436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 63436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(CHAR_BIT) || (CHAR_BIT != 8) 64436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# error "invalid CHAR_BIT" 65436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 66436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(UCHAR_MAX) || !defined(UINT_MAX) || !defined(ULONG_MAX) 67436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# error "check your compiler installation" 68436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 69436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if (USHRT_MAX < 1) || (UINT_MAX < 1) || (ULONG_MAX < 1) 70436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# error "your limits.h macros are broken" 71436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 72436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 73436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* get OS and architecture defines */ 74436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef __LZODEFS_H_INCLUDED 75436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include "lzodefs.h" 76436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 77436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 78436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 79436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifdef __cplusplus 80436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovextern "C" { 81436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 82436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 83436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 84436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*********************************************************************** 85436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// some core defines 86436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov************************************************************************/ 87436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 88436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(LZO_UINT32_C) 89436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# if (UINT_MAX < LZO_0xffffffffL) 90436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_UINT32_C(c) c ## UL 91436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# else 92436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_UINT32_C(c) ((c) + 0U) 93436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 94436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 95436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 96436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* memory checkers */ 97436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(__LZO_CHECKER) 98436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# if defined(__BOUNDS_CHECKING_ON) 99436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_CHECKER 1 100436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# elif defined(__CHECKER__) 101436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_CHECKER 1 102436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# elif defined(__INSURE__) 103436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_CHECKER 1 104436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# elif defined(__PURIFY__) 105436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_CHECKER 1 106436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 107436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 108436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 109436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 110436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*********************************************************************** 111436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// integral and pointer types 112436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov************************************************************************/ 113436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 114436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* lzo_uint should match size_t */ 115436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(LZO_UINT_MAX) 116436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# if defined(LZO_ABI_LLP64) /* WIN64 */ 117436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# if defined(LZO_OS_WIN64) 118436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef unsigned __int64 lzo_uint; 119436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef __int64 lzo_int; 120436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# else 121436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef unsigned long long lzo_uint; 122436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef long long lzo_int; 123436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 124436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_UINT_MAX 0xffffffffffffffffull 125436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT_MAX 9223372036854775807LL 126436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT_MIN (-1LL - LZO_INT_MAX) 127436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# elif defined(LZO_ABI_IP32L64) /* MIPS R5900 */ 128436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef unsigned int lzo_uint; 129436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef int lzo_int; 130436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_UINT_MAX UINT_MAX 131436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT_MAX INT_MAX 132436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT_MIN INT_MIN 133436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# elif (ULONG_MAX >= LZO_0xffffffffL) 134436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef unsigned long lzo_uint; 135436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef long lzo_int; 136436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_UINT_MAX ULONG_MAX 137436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT_MAX LONG_MAX 138436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT_MIN LONG_MIN 139436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# else 140436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# error "lzo_uint" 141436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 142436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 143436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 144436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* Integral types with 32 bits or more. */ 145436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(LZO_UINT32_MAX) 146436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# if (UINT_MAX >= LZO_0xffffffffL) 147436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef unsigned int lzo_uint32; 148436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef int lzo_int32; 149436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_UINT32_MAX UINT_MAX 150436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT32_MAX INT_MAX 151436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT32_MIN INT_MIN 152436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# elif (ULONG_MAX >= LZO_0xffffffffL) 153436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef unsigned long lzo_uint32; 154436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef long lzo_int32; 155436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_UINT32_MAX ULONG_MAX 156436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT32_MAX LONG_MAX 157436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT32_MIN LONG_MIN 158436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# else 159436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# error "lzo_uint32" 160436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 161436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 162436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 163436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* Integral types with exactly 64 bits. */ 164436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(LZO_UINT64_MAX) 165436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# if (LZO_UINT_MAX >= LZO_0xffffffffL) 166436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# if ((((LZO_UINT_MAX) >> 31) >> 31) == 3) 167436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define lzo_uint64 lzo_uint 168436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define lzo_int64 lzo_int 169436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_UINT64_MAX LZO_UINT_MAX 170436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT64_MAX LZO_INT_MAX 171436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT64_MIN LZO_INT_MIN 172436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 173436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# elif (ULONG_MAX >= LZO_0xffffffffL) 174436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# if ((((ULONG_MAX) >> 31) >> 31) == 3) 175436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef unsigned long lzo_uint64; 176436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov typedef long lzo_int64; 177436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_UINT64_MAX ULONG_MAX 178436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT64_MAX LONG_MAX 179436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_INT64_MIN LONG_MIN 180436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 181436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 182436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 183436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 184436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* The larger type of lzo_uint and lzo_uint32. */ 185436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if (LZO_UINT_MAX >= LZO_UINT32_MAX) 186436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define lzo_xint lzo_uint 187436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#else 188436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define lzo_xint lzo_uint32 189436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 190436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 191436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* Memory model that allows to access memory at offsets of lzo_uint. */ 192436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(__LZO_MMODEL) 193436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# if (LZO_UINT_MAX <= UINT_MAX) 194436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_MMODEL /*empty*/ 195436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# elif defined(LZO_HAVE_MM_HUGE_PTR) 196436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_MMODEL_HUGE 1 197436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_MMODEL __huge 198436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# else 199436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_MMODEL /*empty*/ 200436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 201436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 202436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 203436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* no typedef here because of const-pointer issues */ 204436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_bytep unsigned char __LZO_MMODEL * 205436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_charp char __LZO_MMODEL * 206436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_voidp void __LZO_MMODEL * 207436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_shortp short __LZO_MMODEL * 208436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_ushortp unsigned short __LZO_MMODEL * 209436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_uint32p lzo_uint32 __LZO_MMODEL * 210436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_int32p lzo_int32 __LZO_MMODEL * 211436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if defined(LZO_UINT64_MAX) 212436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_uint64p lzo_uint64 __LZO_MMODEL * 213436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_int64p lzo_int64 __LZO_MMODEL * 214436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 215436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_uintp lzo_uint __LZO_MMODEL * 216436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_intp lzo_int __LZO_MMODEL * 217436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_xintp lzo_xint __LZO_MMODEL * 218436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_voidpp lzo_voidp __LZO_MMODEL * 219436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_bytepp lzo_bytep __LZO_MMODEL * 220436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* deprecated - use 'lzo_bytep' instead of 'lzo_byte *' */ 221436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_byte unsigned char __LZO_MMODEL 222436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 223436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef int lzo_bool; 224436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 225436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 226436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*********************************************************************** 227436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// function types 228436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov************************************************************************/ 229436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 230436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* name mangling */ 231436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(__LZO_EXTERN_C) 232436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# ifdef __cplusplus 233436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_EXTERN_C extern "C" 234436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# else 235436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_EXTERN_C extern 236436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# endif 237436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 238436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 239436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* calling convention */ 240436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(__LZO_CDECL) 241436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_CDECL __lzo_cdecl 242436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 243436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 244436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* DLL export information */ 245436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(__LZO_EXPORT1) 246436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_EXPORT1 /*empty*/ 247436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 248436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(__LZO_EXPORT2) 249436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_EXPORT2 /*empty*/ 250436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 251436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 252436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* __cdecl calling convention for public C and assembly functions */ 253436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(LZO_PUBLIC) 254436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_PUBLIC(_rettype) __LZO_EXPORT1 _rettype __LZO_EXPORT2 __LZO_CDECL 255436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 256436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(LZO_EXTERN) 257436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_EXTERN(_rettype) __LZO_EXTERN_C LZO_PUBLIC(_rettype) 258436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 259436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if !defined(LZO_PRIVATE) 260436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define LZO_PRIVATE(_rettype) static _rettype __LZO_CDECL 261436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 262436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 263436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* function types */ 264436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef int 265436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov(__LZO_CDECL *lzo_compress_t) ( const lzo_bytep src, lzo_uint src_len, 266436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_bytep dst, lzo_uintp dst_len, 267436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_voidp wrkmem ); 268436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 269436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef int 270436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov(__LZO_CDECL *lzo_decompress_t) ( const lzo_bytep src, lzo_uint src_len, 271436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_bytep dst, lzo_uintp dst_len, 272436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_voidp wrkmem ); 273436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 274436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef int 275436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov(__LZO_CDECL *lzo_optimize_t) ( lzo_bytep src, lzo_uint src_len, 276436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_bytep dst, lzo_uintp dst_len, 277436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_voidp wrkmem ); 278436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 279436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef int 280436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov(__LZO_CDECL *lzo_compress_dict_t)(const lzo_bytep src, lzo_uint src_len, 281436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_bytep dst, lzo_uintp dst_len, 282436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_voidp wrkmem, 283436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov const lzo_bytep dict, lzo_uint dict_len ); 284436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 285436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef int 286436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov(__LZO_CDECL *lzo_decompress_dict_t)(const lzo_bytep src, lzo_uint src_len, 287436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_bytep dst, lzo_uintp dst_len, 288436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_voidp wrkmem, 289436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov const lzo_bytep dict, lzo_uint dict_len ); 290436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 291436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 292436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* Callback interface. Currently only the progress indicator ("nprogress") 293436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * is used, but this may change in a future release. */ 294436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 295436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct lzo_callback_t; 296436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef struct lzo_callback_t lzo_callback_t; 297436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_callback_p lzo_callback_t __LZO_MMODEL * 298436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 299436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* malloc & free function types */ 300436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef lzo_voidp (__LZO_CDECL *lzo_alloc_func_t) 301436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (lzo_callback_p self, lzo_uint items, lzo_uint size); 302436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef void (__LZO_CDECL *lzo_free_func_t) 303436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (lzo_callback_p self, lzo_voidp ptr); 304436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 305436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* a progress indicator callback function */ 306436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef void (__LZO_CDECL *lzo_progress_func_t) 307436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (lzo_callback_p, lzo_uint, lzo_uint, int); 308436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 309436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct lzo_callback_t 310436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov{ 311436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* custom allocators (set to 0 to disable) */ 312436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_alloc_func_t nalloc; /* [not used right now] */ 313436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_free_func_t nfree; /* [not used right now] */ 314436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 315436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* a progress indicator callback function (set to 0 to disable) */ 316436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_progress_func_t nprogress; 317436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 318436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov /* NOTE: the first parameter "self" of the nalloc/nfree/nprogress 319436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * callbacks points back to this struct, so you are free to store 320436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * some extra info in the following variables. */ 321436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_voidp user1; 322436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_xint user2; 323436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_xint user3; 324436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}; 325436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 326436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 327436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*********************************************************************** 328436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// error codes and prototypes 329436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov************************************************************************/ 330436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 331436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* Error codes for the compression/decompression functions. Negative 332436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * values are errors, positive values will be used for special but 333436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * normal events. 334436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov */ 335436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_OK 0 336436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_ERROR (-1) 337436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_OUT_OF_MEMORY (-2) /* [lzo_alloc_func_t failure] */ 338436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_NOT_COMPRESSIBLE (-3) /* [not used right now] */ 339436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_INPUT_OVERRUN (-4) 340436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_OUTPUT_OVERRUN (-5) 341436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_LOOKBEHIND_OVERRUN (-6) 342436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_EOF_NOT_FOUND (-7) 343436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_INPUT_NOT_CONSUMED (-8) 344436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_NOT_YET_IMPLEMENTED (-9) /* [not used right now] */ 345436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_E_INVALID_ARGUMENT (-10) 346436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 347436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 348436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef lzo_sizeof_dict_t 349436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define lzo_sizeof_dict_t ((unsigned)sizeof(lzo_bytep)) 350436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 351436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 352436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* lzo_init() should be the first function you call. 353436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * Check the return code ! 354436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * 355436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * lzo_init() is a macro to allow checking that the library and the 356436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov * compiler's view of various types are consistent. 357436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov */ 358436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_init() __lzo_init_v2(LZO_VERSION,(int)sizeof(short),(int)sizeof(int),\ 359436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (int)sizeof(long),(int)sizeof(lzo_uint32),(int)sizeof(lzo_uint),\ 360436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (int)lzo_sizeof_dict_t,(int)sizeof(char *),(int)sizeof(lzo_voidp),\ 361436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov (int)sizeof(lzo_callback_t)) 362436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(int) __lzo_init_v2(unsigned,int,int,int,int,int,int,int,int,int); 363436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 364436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* version functions (useful for shared libraries) */ 365436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(unsigned) lzo_version(void); 366436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(const char *) lzo_version_string(void); 367436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(const char *) lzo_version_date(void); 368436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(const lzo_charp) _lzo_version_string(void); 369436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(const lzo_charp) _lzo_version_date(void); 370436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 371436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* string functions */ 372436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(int) 373436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_memcmp(const lzo_voidp a, const lzo_voidp b, lzo_uint len); 374436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(lzo_voidp) 375436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_memcpy(lzo_voidp dst, const lzo_voidp src, lzo_uint len); 376436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(lzo_voidp) 377436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_memmove(lzo_voidp dst, const lzo_voidp src, lzo_uint len); 378436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(lzo_voidp) 379436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_memset(lzo_voidp buf, int c, lzo_uint len); 380436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 381436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* checksum functions */ 382436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(lzo_uint32) 383436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_adler32(lzo_uint32 c, const lzo_bytep buf, lzo_uint len); 384436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(lzo_uint32) 385436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_crc32(lzo_uint32 c, const lzo_bytep buf, lzo_uint len); 386436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(const lzo_uint32p) 387436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov lzo_get_crc32_table(void); 388436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 389436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* misc. */ 390436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(int) _lzo_config_check(void); 391436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef union { lzo_bytep p; lzo_uint u; } __lzo_pu_u; 392436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef union { lzo_bytep p; lzo_uint32 u32; } __lzo_pu32_u; 393436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovtypedef union { void *vp; lzo_bytep bp; lzo_uint u; lzo_uint32 u32; unsigned long l; } lzo_align_t; 394436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 395436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* align a char pointer on a boundary that is a multiple of 'size' */ 396436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy IvanovLZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); 397436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_PTR_ALIGN_UP(p,size) \ 398436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov ((p) + (lzo_uint) __lzo_align_gap((const lzo_voidp)(p),(lzo_uint)(size))) 399436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 400436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 401436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*********************************************************************** 402436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// deprecated macros - only for backward compatibility with LZO v1.xx 403436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov************************************************************************/ 404436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 405436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if defined(LZO_CFG_COMPAT) 406436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 407436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __LZOCONF_H 1 408436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 409436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if defined(LZO_ARCH_I086) 410436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_i386 1 411436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#elif defined(LZO_ARCH_I386) 412436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_i386 1 413436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 414436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 415436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#if defined(LZO_OS_DOS16) 416436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_DOS 1 417436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_DOS16 1 418436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#elif defined(LZO_OS_DOS32) 419436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_DOS 1 420436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#elif defined(LZO_OS_WIN16) 421436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_WIN 1 422436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_WIN16 1 423436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#elif defined(LZO_OS_WIN32) 424436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov# define __LZO_WIN 1 425436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 426436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 427436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __LZO_CMODEL /*empty*/ 428436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __LZO_DMODEL /*empty*/ 429436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __LZO_ENTRY __LZO_CDECL 430436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_EXTERN_CDECL LZO_EXTERN 431436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define LZO_ALIGN LZO_PTR_ALIGN_UP 432436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 433436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_compress_asm_t lzo_compress_t 434436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define lzo_decompress_asm_t lzo_decompress_t 435436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 436436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif /* LZO_CFG_COMPAT */ 437436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 438436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 439436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifdef __cplusplus 440436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov} /* extern "C" */ 441436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif 442436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 443436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif /* already included */ 444436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 445436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov 446436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* vim:set ts=4 et: */ 447