lzodefs.h

Go to the documentation of this file.
00001 /* lzodefs.h -- architecture, OS and compiler specific defines
00002 
00003    This file is part of the LZO real-time data compression library.
00004 
00005    Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
00006    Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
00007    Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
00008    Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
00009    Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
00010    Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
00011    Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
00012    Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
00013    Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
00014    Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
00015    All Rights Reserved.
00016 
00017    The LZO library is free software; you can redistribute it and/or
00018    modify it under the terms of the GNU General Public License,
00019    version 2, as published by the Free Software Foundation.
00020 
00021    The LZO library is distributed in the hope that it will be useful,
00022    but WITHOUT ANY WARRANTY; without even the implied warranty of
00023    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00024    GNU General Public License for more details.
00025 
00026    You should have received a copy of the GNU General Public License
00027    along with the LZO library; see the file COPYING.
00028    If not, write to the Free Software Foundation, Inc.,
00029    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00030 
00031    Markus F.X.J. Oberhumer
00032    <markus@oberhumer.com>
00033    http://www.oberhumer.com/opensource/lzo/
00034  */
00035 
00036 
00037 #ifndef __LZODEFS_H_INCLUDED
00038 #define __LZODEFS_H_INCLUDED 1
00039 
00040 #if defined(__CYGWIN32__) && !defined(__CYGWIN__)
00041 #  define __CYGWIN__ __CYGWIN32__
00042 #endif
00043 #if defined(__IBMCPP__) && !defined(__IBMC__)
00044 #  define __IBMC__ __IBMCPP__
00045 #endif
00046 #if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER)
00047 #  define __INTEL_COMPILER __ICL
00048 #endif
00049 #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE)
00050 #  define _ALL_SOURCE 1
00051 #endif
00052 #if defined(__mips__) && defined(__R5900__)
00053 #  if !defined(__LONG_MAX__)
00054 #    define __LONG_MAX__ 9223372036854775807L
00055 #  endif
00056 #endif
00057 #if defined(__INTEL_COMPILER) && defined(__linux__)
00058 #  pragma warning(disable: 193)
00059 #endif
00060 #if defined(__KEIL__) && defined(__C166__)
00061 #  pragma warning disable = 322
00062 #elif 0 && defined(__C251__)
00063 #  pragma warning disable = 322
00064 #endif
00065 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
00066 #  if (_MSC_VER >= 1300)
00067 #    pragma warning(disable: 4668)
00068 #  endif
00069 #endif
00070 #if 0 && defined(__WATCOMC__)
00071 #  if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060)
00072 #    pragma warning 203 9
00073 #  endif
00074 #endif
00075 #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__)
00076 #  pragma option -h
00077 #endif
00078 #if 0
00079 #define LZO_0xffffL             0xfffful
00080 #define LZO_0xffffffffL         0xfffffffful
00081 #else
00082 #define LZO_0xffffL             65535ul
00083 #define LZO_0xffffffffL         4294967295ul
00084 #endif
00085 #if (LZO_0xffffL == LZO_0xffffffffL)
00086 #  error "your preprocessor is broken 1"
00087 #endif
00088 #if (16ul * 16384ul != 262144ul)
00089 #  error "your preprocessor is broken 2"
00090 #endif
00091 #if 0
00092 #if (32767 >= 4294967295ul)
00093 #  error "your preprocessor is broken 3"
00094 #endif
00095 #if (65535u >= 4294967295ul)
00096 #  error "your preprocessor is broken 4"
00097 #endif
00098 #endif
00099 #if (UINT_MAX == LZO_0xffffL)
00100 #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)
00101 #  if !defined(MSDOS)
00102 #    define MSDOS 1
00103 #  endif
00104 #  if !defined(_MSDOS)
00105 #    define _MSDOS 1
00106 #  endif
00107 #elif 0 && defined(__VERSION) && defined(MB_LEN_MAX)
00108 #  if (__VERSION == 520) && (MB_LEN_MAX == 1)
00109 #    if !defined(__AZTEC_C__)
00110 #      define __AZTEC_C__ __VERSION
00111 #    endif
00112 #    if !defined(__DOS__)
00113 #      define __DOS__ 1
00114 #    endif
00115 #  endif
00116 #endif
00117 #endif
00118 #if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == LZO_0xffffL)
00119 #  define ptrdiff_t long
00120 #  define _PTRDIFF_T_DEFINED
00121 #endif
00122 #if (UINT_MAX == LZO_0xffffL)
00123 #  undef __LZO_RENAME_A
00124 #  undef __LZO_RENAME_B
00125 #  if defined(__AZTEC_C__) && defined(__DOS__)
00126 #    define __LZO_RENAME_A 1
00127 #  elif defined(_MSC_VER) && defined(MSDOS)
00128 #    if (_MSC_VER < 600)
00129 #      define __LZO_RENAME_A 1
00130 #    elif (_MSC_VER < 700)
00131 #      define __LZO_RENAME_B 1
00132 #    endif
00133 #  elif defined(__TSC__) && defined(__OS2__)
00134 #    define __LZO_RENAME_A 1
00135 #  elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410)
00136 #    define __LZO_RENAME_A 1
00137 #  elif defined(__PACIFIC__) && defined(DOS)
00138 #    if !defined(__far)
00139 #      define __far far
00140 #    endif
00141 #    if !defined(__near)
00142 #      define __near near
00143 #    endif
00144 #  endif
00145 #  if defined(__LZO_RENAME_A)
00146 #    if !defined(__cdecl)
00147 #      define __cdecl cdecl
00148 #    endif
00149 #    if !defined(__far)
00150 #      define __far far
00151 #    endif
00152 #    if !defined(__huge)
00153 #      define __huge huge
00154 #    endif
00155 #    if !defined(__near)
00156 #      define __near near
00157 #    endif
00158 #    if !defined(__pascal)
00159 #      define __pascal pascal
00160 #    endif
00161 #    if !defined(__huge)
00162 #      define __huge huge
00163 #    endif
00164 #  elif defined(__LZO_RENAME_B)
00165 #    if !defined(__cdecl)
00166 #      define __cdecl _cdecl
00167 #    endif
00168 #    if !defined(__far)
00169 #      define __far _far
00170 #    endif
00171 #    if !defined(__huge)
00172 #      define __huge _huge
00173 #    endif
00174 #    if !defined(__near)
00175 #      define __near _near
00176 #    endif
00177 #    if !defined(__pascal)
00178 #      define __pascal _pascal
00179 #    endif
00180 #  elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
00181 #    if !defined(__cdecl)
00182 #      define __cdecl cdecl
00183 #    endif
00184 #    if !defined(__pascal)
00185 #      define __pascal pascal
00186 #    endif
00187 #  endif
00188 #  undef __LZO_RENAME_A
00189 #  undef __LZO_RENAME_B
00190 #endif
00191 #if (UINT_MAX == LZO_0xffffL)
00192 #if defined(__AZTEC_C__) && defined(__DOS__)
00193 #  define LZO_BROKEN_CDECL_ALT_SYNTAX 1
00194 #elif defined(_MSC_VER) && defined(MSDOS)
00195 #  if (_MSC_VER < 600)
00196 #    define LZO_BROKEN_INTEGRAL_CONSTANTS 1
00197 #  endif
00198 #  if (_MSC_VER < 700)
00199 #    define LZO_BROKEN_INTEGRAL_PROMOTION 1
00200 #    define LZO_BROKEN_SIZEOF 1
00201 #  endif
00202 #elif defined(__PACIFIC__) && defined(DOS)
00203 #  define LZO_BROKEN_INTEGRAL_CONSTANTS 1
00204 #elif defined(__TURBOC__) && defined(__MSDOS__)
00205 #  if (__TURBOC__ < 0x0150)
00206 #    define LZO_BROKEN_CDECL_ALT_SYNTAX 1
00207 #    define LZO_BROKEN_INTEGRAL_CONSTANTS 1
00208 #    define LZO_BROKEN_INTEGRAL_PROMOTION 1
00209 #  endif
00210 #  if (__TURBOC__ < 0x0200)
00211 #    define LZO_BROKEN_SIZEOF 1
00212 #  endif
00213 #  if (__TURBOC__ < 0x0400) && defined(__cplusplus)
00214 #    define LZO_BROKEN_CDECL_ALT_SYNTAX 1
00215 #  endif
00216 #elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
00217 #  define LZO_BROKEN_CDECL_ALT_SYNTAX 1
00218 #  define LZO_BROKEN_SIZEOF 1
00219 #endif
00220 #endif
00221 #if defined(__WATCOMC__) && (__WATCOMC__ < 900)
00222 #  define LZO_BROKEN_INTEGRAL_CONSTANTS 1
00223 #endif
00224 #define LZO_CPP_STRINGIZE(x)            #x
00225 #define LZO_CPP_MACRO_EXPAND(x)         LZO_CPP_STRINGIZE(x)
00226 #define LZO_CPP_CONCAT2(a,b)            a ## b
00227 #define LZO_CPP_CONCAT3(a,b,c)          a ## b ## c
00228 #define LZO_CPP_CONCAT4(a,b,c,d)        a ## b ## c ## d
00229 #define LZO_CPP_CONCAT5(a,b,c,d,e)      a ## b ## c ## d ## e
00230 #define LZO_CPP_ECONCAT2(a,b)           LZO_CPP_CONCAT2(a,b)
00231 #define LZO_CPP_ECONCAT3(a,b,c)         LZO_CPP_CONCAT3(a,b,c)
00232 #define LZO_CPP_ECONCAT4(a,b,c,d)       LZO_CPP_CONCAT4(a,b,c,d)
00233 #define LZO_CPP_ECONCAT5(a,b,c,d,e)     LZO_CPP_CONCAT5(a,b,c,d,e)
00234 #define __LZO_MASK_GEN(o,b)     (((((o) << ((b)-1)) - (o)) << 1) + (o))
00235 #if 1 && defined(__cplusplus)
00236 #  if !defined(__STDC_CONSTANT_MACROS)
00237 #    define __STDC_CONSTANT_MACROS 1
00238 #  endif
00239 #  if !defined(__STDC_LIMIT_MACROS)
00240 #    define __STDC_LIMIT_MACROS 1
00241 #  endif
00242 #endif
00243 #if defined(__cplusplus)
00244 #  define LZO_EXTERN_C extern "C"
00245 #else
00246 #  define LZO_EXTERN_C extern
00247 #endif
00248 #if !defined(__LZO_OS_OVERRIDE)
00249 #if defined(LZO_OS_FREESTANDING)
00250 #  define LZO_INFO_OS           "freestanding"
00251 #elif defined(LZO_OS_EMBEDDED)
00252 #  define LZO_INFO_OS           "embedded"
00253 #elif defined(__CYGWIN__) && defined(__GNUC__)
00254 #  define LZO_OS_CYGWIN         1
00255 #  define LZO_INFO_OS           "cygwin"
00256 #elif defined(__EMX__) && defined(__GNUC__)
00257 #  define LZO_OS_EMX            1
00258 #  define LZO_INFO_OS           "emx"
00259 #elif defined(__BEOS__)
00260 #  define LZO_OS_BEOS           1
00261 #  define LZO_INFO_OS           "beos"
00262 #elif defined(__Lynx__)
00263 #  define LZO_OS_LYNXOS         1
00264 #  define LZO_INFO_OS           "lynxos"
00265 #elif defined(__OS400__)
00266 #  define LZO_OS_OS400          1
00267 #  define LZO_INFO_OS           "os400"
00268 #elif defined(__QNX__)
00269 #  define LZO_OS_QNX            1
00270 #  define LZO_INFO_OS           "qnx"
00271 #elif defined(__BORLANDC__) && defined(__DPMI32__) && (__BORLANDC__ >= 0x0460)
00272 #  define LZO_OS_DOS32          1
00273 #  define LZO_INFO_OS           "dos32"
00274 #elif defined(__BORLANDC__) && defined(__DPMI16__)
00275 #  define LZO_OS_DOS16          1
00276 #  define LZO_INFO_OS           "dos16"
00277 #elif defined(__ZTC__) && defined(DOS386)
00278 #  define LZO_OS_DOS32          1
00279 #  define LZO_INFO_OS           "dos32"
00280 #elif defined(__OS2__) || defined(__OS2V2__)
00281 #  if (UINT_MAX == LZO_0xffffL)
00282 #    define LZO_OS_OS216        1
00283 #    define LZO_INFO_OS         "os216"
00284 #  elif (UINT_MAX == LZO_0xffffffffL)
00285 #    define LZO_OS_OS2          1
00286 #    define LZO_INFO_OS         "os2"
00287 #  else
00288 #    error "check your limits.h header"
00289 #  endif
00290 #elif defined(__WIN64__) || defined(_WIN64) || defined(WIN64)
00291 #  define LZO_OS_WIN64          1
00292 #  define LZO_INFO_OS           "win64"
00293 #elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS_386__)
00294 #  define LZO_OS_WIN32          1
00295 #  define LZO_INFO_OS           "win32"
00296 #elif defined(__MWERKS__) && defined(__INTEL__)
00297 #  define LZO_OS_WIN32          1
00298 #  define LZO_INFO_OS           "win32"
00299 #elif defined(__WINDOWS__) || defined(_WINDOWS) || defined(_Windows)
00300 #  if (UINT_MAX == LZO_0xffffL)
00301 #    define LZO_OS_WIN16        1
00302 #    define LZO_INFO_OS         "win16"
00303 #  elif (UINT_MAX == LZO_0xffffffffL)
00304 #    define LZO_OS_WIN32        1
00305 #    define LZO_INFO_OS         "win32"
00306 #  else
00307 #    error "check your limits.h header"
00308 #  endif
00309 #elif defined(__DOS__) || defined(__MSDOS__) || defined(_MSDOS) || defined(MSDOS) || (defined(__PACIFIC__) && defined(DOS))
00310 #  if (UINT_MAX == LZO_0xffffL)
00311 #    define LZO_OS_DOS16        1
00312 #    define LZO_INFO_OS         "dos16"
00313 #  elif (UINT_MAX == LZO_0xffffffffL)
00314 #    define LZO_OS_DOS32        1
00315 #    define LZO_INFO_OS         "dos32"
00316 #  else
00317 #    error "check your limits.h header"
00318 #  endif
00319 #elif defined(__WATCOMC__)
00320 #  if defined(__NT__) && (UINT_MAX == LZO_0xffffL)
00321 #    define LZO_OS_DOS16        1
00322 #    define LZO_INFO_OS         "dos16"
00323 #  elif defined(__NT__) && (__WATCOMC__ < 1100)
00324 #    define LZO_OS_WIN32        1
00325 #    define LZO_INFO_OS         "win32"
00326 #  else
00327 #    error "please specify a target using the -bt compiler option"
00328 #  endif
00329 #elif defined(__palmos__)
00330 #  define LZO_OS_PALMOS         1
00331 #  define LZO_INFO_OS           "palmos"
00332 #elif defined(__TOS__) || defined(__atarist__)
00333 #  define LZO_OS_TOS            1
00334 #  define LZO_INFO_OS           "tos"
00335 #elif defined(macintosh) && !defined(__ppc__)
00336 #  define LZO_OS_MACCLASSIC     1
00337 #  define LZO_INFO_OS           "macclassic"
00338 #elif defined(__VMS)
00339 #  define LZO_OS_VMS            1
00340 #  define LZO_INFO_OS           "vms"
00341 #elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
00342 #  define LZO_OS_CONSOLE        1
00343 #  define LZO_OS_CONSOLE_PS2    1
00344 #  define LZO_INFO_OS           "console"
00345 #  define LZO_INFO_OS_CONSOLE   "ps2"
00346 #elif (defined(__mips__) && defined(__psp__))
00347 #  define LZO_OS_CONSOLE        1
00348 #  define LZO_OS_CONSOLE_PSP    1
00349 #  define LZO_INFO_OS           "console"
00350 #  define LZO_INFO_OS_CONSOLE   "psp"
00351 #else
00352 #  define LZO_OS_POSIX          1
00353 #  define LZO_INFO_OS           "posix"
00354 #endif
00355 #if (LZO_OS_POSIX)
00356 #  if defined(_AIX) || defined(__AIX__) || defined(__aix__)
00357 #    define LZO_OS_POSIX_AIX        1
00358 #    define LZO_INFO_OS_POSIX       "aix"
00359 #  elif defined(__FreeBSD__)
00360 #    define LZO_OS_POSIX_FREEBSD    1
00361 #    define LZO_INFO_OS_POSIX       "freebsd"
00362 #  elif defined(__hpux__) || defined(__hpux)
00363 #    define LZO_OS_POSIX_HPUX       1
00364 #    define LZO_INFO_OS_POSIX       "hpux"
00365 #  elif defined(__INTERIX)
00366 #    define LZO_OS_POSIX_INTERIX    1
00367 #    define LZO_INFO_OS_POSIX       "interix"
00368 #  elif defined(__IRIX__) || defined(__irix__)
00369 #    define LZO_OS_POSIX_IRIX       1
00370 #    define LZO_INFO_OS_POSIX       "irix"
00371 #  elif defined(__linux__) || defined(__linux)
00372 #    define LZO_OS_POSIX_LINUX      1
00373 #    define LZO_INFO_OS_POSIX       "linux"
00374 #  elif defined(__APPLE__) || defined(__MACOS__)
00375 #    define LZO_OS_POSIX_MACOSX     1
00376 #    define LZO_INFO_OS_POSIX       "macosx"
00377 #  elif defined(__NetBSD__)
00378 #    define LZO_OS_POSIX_NETBSD     1
00379 #    define LZO_INFO_OS_POSIX       "netbsd"
00380 #  elif defined(__OpenBSD__)
00381 #    define LZO_OS_POSIX_OPENBSD    1
00382 #    define LZO_INFO_OS_POSIX       "openbsd"
00383 #  elif defined(__osf__)
00384 #    define LZO_OS_POSIX_OSF        1
00385 #    define LZO_INFO_OS_POSIX       "osf"
00386 #  elif defined(__solaris__) || defined(__sun)
00387 #    if defined(__SVR4) || defined(__svr4__)
00388 #      define LZO_OS_POSIX_SOLARIS  1
00389 #      define LZO_INFO_OS_POSIX     "solaris"
00390 #    else
00391 #      define LZO_OS_POSIX_SUNOS    1
00392 #      define LZO_INFO_OS_POSIX     "sunos"
00393 #    endif
00394 #  elif defined(__ultrix__) || defined(__ultrix)
00395 #    define LZO_OS_POSIX_ULTRIX     1
00396 #    define LZO_INFO_OS_POSIX       "ultrix"
00397 #  else
00398 #    define LZO_OS_POSIX_UNKNOWN    1
00399 #    define LZO_INFO_OS_POSIX       "unknown"
00400 #  endif
00401 #endif
00402 #endif
00403 #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
00404 #  if (UINT_MAX != LZO_0xffffL)
00405 #    error "this should not happen"
00406 #  endif
00407 #  if (ULONG_MAX != LZO_0xffffffffL)
00408 #    error "this should not happen"
00409 #  endif
00410 #endif
00411 #if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32 || LZO_OS_WIN64)
00412 #  if (UINT_MAX != LZO_0xffffffffL)
00413 #    error "this should not happen"
00414 #  endif
00415 #  if (ULONG_MAX != LZO_0xffffffffL)
00416 #    error "this should not happen"
00417 #  endif
00418 #endif
00419 #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__)
00420 #  define LZO_CC_CILLY          1
00421 #  define LZO_INFO_CC           "Cilly"
00422 #  if defined(__CILLY__)
00423 #    define LZO_INFO_CCVER      LZO_CPP_MACRO_EXPAND(__CILLY__)
00424 #  else
00425 #    define LZO_INFO_CCVER      "unknown"
00426 #  endif
00427 #elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__)
00428 #  define LZO_CC_SDCC           1
00429 #  define LZO_INFO_CC           "sdcc"
00430 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(SDCC)
00431 #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
00432 #  define LZO_CC_PATHSCALE      (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__)
00433 #  define LZO_INFO_CC           "Pathscale C"
00434 #  define LZO_INFO_CCVER        __PATHSCALE__
00435 #elif defined(__INTEL_COMPILER)
00436 #  define LZO_CC_INTELC         1
00437 #  define LZO_INFO_CC           "Intel C"
00438 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__INTEL_COMPILER)
00439 #elif defined(__POCC__) && defined(_WIN32)
00440 #  define LZO_CC_PELLESC        1
00441 #  define LZO_INFO_CC           "Pelles C"
00442 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__POCC__)
00443 #elif defined(__llvm__) && defined(__GNUC__) && defined(__VERSION__)
00444 #  define LZO_CC_LLVM           1
00445 #  define LZO_INFO_CC           "llvm-gcc"
00446 #  define LZO_INFO_CCVER        __VERSION__
00447 #elif defined(__GNUC__) && defined(__VERSION__)
00448 #  if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
00449 #    define LZO_CC_GNUC         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
00450 #  elif defined(__GNUC_MINOR__)
00451 #    define LZO_CC_GNUC         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
00452 #  else
00453 #    define LZO_CC_GNUC         (__GNUC__ * 0x10000L)
00454 #  endif
00455 #  define LZO_INFO_CC           "gcc"
00456 #  define LZO_INFO_CCVER        __VERSION__
00457 #elif defined(__AZTEC_C__)
00458 #  define LZO_CC_AZTECC         1
00459 #  define LZO_INFO_CC           "Aztec C"
00460 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__AZTEC_C__)
00461 #elif defined(__BORLANDC__)
00462 #  define LZO_CC_BORLANDC       1
00463 #  define LZO_INFO_CC           "Borland C"
00464 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__BORLANDC__)
00465 #elif defined(__DMC__) && defined(__SC__)
00466 #  define LZO_CC_DMC            1
00467 #  define LZO_INFO_CC           "Digital Mars C"
00468 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__DMC__)
00469 #elif defined(__DECC)
00470 #  define LZO_CC_DECC           1
00471 #  define LZO_INFO_CC           "DEC C"
00472 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__DECC)
00473 #elif defined(__HIGHC__)
00474 #  define LZO_CC_HIGHC          1
00475 #  define LZO_INFO_CC           "MetaWare High C"
00476 #  define LZO_INFO_CCVER        "unknown"
00477 #elif defined(__IBMC__)
00478 #  define LZO_CC_IBMC           1
00479 #  define LZO_INFO_CC           "IBM C"
00480 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__IBMC__)
00481 #elif defined(__KEIL__) && defined(__C166__)
00482 #  define LZO_CC_KEILC          1
00483 #  define LZO_INFO_CC           "Keil C"
00484 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__C166__)
00485 #elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL)
00486 #  define LZO_CC_LCCWIN32       1
00487 #  define LZO_INFO_CC           "lcc-win32"
00488 #  define LZO_INFO_CCVER        "unknown"
00489 #elif defined(__LCC__)
00490 #  define LZO_CC_LCC            1
00491 #  define LZO_INFO_CC           "lcc"
00492 #  if defined(__LCC_VERSION__)
00493 #    define LZO_INFO_CCVER      LZO_CPP_MACRO_EXPAND(__LCC_VERSION__)
00494 #  else
00495 #    define LZO_INFO_CCVER      "unknown"
00496 #  endif
00497 #elif defined(_MSC_VER)
00498 #  define LZO_CC_MSC            1
00499 #  define LZO_INFO_CC           "Microsoft C"
00500 #  if defined(_MSC_FULL_VER)
00501 #    define LZO_INFO_CCVER      LZO_CPP_MACRO_EXPAND(_MSC_VER) "." LZO_CPP_MACRO_EXPAND(_MSC_FULL_VER)
00502 #  else
00503 #    define LZO_INFO_CCVER      LZO_CPP_MACRO_EXPAND(_MSC_VER)
00504 #  endif
00505 #elif defined(__MWERKS__)
00506 #  define LZO_CC_MWERKS         1
00507 #  define LZO_INFO_CC           "Metrowerks C"
00508 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__MWERKS__)
00509 #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
00510 #  define LZO_CC_NDPC           1
00511 #  define LZO_INFO_CC           "Microway NDP C"
00512 #  define LZO_INFO_CCVER        "unknown"
00513 #elif defined(__PACIFIC__)
00514 #  define LZO_CC_PACIFICC       1
00515 #  define LZO_INFO_CC           "Pacific C"
00516 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__PACIFIC__)
00517 #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
00518 #  define LZO_CC_PGI            1
00519 #  define LZO_INFO_CC           "Portland Group PGI C"
00520 #  define LZO_INFO_CCVER        "unknown"
00521 #elif defined(__PUREC__) && defined(__TOS__)
00522 #  define LZO_CC_PUREC          1
00523 #  define LZO_INFO_CC           "Pure C"
00524 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__PUREC__)
00525 #elif defined(__SC__) && defined(__ZTC__)
00526 #  define LZO_CC_SYMANTECC      1
00527 #  define LZO_INFO_CC           "Symantec C"
00528 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__SC__)
00529 #elif defined(__SUNPRO_C)
00530 #  define LZO_CC_SUNPROC        1
00531 #  define LZO_INFO_CC           "Sun C"
00532 #  define LZO_INFO_CCVER        "unknown"
00533 #elif defined(__TINYC__)
00534 #  define LZO_CC_TINYC          1
00535 #  define LZO_INFO_CC           "Tiny C"
00536 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__TINYC__)
00537 #elif defined(__TSC__)
00538 #  define LZO_CC_TOPSPEEDC      1
00539 #  define LZO_INFO_CC           "TopSpeed C"
00540 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__TSC__)
00541 #elif defined(__WATCOMC__)
00542 #  define LZO_CC_WATCOMC        1
00543 #  define LZO_INFO_CC           "Watcom C"
00544 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__WATCOMC__)
00545 #elif defined(__TURBOC__)
00546 #  define LZO_CC_TURBOC         1
00547 #  define LZO_INFO_CC           "Turbo C"
00548 #  define LZO_INFO_CCVER        LZO_CPP_MACRO_EXPAND(__TURBOC__)
00549 #elif defined(__ZTC__)
00550 #  define LZO_CC_ZORTECHC       1
00551 #  define LZO_INFO_CC           "Zortech C"
00552 #  if (__ZTC__ == 0x310)
00553 #    define LZO_INFO_CCVER      "0x310"
00554 #  else
00555 #    define LZO_INFO_CCVER      LZO_CPP_MACRO_EXPAND(__ZTC__)
00556 #  endif
00557 #else
00558 #  define LZO_CC_UNKNOWN        1
00559 #  define LZO_INFO_CC           "unknown"
00560 #  define LZO_INFO_CCVER        "unknown"
00561 #endif
00562 #if 0 && (LZO_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER)
00563 #  error "LZO_CC_MSC: _MSC_FULL_VER is not defined"
00564 #endif
00565 #if !defined(__LZO_ARCH_OVERRIDE)
00566 #if defined(LZO_ARCH_GENERIC)
00567 #  define LZO_INFO_ARCH             "generic"
00568 #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
00569 #  define LZO_ARCH_I086             1
00570 #  define LZO_ARCH_IA16             1
00571 #  define LZO_INFO_ARCH             "i086"
00572 #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
00573 #  define LZO_ARCH_ALPHA            1
00574 #  define LZO_INFO_ARCH             "alpha"
00575 #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
00576 #  define LZO_ARCH_AMD64            1
00577 #  define LZO_INFO_ARCH             "amd64"
00578 #elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
00579 #  define LZO_ARCH_ARM              1
00580 #  define LZO_ARCH_ARM_THUMB        1
00581 #  define LZO_INFO_ARCH             "arm_thumb"
00582 #elif defined(__arm__) || defined(_M_ARM)
00583 #  define LZO_ARCH_ARM              1
00584 #  define LZO_INFO_ARCH             "arm"
00585 #elif (UINT_MAX <= LZO_0xffffL) && defined(__AVR__)
00586 #  define LZO_ARCH_AVR              1
00587 #  define LZO_INFO_ARCH             "avr"
00588 #elif defined(__bfin__)
00589 #  define LZO_ARCH_BLACKFIN         1
00590 #  define LZO_INFO_ARCH             "blackfin"
00591 #elif (UINT_MAX == LZO_0xffffL) && defined(__C166__)
00592 #  define LZO_ARCH_C166             1
00593 #  define LZO_INFO_ARCH             "c166"
00594 #elif defined(__cris__)
00595 #  define LZO_ARCH_CRIS             1
00596 #  define LZO_INFO_ARCH             "cris"
00597 #elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
00598 #  define LZO_ARCH_H8300            1
00599 #  define LZO_INFO_ARCH             "h8300"
00600 #elif defined(__hppa__) || defined(__hppa)
00601 #  define LZO_ARCH_HPPA             1
00602 #  define LZO_INFO_ARCH             "hppa"
00603 #elif defined(__386__) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_I386)
00604 #  define LZO_ARCH_I386             1
00605 #  define LZO_ARCH_IA32             1
00606 #  define LZO_INFO_ARCH             "i386"
00607 #elif (LZO_CC_ZORTECHC && defined(__I86__))
00608 #  define LZO_ARCH_I386             1
00609 #  define LZO_ARCH_IA32             1
00610 #  define LZO_INFO_ARCH             "i386"
00611 #elif (LZO_OS_DOS32 && LZO_CC_HIGHC) && defined(_I386)
00612 #  define LZO_ARCH_I386             1
00613 #  define LZO_ARCH_IA32             1
00614 #  define LZO_INFO_ARCH             "i386"
00615 #elif defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
00616 #  define LZO_ARCH_IA64             1
00617 #  define LZO_INFO_ARCH             "ia64"
00618 #elif (UINT_MAX == LZO_0xffffL) && defined(__m32c__)
00619 #  define LZO_ARCH_M16C             1
00620 #  define LZO_INFO_ARCH             "m16c"
00621 #elif defined(__m32r__)
00622 #  define LZO_ARCH_M32R             1
00623 #  define LZO_INFO_ARCH             "m32r"
00624 #elif (LZO_OS_TOS) || defined(__m68k__) || defined(__m68000__) || defined(__mc68000__) || defined(_M_M68K)
00625 #  define LZO_ARCH_M68K             1
00626 #  define LZO_INFO_ARCH             "m68k"
00627 #elif (UINT_MAX == LZO_0xffffL) && defined(__C251__)
00628 #  define LZO_ARCH_MCS251           1
00629 #  define LZO_INFO_ARCH             "mcs251"
00630 #elif (UINT_MAX == LZO_0xffffL) && defined(__C51__)
00631 #  define LZO_ARCH_MCS51            1
00632 #  define LZO_INFO_ARCH             "mcs51"
00633 #elif defined(__mips__) || defined(__mips) || defined(_MIPS_ARCH) || defined(_M_MRX000)
00634 #  define LZO_ARCH_MIPS             1
00635 #  define LZO_INFO_ARCH             "mips"
00636 #elif (UINT_MAX == LZO_0xffffL) && defined(__MSP430__)
00637 #  define LZO_ARCH_MSP430           1
00638 #  define LZO_INFO_ARCH             "msp430"
00639 #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC)
00640 #  define LZO_ARCH_POWERPC          1
00641 #  define LZO_INFO_ARCH             "powerpc"
00642 #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
00643 #  define LZO_ARCH_S390             1
00644 #  define LZO_INFO_ARCH             "s390"
00645 #elif defined(__sh__) || defined(_M_SH)
00646 #  define LZO_ARCH_SH               1
00647 #  define LZO_INFO_ARCH             "sh"
00648 #elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8)
00649 #  define LZO_ARCH_SPARC            1
00650 #  define LZO_INFO_ARCH             "sparc"
00651 #elif (UINT_MAX == LZO_0xffffL) && defined(__z80)
00652 #  define LZO_ARCH_Z80              1
00653 #  define LZO_INFO_ARCH             "z80"
00654 #else
00655 #  define LZO_ARCH_UNKNOWN          1
00656 #  define LZO_INFO_ARCH             "unknown"
00657 #endif
00658 #endif
00659 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2)
00660 #  error "FIXME - missing define for CPU architecture"
00661 #endif
00662 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN32)
00663 #  error "FIXME - missing WIN32 define for CPU architecture"
00664 #endif
00665 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN64)
00666 #  error "FIXME - missing WIN64 define for CPU architecture"
00667 #endif
00668 #if (LZO_OS_OS216 || LZO_OS_WIN16)
00669 #  define LZO_ARCH_I086PM           1
00670 #  define LZO_ARCH_IA16PM           1
00671 #elif 1 && (LZO_OS_DOS16 && defined(BLX286))
00672 #  define LZO_ARCH_I086PM           1
00673 #  define LZO_ARCH_IA16PM           1
00674 #elif 1 && (LZO_OS_DOS16 && defined(DOSX286))
00675 #  define LZO_ARCH_I086PM           1
00676 #  define LZO_ARCH_IA16PM           1
00677 #elif 1 && (LZO_OS_DOS16 && LZO_CC_BORLANDC && defined(__DPMI16__))
00678 #  define LZO_ARCH_I086PM           1
00679 #  define LZO_ARCH_IA16PM           1
00680 #endif
00681 #if defined(LZO_ARCH_ARM_THUMB) && !defined(LZO_ARCH_ARM)
00682 #  error "this should not happen"
00683 #endif
00684 #if defined(LZO_ARCH_I086PM) && !defined(LZO_ARCH_I086)
00685 #  error "this should not happen"
00686 #endif
00687 #if (LZO_ARCH_I086)
00688 #  if (UINT_MAX != LZO_0xffffL)
00689 #    error "this should not happen"
00690 #  endif
00691 #  if (ULONG_MAX != LZO_0xffffffffL)
00692 #    error "this should not happen"
00693 #  endif
00694 #endif
00695 #if (LZO_ARCH_I386)
00696 #  if (UINT_MAX != LZO_0xffffL) && defined(__i386_int16__)
00697 #    error "this should not happen"
00698 #  endif
00699 #  if (UINT_MAX != LZO_0xffffffffL) && !defined(__i386_int16__)
00700 #    error "this should not happen"
00701 #  endif
00702 #  if (ULONG_MAX != LZO_0xffffffffL)
00703 #    error "this should not happen"
00704 #  endif
00705 #endif
00706 #if !defined(__LZO_MM_OVERRIDE)
00707 #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
00708 #if (UINT_MAX != LZO_0xffffL)
00709 #  error "this should not happen"
00710 #endif
00711 #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM)
00712 #  define LZO_MM_TINY           1
00713 #elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86HM)
00714 #  define LZO_MM_HUGE           1
00715 #elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMALL_MODEL)
00716 #  define LZO_MM_SMALL          1
00717 #elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM)
00718 #  define LZO_MM_MEDIUM         1
00719 #elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM)
00720 #  define LZO_MM_COMPACT        1
00721 #elif defined(__LARGE__) || defined(M_I86LM) || defined(_M_I86LM) || defined(LARGE_MODEL)
00722 #  define LZO_MM_LARGE          1
00723 #elif (LZO_CC_AZTECC)
00724 #  if defined(_LARGE_CODE) && defined(_LARGE_DATA)
00725 #    define LZO_MM_LARGE        1
00726 #  elif defined(_LARGE_CODE)
00727 #    define LZO_MM_MEDIUM       1
00728 #  elif defined(_LARGE_DATA)
00729 #    define LZO_MM_COMPACT      1
00730 #  else
00731 #    define LZO_MM_SMALL        1
00732 #  endif
00733 #elif (LZO_CC_ZORTECHC && defined(__VCM__))
00734 #  define LZO_MM_LARGE          1
00735 #else
00736 #  error "unknown memory model"
00737 #endif
00738 #define LZO_HAVE_MM_HUGE_PTR        1
00739 #define LZO_HAVE_MM_HUGE_ARRAY      1
00740 #if (LZO_MM_TINY)
00741 #  undef LZO_HAVE_MM_HUGE_ARRAY
00742 #endif
00743 #if (LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_ZORTECHC)
00744 #  undef LZO_HAVE_MM_HUGE_PTR
00745 #  undef LZO_HAVE_MM_HUGE_ARRAY
00746 #elif (LZO_CC_DMC || LZO_CC_SYMANTECC)
00747 #  undef LZO_HAVE_MM_HUGE_ARRAY
00748 #elif (LZO_CC_MSC && defined(_QC))
00749 #  undef LZO_HAVE_MM_HUGE_ARRAY
00750 #  if (_MSC_VER < 600)
00751 #    undef LZO_HAVE_MM_HUGE_PTR
00752 #  endif
00753 #elif (LZO_CC_TURBOC && (__TURBOC__ < 0x0295))
00754 #  undef LZO_HAVE_MM_HUGE_ARRAY
00755 #endif
00756 #if (LZO_ARCH_I086PM) && !defined(LZO_HAVE_MM_HUGE_PTR)
00757 #  if (LZO_OS_DOS16)
00758 #    error "this should not happen"
00759 #  elif (LZO_CC_ZORTECHC)
00760 #  else
00761 #    error "this should not happen"
00762 #  endif
00763 #endif
00764 #ifdef __cplusplus
00765 extern "C" {
00766 #endif
00767 #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
00768    extern void __near __cdecl _AHSHIFT(void);
00769 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
00770 #elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
00771    extern void __near __cdecl _AHSHIFT(void);
00772 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
00773 #elif (LZO_CC_MSC || LZO_CC_TOPSPEEDC)
00774    extern void __near __cdecl _AHSHIFT(void);
00775 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
00776 #elif (LZO_CC_TURBOC && (__TURBOC__ >= 0x0295))
00777    extern void __near __cdecl _AHSHIFT(void);
00778 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
00779 #elif ((LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_TURBOC) && LZO_OS_DOS16)
00780 #  define LZO_MM_AHSHIFT      12
00781 #elif (LZO_CC_WATCOMC)
00782    extern unsigned char _HShift;
00783 #  define LZO_MM_AHSHIFT      ((unsigned) _HShift)
00784 #else
00785 #  error "FIXME - implement LZO_MM_AHSHIFT"
00786 #endif
00787 #ifdef __cplusplus
00788 }
00789 #endif
00790 #elif (LZO_ARCH_C166)
00791 #if !defined(__MODEL__)
00792 #  error "FIXME - C166 __MODEL__"
00793 #elif ((__MODEL__) == 0)
00794 #  define LZO_MM_SMALL          1
00795 #elif ((__MODEL__) == 1)
00796 #  define LZO_MM_SMALL          1
00797 #elif ((__MODEL__) == 2)
00798 #  define LZO_MM_LARGE          1
00799 #elif ((__MODEL__) == 3)
00800 #  define LZO_MM_TINY           1
00801 #elif ((__MODEL__) == 4)
00802 #  define LZO_MM_XTINY          1
00803 #elif ((__MODEL__) == 5)
00804 #  define LZO_MM_XSMALL         1
00805 #else
00806 #  error "FIXME - C166 __MODEL__"
00807 #endif
00808 #elif (LZO_ARCH_MCS251)
00809 #if !defined(__MODEL__)
00810 #  error "FIXME - MCS251 __MODEL__"
00811 #elif ((__MODEL__) == 0)
00812 #  define LZO_MM_SMALL          1
00813 #elif ((__MODEL__) == 2)
00814 #  define LZO_MM_LARGE          1
00815 #elif ((__MODEL__) == 3)
00816 #  define LZO_MM_TINY           1
00817 #elif ((__MODEL__) == 4)
00818 #  define LZO_MM_XTINY          1
00819 #elif ((__MODEL__) == 5)
00820 #  define LZO_MM_XSMALL         1
00821 #else
00822 #  error "FIXME - MCS251 __MODEL__"
00823 #endif
00824 #elif (LZO_ARCH_MCS51)
00825 #if !defined(__MODEL__)
00826 #  error "FIXME - MCS51 __MODEL__"
00827 #elif ((__MODEL__) == 1)
00828 #  define LZO_MM_SMALL          1
00829 #elif ((__MODEL__) == 2)
00830 #  define LZO_MM_LARGE          1
00831 #elif ((__MODEL__) == 3)
00832 #  define LZO_MM_TINY           1
00833 #elif ((__MODEL__) == 4)
00834 #  define LZO_MM_XTINY          1
00835 #elif ((__MODEL__) == 5)
00836 #  define LZO_MM_XSMALL         1
00837 #else
00838 #  error "FIXME - MCS51 __MODEL__"
00839 #endif
00840 #else
00841 #  define LZO_MM_FLAT           1
00842 #endif
00843 #if (LZO_MM_FLAT)
00844 #  define LZO_INFO_MM           "flat"
00845 #elif (LZO_MM_TINY)
00846 #  define LZO_INFO_MM           "tiny"
00847 #elif (LZO_MM_SMALL)
00848 #  define LZO_INFO_MM           "small"
00849 #elif (LZO_MM_MEDIUM)
00850 #  define LZO_INFO_MM           "medium"
00851 #elif (LZO_MM_COMPACT)
00852 #  define LZO_INFO_MM           "compact"
00853 #elif (LZO_MM_LARGE)
00854 #  define LZO_INFO_MM           "large"
00855 #elif (LZO_MM_HUGE)
00856 #  define LZO_INFO_MM           "huge"
00857 #else
00858 #  error "unknown memory model"
00859 #endif
00860 #endif
00861 #if defined(SIZEOF_SHORT)
00862 #  define LZO_SIZEOF_SHORT          (SIZEOF_SHORT)
00863 #endif
00864 #if defined(SIZEOF_INT)
00865 #  define LZO_SIZEOF_INT            (SIZEOF_INT)
00866 #endif
00867 #if defined(SIZEOF_LONG)
00868 #  define LZO_SIZEOF_LONG           (SIZEOF_LONG)
00869 #endif
00870 #if defined(SIZEOF_LONG_LONG)
00871 #  define LZO_SIZEOF_LONG_LONG      (SIZEOF_LONG_LONG)
00872 #endif
00873 #if defined(SIZEOF___INT16)
00874 #  define LZO_SIZEOF___INT16        (SIZEOF___INT16)
00875 #endif
00876 #if defined(SIZEOF___INT32)
00877 #  define LZO_SIZEOF___INT32        (SIZEOF___INT32)
00878 #endif
00879 #if defined(SIZEOF___INT64)
00880 #  define LZO_SIZEOF___INT64        (SIZEOF___INT64)
00881 #endif
00882 #if defined(SIZEOF_VOID_P)
00883 #  define LZO_SIZEOF_VOID_P         (SIZEOF_VOID_P)
00884 #endif
00885 #if defined(SIZEOF_SIZE_T)
00886 #  define LZO_SIZEOF_SIZE_T         (SIZEOF_SIZE_T)
00887 #endif
00888 #if defined(SIZEOF_PTRDIFF_T)
00889 #  define LZO_SIZEOF_PTRDIFF_T      (SIZEOF_PTRDIFF_T)
00890 #endif
00891 #define __LZO_LSR(x,b)    (((x)+0ul) >> (b))
00892 #if !defined(LZO_SIZEOF_SHORT)
00893 #  if (USHRT_MAX == LZO_0xffffL)
00894 #    define LZO_SIZEOF_SHORT        2
00895 #  elif (__LZO_LSR(USHRT_MAX,7) == 1)
00896 #    define LZO_SIZEOF_SHORT        1
00897 #  elif (__LZO_LSR(USHRT_MAX,15) == 1)
00898 #    define LZO_SIZEOF_SHORT        2
00899 #  elif (__LZO_LSR(USHRT_MAX,31) == 1)
00900 #    define LZO_SIZEOF_SHORT        4
00901 #  elif (__LZO_LSR(USHRT_MAX,63) == 1)
00902 #    define LZO_SIZEOF_SHORT        8
00903 #  elif (__LZO_LSR(USHRT_MAX,127) == 1)
00904 #    define LZO_SIZEOF_SHORT        16
00905 #  else
00906 #    error "LZO_SIZEOF_SHORT"
00907 #  endif
00908 #endif
00909 #if !defined(LZO_SIZEOF_INT)
00910 #  if (UINT_MAX == LZO_0xffffL)
00911 #    define LZO_SIZEOF_INT          2
00912 #  elif (UINT_MAX == LZO_0xffffffffL)
00913 #    define LZO_SIZEOF_INT          4
00914 #  elif (__LZO_LSR(UINT_MAX,7) == 1)
00915 #    define LZO_SIZEOF_INT          1
00916 #  elif (__LZO_LSR(UINT_MAX,15) == 1)
00917 #    define LZO_SIZEOF_INT          2
00918 #  elif (__LZO_LSR(UINT_MAX,31) == 1)
00919 #    define LZO_SIZEOF_INT          4
00920 #  elif (__LZO_LSR(UINT_MAX,63) == 1)
00921 #    define LZO_SIZEOF_INT          8
00922 #  elif (__LZO_LSR(UINT_MAX,127) == 1)
00923 #    define LZO_SIZEOF_INT          16
00924 #  else
00925 #    error "LZO_SIZEOF_INT"
00926 #  endif
00927 #endif
00928 #if !defined(LZO_SIZEOF_LONG)
00929 #  if (ULONG_MAX == LZO_0xffffffffL)
00930 #    define LZO_SIZEOF_LONG         4
00931 #  elif (__LZO_LSR(ULONG_MAX,7) == 1)
00932 #    define LZO_SIZEOF_LONG         1
00933 #  elif (__LZO_LSR(ULONG_MAX,15) == 1)
00934 #    define LZO_SIZEOF_LONG         2
00935 #  elif (__LZO_LSR(ULONG_MAX,31) == 1)
00936 #    define LZO_SIZEOF_LONG         4
00937 #  elif (__LZO_LSR(ULONG_MAX,63) == 1)
00938 #    define LZO_SIZEOF_LONG         8
00939 #  elif (__LZO_LSR(ULONG_MAX,127) == 1)
00940 #    define LZO_SIZEOF_LONG         16
00941 #  else
00942 #    error "LZO_SIZEOF_LONG"
00943 #  endif
00944 #endif
00945 #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64)
00946 #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8)
00947 #  if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__)
00948 #    if (LZO_CC_GNUC >= 0x030300ul)
00949 #      if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0)
00950 #        define LZO_SIZEOF_LONG_LONG      LZO_SIZEOF_LONG
00951 #      endif
00952 #    endif
00953 #  endif
00954 #endif
00955 #endif
00956 #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64)
00957 #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8)
00958 #if (LZO_ARCH_I086 && LZO_CC_DMC)
00959 #elif (LZO_CC_CILLY) && defined(__GNUC__)
00960 #  define LZO_SIZEOF_LONG_LONG      8
00961 #elif (LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
00962 #  define LZO_SIZEOF_LONG_LONG      8
00963 #elif ((LZO_OS_WIN32 || LZO_OS_WIN64) && LZO_CC_MSC && (_MSC_VER >= 1400))
00964 #  define LZO_SIZEOF_LONG_LONG      8
00965 #elif (LZO_OS_WIN64)
00966 #  define LZO_SIZEOF___INT64        8
00967 #elif (LZO_ARCH_I386 && (LZO_CC_DMC))
00968 #  define LZO_SIZEOF_LONG_LONG      8
00969 #elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700)))
00970 #  define LZO_SIZEOF_LONG_LONG      8
00971 #elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__)))
00972 #  define LZO_SIZEOF_LONG_LONG      8
00973 #elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI))
00974 #  define LZO_SIZEOF_LONG_LONG      8
00975 #elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC))
00976 #  define LZO_SIZEOF___INT64        8
00977 #elif (LZO_OS_WIN32 && (LZO_CC_MSC))
00978 #  define LZO_SIZEOF___INT64        8
00979 #elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520)))
00980 #  define LZO_SIZEOF___INT64        8
00981 #elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100)))
00982 #  define LZO_SIZEOF___INT64        8
00983 #elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64))
00984 #  define LZO_SIZEOF___INT64        8
00985 #elif (LZO_OS_OS400) && defined(__LLP64_IFC__)
00986 #  define LZO_SIZEOF_LONG_LONG      8
00987 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
00988 #  define LZO_SIZEOF_LONG_LONG      8
00989 #elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2)
00990 #elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
00991 #  define LZO_SIZEOF_LONG_LONG      8
00992 #endif
00993 #endif
00994 #endif
00995 #if defined(__cplusplus) && defined(LZO_CC_GNUC)
00996 #  if (LZO_CC_GNUC < 0x020800ul)
00997 #    undef LZO_SIZEOF_LONG_LONG
00998 #  endif
00999 #endif
01000 #if defined(LZO_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG)
01001 #  undef LZO_SIZEOF_LONG_LONG
01002 #endif
01003 #if !defined(LZO_SIZEOF_VOID_P)
01004 #if (LZO_ARCH_I086)
01005 #  define __LZO_WORDSIZE            2
01006 #  if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM)
01007 #    define LZO_SIZEOF_VOID_P       2
01008 #  elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE)
01009 #    define LZO_SIZEOF_VOID_P       4
01010 #  else
01011 #    error "LZO_MM"
01012 #  endif
01013 #elif (LZO_ARCH_AVR || LZO_ARCH_Z80)
01014 #  define __LZO_WORDSIZE            1
01015 #  define LZO_SIZEOF_VOID_P         2
01016 #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430)
01017 #  define LZO_SIZEOF_VOID_P         2
01018 #elif (LZO_ARCH_H8300)
01019 #  if defined(__NORMAL_MODE__)
01020 #    define __LZO_WORDSIZE          4
01021 #    define LZO_SIZEOF_VOID_P       2
01022 #  elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
01023 #    define __LZO_WORDSIZE          4
01024 #    define LZO_SIZEOF_VOID_P       4
01025 #  else
01026 #    define __LZO_WORDSIZE          2
01027 #    define LZO_SIZEOF_VOID_P       2
01028 #  endif
01029 #  if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4)
01030 #    define LZO_SIZEOF_SIZE_T       LZO_SIZEOF_INT
01031 #    define LZO_SIZEOF_PTRDIFF_T    LZO_SIZEOF_INT
01032 #  endif
01033 #elif (LZO_ARCH_M16C)
01034 #  define __LZO_WORDSIZE            2
01035 #  if defined(__m32c_cpu__) || defined(__m32cm_cpu__)
01036 #    define LZO_SIZEOF_VOID_P       4
01037 #  else
01038 #    define LZO_SIZEOF_VOID_P       2
01039 #  endif
01040 #elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
01041 #  define __LZO_WORDSIZE            8
01042 #  define LZO_SIZEOF_VOID_P         4
01043 #elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
01044 #  define __LZO_WORDSIZE            8
01045 #  define LZO_SIZEOF_VOID_P         8
01046 #elif (LZO_OS_OS400) && defined(__LLP64_IFC__)
01047 #  define LZO_SIZEOF_VOID_P         LZO_SIZEOF_LONG
01048 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_LONG
01049 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_LONG
01050 #elif (LZO_OS_OS400)
01051 #  define __LZO_WORDSIZE            LZO_SIZEOF_LONG
01052 #  define LZO_SIZEOF_VOID_P         16
01053 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_LONG
01054 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_LONG
01055 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
01056 #  define LZO_SIZEOF_VOID_P         8
01057 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_LONG
01058 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_LONG
01059 #else
01060 #  define LZO_SIZEOF_VOID_P         LZO_SIZEOF_LONG
01061 #endif
01062 #endif
01063 #if !defined(LZO_WORDSIZE)
01064 #  if defined(__LZO_WORDSIZE)
01065 #    define LZO_WORDSIZE            __LZO_WORDSIZE
01066 #  else
01067 #    define LZO_WORDSIZE            LZO_SIZEOF_VOID_P
01068 #  endif
01069 #endif
01070 #if !defined(LZO_SIZEOF_SIZE_T)
01071 #if (LZO_ARCH_I086 || LZO_ARCH_M16C)
01072 #  define LZO_SIZEOF_SIZE_T         2
01073 #else
01074 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_VOID_P
01075 #endif
01076 #endif
01077 #if !defined(LZO_SIZEOF_PTRDIFF_T)
01078 #if (LZO_ARCH_I086)
01079 #  if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE)
01080 #    define LZO_SIZEOF_PTRDIFF_T    LZO_SIZEOF_VOID_P
01081 #  elif (LZO_MM_COMPACT || LZO_MM_LARGE)
01082 #    if (LZO_CC_BORLANDC || LZO_CC_TURBOC)
01083 #      define LZO_SIZEOF_PTRDIFF_T  4
01084 #    else
01085 #      define LZO_SIZEOF_PTRDIFF_T  2
01086 #    endif
01087 #  else
01088 #    error "LZO_MM"
01089 #  endif
01090 #else
01091 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_SIZE_T
01092 #endif
01093 #endif
01094 #if !defined(LZO_ABI_BIG_ENDIAN) && !defined(LZO_ABI_LITTLE_ENDIAN) && !defined(LZO_ABI_NEUTRAL_ENDIAN)
01095 #if (LZO_ARCH_AMD64 || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430)
01096 #  define LZO_ABI_LITTLE_ENDIAN     1
01097 #elif (LZO_ARCH_M68K || LZO_ARCH_S390)
01098 #  define LZO_ABI_BIG_ENDIAN        1
01099 #elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
01100 #  define LZO_ABI_BIG_ENDIAN        1
01101 #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
01102 #  define LZO_ABI_LITTLE_ENDIAN     1
01103 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
01104 #  define LZO_ABI_BIG_ENDIAN        1
01105 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
01106 #  define LZO_ABI_LITTLE_ENDIAN     1
01107 #endif
01108 #endif
01109 #if defined(LZO_ABI_BIG_ENDIAN) && defined(LZO_ABI_LITTLE_ENDIAN)
01110 #  error "this should not happen"
01111 #endif
01112 #if defined(LZO_ABI_BIG_ENDIAN)
01113 #  define LZO_INFO_ABI_ENDIAN       "be"
01114 #elif defined(LZO_ABI_LITTLE_ENDIAN)
01115 #  define LZO_INFO_ABI_ENDIAN       "le"
01116 #elif defined(LZO_ABI_NEUTRAL_ENDIAN)
01117 #  define LZO_INFO_ABI_ENDIAN       "neutral"
01118 #endif
01119 #if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2)
01120 #  define LZO_ABI_I8LP16         1
01121 #  define LZO_INFO_ABI_PM       "i8lp16"
01122 #elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2)
01123 #  define LZO_ABI_ILP16         1
01124 #  define LZO_INFO_ABI_PM       "ilp16"
01125 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4)
01126 #  define LZO_ABI_ILP32         1
01127 #  define LZO_INFO_ABI_PM       "ilp32"
01128 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8)
01129 #  define LZO_ABI_LLP64         1
01130 #  define LZO_INFO_ABI_PM       "llp64"
01131 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8)
01132 #  define LZO_ABI_LP64          1
01133 #  define LZO_INFO_ABI_PM       "lp64"
01134 #elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8)
01135 #  define LZO_ABI_ILP64         1
01136 #  define LZO_INFO_ABI_PM       "ilp64"
01137 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4)
01138 #  define LZO_ABI_IP32L64       1
01139 #  define LZO_INFO_ABI_PM       "ip32l64"
01140 #endif
01141 #if !defined(__LZO_LIBC_OVERRIDE)
01142 #if defined(LZO_LIBC_NAKED)
01143 #  define LZO_INFO_LIBC         "naked"
01144 #elif defined(LZO_LIBC_FREESTANDING)
01145 #  define LZO_INFO_LIBC         "freestanding"
01146 #elif defined(LZO_LIBC_MOSTLY_FREESTANDING)
01147 #  define LZO_INFO_LIBC         "mfreestanding"
01148 #elif defined(LZO_LIBC_ISOC90)
01149 #  define LZO_INFO_LIBC         "isoc90"
01150 #elif defined(LZO_LIBC_ISOC99)
01151 #  define LZO_INFO_LIBC         "isoc99"
01152 #elif defined(__dietlibc__)
01153 #  define LZO_LIBC_DIETLIBC     1
01154 #  define LZO_INFO_LIBC         "dietlibc"
01155 #elif defined(_NEWLIB_VERSION)
01156 #  define LZO_LIBC_NEWLIB       1
01157 #  define LZO_INFO_LIBC         "newlib"
01158 #elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__)
01159 #  if defined(__UCLIBC_SUBLEVEL__)
01160 #    define LZO_LIBC_UCLIBC     (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__)
01161 #  else
01162 #    define LZO_LIBC_UCLIBC     0x00090bL
01163 #  endif
01164 #  define LZO_INFO_LIBC         "uclibc"
01165 #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__)
01166 #  define LZO_LIBC_GLIBC        (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100)
01167 #  define LZO_INFO_LIBC         "glibc"
01168 #elif (LZO_CC_MWERKS) && defined(__MSL__)
01169 #  define LZO_LIBC_MSL          __MSL__
01170 #  define LZO_INFO_LIBC         "msl"
01171 #else
01172 #  define LZO_LIBC_DEFAULT      1
01173 #  define LZO_INFO_LIBC         "default"
01174 #endif
01175 #endif
01176 #if (LZO_CC_GNUC >= 0x020800ul)
01177 #  define __lzo_gnuc_extension__ __extension__
01178 #elif (LZO_CC_LLVM || LZO_CC_PATHSCALE)
01179 #  define __lzo_gnuc_extension__ __extension__
01180 #else
01181 #  define __lzo_gnuc_extension__
01182 #endif
01183 #if (LZO_CC_CILLY || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
01184 #  define lzo_alignof(e)        __alignof__(e)
01185 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700))
01186 #  define lzo_alignof(e)        __alignof__(e)
01187 #elif (LZO_CC_MSC && (_MSC_VER >= 1300))
01188 #  define lzo_alignof(e)        __alignof(e)
01189 #endif
01190 #if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295))
01191 #elif defined(__cplusplus)
01192 #  define __lzo_inline          inline
01193 #elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
01194 #  define __lzo_inline          __inline
01195 #elif (LZO_CC_CILLY || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
01196 #  define __lzo_inline          __inline__
01197 #elif (LZO_CC_DMC)
01198 #  define __lzo_inline          __inline
01199 #elif (LZO_CC_INTELC)
01200 #  define __lzo_inline          __inline
01201 #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405))
01202 #  define __lzo_inline          __inline
01203 #elif (LZO_CC_MSC && (_MSC_VER >= 900))
01204 #  define __lzo_inline          __inline
01205 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
01206 #  define __lzo_inline          inline
01207 #endif
01208 #if (LZO_CC_GNUC >= 0x030200ul)
01209 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
01210 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && (LZO_OS_WIN32 || LZO_OS_WIN64))
01211 #  define __lzo_forceinline     __forceinline
01212 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800))
01213 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
01214 #elif (LZO_CC_LLVM || LZO_CC_PATHSCALE)
01215 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
01216 #elif (LZO_CC_MSC && (_MSC_VER >= 1200))
01217 #  define __lzo_forceinline     __forceinline
01218 #endif
01219 #if (LZO_CC_GNUC >= 0x030200ul)
01220 #  define __lzo_noinline        __attribute__((__noinline__))
01221 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && (LZO_OS_WIN32 || LZO_OS_WIN64))
01222 #  define __lzo_noinline        __declspec(noinline)
01223 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800))
01224 #  define __lzo_noinline        __attribute__((__noinline__))
01225 #elif (LZO_CC_LLVM || LZO_CC_PATHSCALE)
01226 #  define __lzo_noinline        __attribute__((__noinline__))
01227 #elif (LZO_CC_MSC && (_MSC_VER >= 1300))
01228 #  define __lzo_noinline        __declspec(noinline)
01229 #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x3200) && (LZO_OS_WIN32 || LZO_OS_WIN64))
01230 #  if defined(__cplusplus)
01231 #  else
01232 #    define __lzo_noinline      __declspec(noinline)
01233 #  endif
01234 #endif
01235 #if (defined(__lzo_forceinline) || defined(__lzo_noinline)) && !defined(__lzo_inline)
01236 #  error "this should not happen"
01237 #endif
01238 #if (LZO_CC_GNUC >= 0x020700ul)
01239 #  define __lzo_noreturn        __attribute__((__noreturn__))
01240 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && (LZO_OS_WIN32 || LZO_OS_WIN64))
01241 #  define __lzo_noreturn        __declspec(noreturn)
01242 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && (LZO_OS_POSIX))
01243 #  define __lzo_noreturn        __attribute__((__noreturn__))
01244 #elif (LZO_CC_LLVM || LZO_CC_PATHSCALE)
01245 #  define __lzo_noreturn        __attribute__((__noreturn__))
01246 #elif (LZO_CC_MSC && (_MSC_VER >= 1200))
01247 #  define __lzo_noreturn        __declspec(noreturn)
01248 #endif
01249 #if (LZO_CC_GNUC >= 0x030400ul)
01250 #  define __lzo_constructor     __attribute__((__constructor__,__used__))
01251 #elif (LZO_CC_GNUC >= 0x020700ul)
01252 #  define __lzo_constructor     __attribute__((__constructor__))
01253 #elif (LZO_CC_LLVM || LZO_CC_PATHSCALE)
01254 #  define __lzo_constructor     __attribute__((__constructor__))
01255 #endif
01256 #if (LZO_CC_GNUC >= 0x030400ul)
01257 #  define __lzo_destructor      __attribute__((__destructor__,__used__))
01258 #elif (LZO_CC_GNUC >= 0x020700ul)
01259 #  define __lzo_destructor      __attribute__((__destructor__))
01260 #elif (LZO_CC_LLVM || LZO_CC_PATHSCALE)
01261 #  define __lzo_destructor      __attribute__((__destructor__))
01262 #endif
01263 #if defined(__lzo_destructor) && !defined(__lzo_constructor)
01264 #  error "this should not happen"
01265 #endif
01266 #if (LZO_CC_GNUC >= 0x030200ul)
01267 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
01268 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
01269 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800))
01270 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
01271 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
01272 #elif (LZO_CC_LLVM || LZO_CC_PATHSCALE)
01273 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
01274 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
01275 #else
01276 #  define __lzo_likely(e)       (e)
01277 #  define __lzo_unlikely(e)     (e)
01278 #endif
01279 #if !defined(LZO_UNUSED)
01280 #  if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
01281 #    define LZO_UNUSED(var)         ((void) &var)
01282 #  elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC)
01283 #    define LZO_UNUSED(var)         if (&var) ; else
01284 #  elif (LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
01285 #    define LZO_UNUSED(var)         ((void) var)
01286 #  elif (LZO_CC_MSC && (_MSC_VER < 900))
01287 #    define LZO_UNUSED(var)         if (&var) ; else
01288 #  elif (LZO_CC_KEILC)
01289 #    define LZO_UNUSED(var)         {extern int __lzo_unused[1-2*!(sizeof(var)>0)];}
01290 #  elif (LZO_CC_PACIFICC)
01291 #    define LZO_UNUSED(var)         ((void) sizeof(var))
01292 #  elif (LZO_CC_WATCOMC) && defined(__cplusplus)
01293 #    define LZO_UNUSED(var)         ((void) var)
01294 #  else
01295 #    define LZO_UNUSED(var)         ((void) &var)
01296 #  endif
01297 #endif
01298 #if !defined(LZO_UNUSED_FUNC)
01299 #  if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
01300 #    define LZO_UNUSED_FUNC(func)   ((void) func)
01301 #  elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC)
01302 #    define LZO_UNUSED_FUNC(func)   if (func) ; else
01303 #  elif (LZO_CC_LLVM)
01304 #    define LZO_UNUSED_FUNC(func)   ((void) &func)
01305 #  elif (LZO_CC_MSC && (_MSC_VER < 900))
01306 #    define LZO_UNUSED_FUNC(func)   if (func) ; else
01307 #  elif (LZO_CC_MSC)
01308 #    define LZO_UNUSED_FUNC(func)   ((void) &func)
01309 #  elif (LZO_CC_KEILC || LZO_CC_PELLESC)
01310 #    define LZO_UNUSED_FUNC(func)   {extern int __lzo_unused[1-2*!(sizeof((int)func)>0)];}
01311 #  else
01312 #    define LZO_UNUSED_FUNC(func)   ((void) func)
01313 #  endif
01314 #endif
01315 #if !defined(LZO_UNUSED_LABEL)
01316 #  if (LZO_CC_WATCOMC) && defined(__cplusplus)
01317 #    define LZO_UNUSED_LABEL(l)     switch(0) case 1:goto l
01318 #  elif (LZO_CC_INTELC || LZO_CC_WATCOMC)
01319 #    define LZO_UNUSED_LABEL(l)     if (0) goto l
01320 #  else
01321 #    define LZO_UNUSED_LABEL(l)     switch(0) case 1:goto l
01322 #  endif
01323 #endif
01324 #if !defined(LZO_COMPILE_TIME_ASSERT_HEADER)
01325 #  if (LZO_CC_AZTECC || LZO_CC_ZORTECHC)
01326 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  extern int __lzo_cta[1-!(e)];
01327 #  elif (LZO_CC_DMC || LZO_CC_SYMANTECC)
01328 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  extern int __lzo_cta[1u-2*!(e)];
01329 #  elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295))
01330 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  extern int __lzo_cta[1-!(e)];
01331 #  else
01332 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  extern int __lzo_cta[1-2*!(e)];
01333 #  endif
01334 #endif
01335 #if !defined(LZO_COMPILE_TIME_ASSERT)
01336 #  if (LZO_CC_AZTECC)
01337 #    define LZO_COMPILE_TIME_ASSERT(e)  {typedef int __lzo_cta_t[1-!(e)];}
01338 #  elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
01339 #    define LZO_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
01340 #  elif (LZO_CC_MSC && (_MSC_VER < 900))
01341 #    define LZO_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
01342 #  elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295))
01343 #    define LZO_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
01344 #  else
01345 #    define LZO_COMPILE_TIME_ASSERT(e)  {typedef int __lzo_cta_t[1-2*!(e)];}
01346 #  endif
01347 #endif
01348 #if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64)
01349 #  if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC)
01350 #  elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
01351 #    define __lzo_cdecl                 __cdecl
01352 #    define __lzo_cdecl_atexit
01353 #    define __lzo_cdecl_main            __cdecl
01354 #    if (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC))
01355 #      define __lzo_cdecl_qsort         __pascal
01356 #    elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC))
01357 #      define __lzo_cdecl_qsort         _stdcall
01358 #    else
01359 #      define __lzo_cdecl_qsort         __cdecl
01360 #    endif
01361 #  elif (LZO_CC_WATCOMC)
01362 #    define __lzo_cdecl                 __cdecl
01363 #  else
01364 #    define __lzo_cdecl                 __cdecl
01365 #    define __lzo_cdecl_atexit          __cdecl
01366 #    define __lzo_cdecl_main            __cdecl
01367 #    define __lzo_cdecl_qsort           __cdecl
01368 #  endif
01369 #  if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC || LZO_CC_WATCOMC)
01370 #  elif (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC))
01371 #    define __lzo_cdecl_sighandler      __pascal
01372 #  elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC))
01373 #    define __lzo_cdecl_sighandler      _stdcall
01374 #  elif (LZO_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
01375 #    define __lzo_cdecl_sighandler      __clrcall
01376 #  elif (LZO_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
01377 #    if defined(_DLL)
01378 #      define __lzo_cdecl_sighandler    _far _cdecl _loadds
01379 #    elif defined(_MT)
01380 #      define __lzo_cdecl_sighandler    _far _cdecl
01381 #    else
01382 #      define __lzo_cdecl_sighandler    _cdecl
01383 #    endif
01384 #  else
01385 #    define __lzo_cdecl_sighandler      __cdecl
01386 #  endif
01387 #elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC))
01388 #  define __lzo_cdecl                   cdecl
01389 #endif
01390 #if !defined(__lzo_cdecl)
01391 #  define __lzo_cdecl
01392 #endif
01393 #if !defined(__lzo_cdecl_atexit)
01394 #  define __lzo_cdecl_atexit
01395 #endif
01396 #if !defined(__lzo_cdecl_main)
01397 #  define __lzo_cdecl_main
01398 #endif
01399 #if !defined(__lzo_cdecl_qsort)
01400 #  define __lzo_cdecl_qsort
01401 #endif
01402 #if !defined(__lzo_cdecl_sighandler)
01403 #  define __lzo_cdecl_sighandler
01404 #endif
01405 #if !defined(__lzo_cdecl_va)
01406 #  define __lzo_cdecl_va                __lzo_cdecl
01407 #endif
01408 #if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64)
01409 #  if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000))
01410 #  elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
01411 #  elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul)))
01412 #  else
01413 #    define LZO_HAVE_WINDOWS_H 1
01414 #  endif
01415 #endif
01416 #if (LZO_ARCH_ALPHA)
01417 #  define LZO_OPT_AVOID_UINT_INDEX  1
01418 #  define LZO_OPT_AVOID_SHORT       1
01419 #  define LZO_OPT_AVOID_USHORT      1
01420 #elif (LZO_ARCH_AMD64)
01421 #  define LZO_OPT_AVOID_INT_INDEX   1
01422 #  define LZO_OPT_AVOID_UINT_INDEX  1
01423 #  define LZO_OPT_UNALIGNED16       1
01424 #  define LZO_OPT_UNALIGNED32       1
01425 #  define LZO_OPT_UNALIGNED64       1
01426 #elif (LZO_ARCH_ARM && LZO_ARCH_ARM_THUMB)
01427 #elif (LZO_ARCH_ARM)
01428 #  define LZO_OPT_AVOID_SHORT       1
01429 #  define LZO_OPT_AVOID_USHORT      1
01430 #elif (LZO_ARCH_CRIS)
01431 #  define LZO_OPT_UNALIGNED16       1
01432 #  define LZO_OPT_UNALIGNED32       1
01433 #elif (LZO_ARCH_I386)
01434 #  define LZO_OPT_UNALIGNED16       1
01435 #  define LZO_OPT_UNALIGNED32       1
01436 #elif (LZO_ARCH_IA64)
01437 #  define LZO_OPT_AVOID_INT_INDEX   1
01438 #  define LZO_OPT_AVOID_UINT_INDEX  1
01439 #  define LZO_OPT_PREFER_POSTINC    1
01440 #elif (LZO_ARCH_M68K)
01441 #  define LZO_OPT_PREFER_POSTINC    1
01442 #  define LZO_OPT_PREFER_PREDEC     1
01443 #  if defined(__mc68020__) && !defined(__mcoldfire__)
01444 #    define LZO_OPT_UNALIGNED16     1
01445 #    define LZO_OPT_UNALIGNED32     1
01446 #  endif
01447 #elif (LZO_ARCH_MIPS)
01448 #  define LZO_OPT_AVOID_UINT_INDEX  1
01449 #elif (LZO_ARCH_POWERPC)
01450 #  define LZO_OPT_PREFER_PREINC     1
01451 #  define LZO_OPT_PREFER_PREDEC     1
01452 #  if defined(LZO_ABI_BIG_ENDIAN)
01453 #    define LZO_OPT_UNALIGNED16     1
01454 #    define LZO_OPT_UNALIGNED32     1
01455 #  endif
01456 #elif (LZO_ARCH_S390)
01457 #  define LZO_OPT_UNALIGNED16       1
01458 #  define LZO_OPT_UNALIGNED32       1
01459 #  if (LZO_SIZEOF_SIZE_T == 8)
01460 #    define LZO_OPT_UNALIGNED64     1
01461 #  endif
01462 #elif (LZO_ARCH_SH)
01463 #  define LZO_OPT_PREFER_POSTINC    1
01464 #  define LZO_OPT_PREFER_PREDEC     1
01465 #endif
01466 #if !defined(LZO_CFG_NO_INLINE_ASM)
01467 #if defined(LZO_CC_LLVM)
01468 #  define LZO_CFG_NO_INLINE_ASM 1
01469 #endif
01470 #endif
01471 #if !defined(LZO_CFG_NO_UNALIGNED)
01472 #if defined(LZO_ABI_NEUTRAL_ENDIAN) || defined(LZO_ARCH_GENERIC)
01473 #  define LZO_CFG_NO_UNALIGNED 1
01474 #endif
01475 #endif
01476 #if defined(LZO_CFG_NO_UNALIGNED)
01477 #  undef LZO_OPT_UNALIGNED16
01478 #  undef LZO_OPT_UNALIGNED32
01479 #  undef LZO_OPT_UNALIGNED64
01480 #endif
01481 #if defined(LZO_CFG_NO_INLINE_ASM)
01482 #elif (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC))
01483 #  define LZO_ASM_SYNTAX_MSC 1
01484 #elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC))
01485 #elif (LZO_ARCH_I386 && (LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE))
01486 #  define LZO_ASM_SYNTAX_GNUC 1
01487 #elif (LZO_ARCH_AMD64 && (LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE))
01488 #  define LZO_ASM_SYNTAX_GNUC 1
01489 #endif
01490 #if (LZO_ASM_SYNTAX_GNUC)
01491 #if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul))
01492 #  define __LZO_ASM_CLOBBER         "ax"
01493 #elif (LZO_CC_INTELC)
01494 #  define __LZO_ASM_CLOBBER         "memory"
01495 #else
01496 #  define __LZO_ASM_CLOBBER         "cc", "memory"
01497 #endif
01498 #endif
01499 #if defined(__LZO_INFOSTR_MM)
01500 #elif (LZO_MM_FLAT) && (defined(__LZO_INFOSTR_PM) || defined(LZO_INFO_ABI_PM))
01501 #  define __LZO_INFOSTR_MM          ""
01502 #elif defined(LZO_INFO_MM)
01503 #  define __LZO_INFOSTR_MM          "." LZO_INFO_MM
01504 #else
01505 #  define __LZO_INFOSTR_MM          ""
01506 #endif
01507 #if defined(__LZO_INFOSTR_PM)
01508 #elif defined(LZO_INFO_ABI_PM)
01509 #  define __LZO_INFOSTR_PM          "." LZO_INFO_ABI_PM
01510 #else
01511 #  define __LZO_INFOSTR_PM          ""
01512 #endif
01513 #if defined(__LZO_INFOSTR_ENDIAN)
01514 #elif defined(LZO_INFO_ABI_ENDIAN)
01515 #  define __LZO_INFOSTR_ENDIAN      "." LZO_INFO_ABI_ENDIAN
01516 #else
01517 #  define __LZO_INFOSTR_ENDIAN      ""
01518 #endif
01519 #if defined(__LZO_INFOSTR_OSNAME)
01520 #elif defined(LZO_INFO_OS_CONSOLE)
01521 #  define __LZO_INFOSTR_OSNAME      LZO_INFO_OS "." LZO_INFO_OS_CONSOLE
01522 #elif defined(LZO_INFO_OS_POSIX)
01523 #  define __LZO_INFOSTR_OSNAME      LZO_INFO_OS "." LZO_INFO_OS_POSIX
01524 #else
01525 #  define __LZO_INFOSTR_OSNAME      LZO_INFO_OS
01526 #endif
01527 #if defined(__LZO_INFOSTR_LIBC)
01528 #elif defined(LZO_INFO_LIBC)
01529 #  define __LZO_INFOSTR_LIBC        "." LZO_INFO_LIBC
01530 #else
01531 #  define __LZO_INFOSTR_LIBC        ""
01532 #endif
01533 #if defined(__LZO_INFOSTR_CCVER)
01534 #elif defined(LZO_INFO_CCVER)
01535 #  define __LZO_INFOSTR_CCVER       " " LZO_INFO_CCVER
01536 #else
01537 #  define __LZO_INFOSTR_CCVER       ""
01538 #endif
01539 #define LZO_INFO_STRING \
01540     LZO_INFO_ARCH __LZO_INFOSTR_MM __LZO_INFOSTR_PM __LZO_INFOSTR_ENDIAN \
01541     " " __LZO_INFOSTR_OSNAME __LZO_INFOSTR_LIBC " " LZO_INFO_CC __LZO_INFOSTR_CCVER
01542 
01543 #endif /* already included */
01544 
01545 /* vim:set ts=4 et: */