Home | History | Annotate | Download | only in m_debuginfo
      1 /* lzodefs.h -- architecture, OS and compiler specific defines
      2 
      3    This file is part of the LZO real-time data compression library.
      4 
      5    Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
      6    Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
      7    Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
      8    Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
      9    Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
     10    Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
     11    Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
     12    Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
     13    Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
     14    Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
     15    Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
     16    Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
     17    Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
     18    Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
     19    Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
     20    Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
     21    All Rights Reserved.
     22 
     23    The LZO library is free software; you can redistribute it and/or
     24    modify it under the terms of the GNU General Public License as
     25    published by the Free Software Foundation; either version 2 of
     26    the License, or (at your option) any later version.
     27 
     28    The LZO library is distributed in the hope that it will be useful,
     29    but WITHOUT ANY WARRANTY; without even the implied warranty of
     30    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     31    GNU General Public License for more details.
     32 
     33    You should have received a copy of the GNU General Public License
     34    along with the LZO library; see the file COPYING.
     35    If not, write to the Free Software Foundation, Inc.,
     36    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
     37 
     38    Markus F.X.J. Oberhumer
     39    <markus (at) oberhumer.com>
     40    http://www.oberhumer.com/opensource/lzo/
     41  */
     42 
     43 
     44 #ifndef __LZODEFS_H_INCLUDED
     45 #define __LZODEFS_H_INCLUDED 1
     46 
     47 #if defined(__CYGWIN32__) && !defined(__CYGWIN__)
     48 #  define __CYGWIN__ __CYGWIN32__
     49 #endif
     50 #if defined(__IBMCPP__) && !defined(__IBMC__)
     51 #  define __IBMC__ __IBMCPP__
     52 #endif
     53 #if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER)
     54 #  define __INTEL_COMPILER __ICL
     55 #endif
     56 #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE)
     57 #  define _ALL_SOURCE 1
     58 #endif
     59 #if defined(__mips__) && defined(__R5900__)
     60 #  if !defined(__LONG_MAX__)
     61 #    define __LONG_MAX__ 9223372036854775807L
     62 #  endif
     63 #endif
     64 #if defined(__INTEL_COMPILER) && defined(__linux__)
     65 #  pragma warning(disable: 193)
     66 #endif
     67 #if defined(__KEIL__) && defined(__C166__)
     68 #  pragma warning disable = 322
     69 #elif 0 && defined(__C251__)
     70 #  pragma warning disable = 322
     71 #endif
     72 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
     73 #  if (_MSC_VER >= 1300)
     74 #    pragma warning(disable: 4668)
     75 #  endif
     76 #endif
     77 #if 0 && defined(__WATCOMC__)
     78 #  if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060)
     79 #    pragma warning 203 9
     80 #  endif
     81 #endif
     82 #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__)
     83 #  pragma option -h
     84 #endif
     85 #if 0
     86 #define LZO_0xffffL             0xfffful
     87 #define LZO_0xffffffffL         0xfffffffful
     88 #else
     89 #define LZO_0xffffL             65535ul
     90 #define LZO_0xffffffffL         4294967295ul
     91 #endif
     92 #if (LZO_0xffffL == LZO_0xffffffffL)
     93 #  error "your preprocessor is broken 1"
     94 #endif
     95 #if (16ul * 16384ul != 262144ul)
     96 #  error "your preprocessor is broken 2"
     97 #endif
     98 #if 0
     99 #if (32767 >= 4294967295ul)
    100 #  error "your preprocessor is broken 3"
    101 #endif
    102 #if (65535u >= 4294967295ul)
    103 #  error "your preprocessor is broken 4"
    104 #endif
    105 #endif
    106 #if (UINT_MAX == LZO_0xffffL)
    107 #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)
    108 #  if !defined(MSDOS)
    109 #    define MSDOS 1
    110 #  endif
    111 #  if !defined(_MSDOS)
    112 #    define _MSDOS 1
    113 #  endif
    114 #elif 0 && defined(__VERSION) && defined(MB_LEN_MAX)
    115 #  if (__VERSION == 520) && (MB_LEN_MAX == 1)
    116 #    if !defined(__AZTEC_C__)
    117 #      define __AZTEC_C__ __VERSION
    118 #    endif
    119 #    if !defined(__DOS__)
    120 #      define __DOS__ 1
    121 #    endif
    122 #  endif
    123 #endif
    124 #endif
    125 #if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == LZO_0xffffL)
    126 #  define ptrdiff_t long
    127 #  define _PTRDIFF_T_DEFINED 1
    128 #endif
    129 #if (UINT_MAX == LZO_0xffffL)
    130 #  undef __LZO_RENAME_A
    131 #  undef __LZO_RENAME_B
    132 #  if defined(__AZTEC_C__) && defined(__DOS__)
    133 #    define __LZO_RENAME_A 1
    134 #  elif defined(_MSC_VER) && defined(MSDOS)
    135 #    if (_MSC_VER < 600)
    136 #      define __LZO_RENAME_A 1
    137 #    elif (_MSC_VER < 700)
    138 #      define __LZO_RENAME_B 1
    139 #    endif
    140 #  elif defined(__TSC__) && defined(__OS2__)
    141 #    define __LZO_RENAME_A 1
    142 #  elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410)
    143 #    define __LZO_RENAME_A 1
    144 #  elif defined(__PACIFIC__) && defined(DOS)
    145 #    if !defined(__far)
    146 #      define __far far
    147 #    endif
    148 #    if !defined(__near)
    149 #      define __near near
    150 #    endif
    151 #  endif
    152 #  if defined(__LZO_RENAME_A)
    153 #    if !defined(__cdecl)
    154 #      define __cdecl cdecl
    155 #    endif
    156 #    if !defined(__far)
    157 #      define __far far
    158 #    endif
    159 #    if !defined(__huge)
    160 #      define __huge huge
    161 #    endif
    162 #    if !defined(__near)
    163 #      define __near near
    164 #    endif
    165 #    if !defined(__pascal)
    166 #      define __pascal pascal
    167 #    endif
    168 #    if !defined(__huge)
    169 #      define __huge huge
    170 #    endif
    171 #  elif defined(__LZO_RENAME_B)
    172 #    if !defined(__cdecl)
    173 #      define __cdecl _cdecl
    174 #    endif
    175 #    if !defined(__far)
    176 #      define __far _far
    177 #    endif
    178 #    if !defined(__huge)
    179 #      define __huge _huge
    180 #    endif
    181 #    if !defined(__near)
    182 #      define __near _near
    183 #    endif
    184 #    if !defined(__pascal)
    185 #      define __pascal _pascal
    186 #    endif
    187 #  elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
    188 #    if !defined(__cdecl)
    189 #      define __cdecl cdecl
    190 #    endif
    191 #    if !defined(__pascal)
    192 #      define __pascal pascal
    193 #    endif
    194 #  endif
    195 #  undef __LZO_RENAME_A
    196 #  undef __LZO_RENAME_B
    197 #endif
    198 #if (UINT_MAX == LZO_0xffffL)
    199 #if defined(__AZTEC_C__) && defined(__DOS__)
    200 #  define LZO_BROKEN_CDECL_ALT_SYNTAX 1
    201 #elif defined(_MSC_VER) && defined(MSDOS)
    202 #  if (_MSC_VER < 600)
    203 #    define LZO_BROKEN_INTEGRAL_CONSTANTS 1
    204 #  endif
    205 #  if (_MSC_VER < 700)
    206 #    define LZO_BROKEN_INTEGRAL_PROMOTION 1
    207 #    define LZO_BROKEN_SIZEOF 1
    208 #  endif
    209 #elif defined(__PACIFIC__) && defined(DOS)
    210 #  define LZO_BROKEN_INTEGRAL_CONSTANTS 1
    211 #elif defined(__TURBOC__) && defined(__MSDOS__)
    212 #  if (__TURBOC__ < 0x0150)
    213 #    define LZO_BROKEN_CDECL_ALT_SYNTAX 1
    214 #    define LZO_BROKEN_INTEGRAL_CONSTANTS 1
    215 #    define LZO_BROKEN_INTEGRAL_PROMOTION 1
    216 #  endif
    217 #  if (__TURBOC__ < 0x0200)
    218 #    define LZO_BROKEN_SIZEOF 1
    219 #  endif
    220 #  if (__TURBOC__ < 0x0400) && defined(__cplusplus)
    221 #    define LZO_BROKEN_CDECL_ALT_SYNTAX 1
    222 #  endif
    223 #elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
    224 #  define LZO_BROKEN_CDECL_ALT_SYNTAX 1
    225 #  define LZO_BROKEN_SIZEOF 1
    226 #endif
    227 #endif
    228 #if defined(__WATCOMC__) && (__WATCOMC__ < 900)
    229 #  define LZO_BROKEN_INTEGRAL_CONSTANTS 1
    230 #endif
    231 #if defined(_CRAY) && defined(_CRAY1)
    232 #  define LZO_BROKEN_SIGNED_RIGHT_SHIFT 1
    233 #endif
    234 #define LZO_PP_STRINGIZE(x)             #x
    235 #define LZO_PP_MACRO_EXPAND(x)          LZO_PP_STRINGIZE(x)
    236 #define LZO_PP_CONCAT2(a,b)             a ## b
    237 #define LZO_PP_CONCAT3(a,b,c)           a ## b ## c
    238 #define LZO_PP_CONCAT4(a,b,c,d)         a ## b ## c ## d
    239 #define LZO_PP_CONCAT5(a,b,c,d,e)       a ## b ## c ## d ## e
    240 #define LZO_PP_ECONCAT2(a,b)            LZO_PP_CONCAT2(a,b)
    241 #define LZO_PP_ECONCAT3(a,b,c)          LZO_PP_CONCAT3(a,b,c)
    242 #define LZO_PP_ECONCAT4(a,b,c,d)        LZO_PP_CONCAT4(a,b,c,d)
    243 #define LZO_PP_ECONCAT5(a,b,c,d,e)      LZO_PP_CONCAT5(a,b,c,d,e)
    244 #if 1
    245 #define LZO_CPP_STRINGIZE(x)            #x
    246 #define LZO_CPP_MACRO_EXPAND(x)         LZO_CPP_STRINGIZE(x)
    247 #define LZO_CPP_CONCAT2(a,b)            a ## b
    248 #define LZO_CPP_CONCAT3(a,b,c)          a ## b ## c
    249 #define LZO_CPP_CONCAT4(a,b,c,d)        a ## b ## c ## d
    250 #define LZO_CPP_CONCAT5(a,b,c,d,e)      a ## b ## c ## d ## e
    251 #define LZO_CPP_ECONCAT2(a,b)           LZO_CPP_CONCAT2(a,b)
    252 #define LZO_CPP_ECONCAT3(a,b,c)         LZO_CPP_CONCAT3(a,b,c)
    253 #define LZO_CPP_ECONCAT4(a,b,c,d)       LZO_CPP_CONCAT4(a,b,c,d)
    254 #define LZO_CPP_ECONCAT5(a,b,c,d,e)     LZO_CPP_CONCAT5(a,b,c,d,e)
    255 #endif
    256 #define __LZO_MASK_GEN(o,b)     (((((o) << ((b)-1)) - (o)) << 1) + (o))
    257 #if 1 && defined(__cplusplus)
    258 #  if !defined(__STDC_CONSTANT_MACROS)
    259 #    define __STDC_CONSTANT_MACROS 1
    260 #  endif
    261 #  if !defined(__STDC_LIMIT_MACROS)
    262 #    define __STDC_LIMIT_MACROS 1
    263 #  endif
    264 #endif
    265 #if defined(__cplusplus)
    266 #  define LZO_EXTERN_C extern "C"
    267 #else
    268 #  define LZO_EXTERN_C extern
    269 #endif
    270 #if !defined(__LZO_OS_OVERRIDE)
    271 #if (LZO_OS_FREESTANDING)
    272 #  define LZO_INFO_OS           "freestanding"
    273 #elif (LZO_OS_EMBEDDED)
    274 #  define LZO_INFO_OS           "embedded"
    275 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
    276 #  define LZO_OS_EMBEDDED       1
    277 #  define LZO_INFO_OS           "embedded"
    278 #elif defined(__CYGWIN__) && defined(__GNUC__)
    279 #  define LZO_OS_CYGWIN         1
    280 #  define LZO_INFO_OS           "cygwin"
    281 #elif defined(__EMX__) && defined(__GNUC__)
    282 #  define LZO_OS_EMX            1
    283 #  define LZO_INFO_OS           "emx"
    284 #elif defined(__BEOS__)
    285 #  define LZO_OS_BEOS           1
    286 #  define LZO_INFO_OS           "beos"
    287 #elif defined(__Lynx__)
    288 #  define LZO_OS_LYNXOS         1
    289 #  define LZO_INFO_OS           "lynxos"
    290 #elif defined(__OS400__)
    291 #  define LZO_OS_OS400          1
    292 #  define LZO_INFO_OS           "os400"
    293 #elif defined(__QNX__)
    294 #  define LZO_OS_QNX            1
    295 #  define LZO_INFO_OS           "qnx"
    296 #elif defined(__BORLANDC__) && defined(__DPMI32__) && (__BORLANDC__ >= 0x0460)
    297 #  define LZO_OS_DOS32          1
    298 #  define LZO_INFO_OS           "dos32"
    299 #elif defined(__BORLANDC__) && defined(__DPMI16__)
    300 #  define LZO_OS_DOS16          1
    301 #  define LZO_INFO_OS           "dos16"
    302 #elif defined(__ZTC__) && defined(DOS386)
    303 #  define LZO_OS_DOS32          1
    304 #  define LZO_INFO_OS           "dos32"
    305 #elif defined(__OS2__) || defined(__OS2V2__)
    306 #  if (UINT_MAX == LZO_0xffffL)
    307 #    define LZO_OS_OS216        1
    308 #    define LZO_INFO_OS         "os216"
    309 #  elif (UINT_MAX == LZO_0xffffffffL)
    310 #    define LZO_OS_OS2          1
    311 #    define LZO_INFO_OS         "os2"
    312 #  else
    313 #    error "check your limits.h header"
    314 #  endif
    315 #elif defined(__WIN64__) || defined(_WIN64) || defined(WIN64)
    316 #  define LZO_OS_WIN64          1
    317 #  define LZO_INFO_OS           "win64"
    318 #elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS_386__)
    319 #  define LZO_OS_WIN32          1
    320 #  define LZO_INFO_OS           "win32"
    321 #elif defined(__MWERKS__) && defined(__INTEL__)
    322 #  define LZO_OS_WIN32          1
    323 #  define LZO_INFO_OS           "win32"
    324 #elif defined(__WINDOWS__) || defined(_WINDOWS) || defined(_Windows)
    325 #  if (UINT_MAX == LZO_0xffffL)
    326 #    define LZO_OS_WIN16        1
    327 #    define LZO_INFO_OS         "win16"
    328 #  elif (UINT_MAX == LZO_0xffffffffL)
    329 #    define LZO_OS_WIN32        1
    330 #    define LZO_INFO_OS         "win32"
    331 #  else
    332 #    error "check your limits.h header"
    333 #  endif
    334 #elif defined(__DOS__) || defined(__MSDOS__) || defined(_MSDOS) || defined(MSDOS) || (defined(__PACIFIC__) && defined(DOS))
    335 #  if (UINT_MAX == LZO_0xffffL)
    336 #    define LZO_OS_DOS16        1
    337 #    define LZO_INFO_OS         "dos16"
    338 #  elif (UINT_MAX == LZO_0xffffffffL)
    339 #    define LZO_OS_DOS32        1
    340 #    define LZO_INFO_OS         "dos32"
    341 #  else
    342 #    error "check your limits.h header"
    343 #  endif
    344 #elif defined(__WATCOMC__)
    345 #  if defined(__NT__) && (UINT_MAX == LZO_0xffffL)
    346 #    define LZO_OS_DOS16        1
    347 #    define LZO_INFO_OS         "dos16"
    348 #  elif defined(__NT__) && (__WATCOMC__ < 1100)
    349 #    define LZO_OS_WIN32        1
    350 #    define LZO_INFO_OS         "win32"
    351 #  elif defined(__linux__) || defined(__LINUX__)
    352 #    define LZO_OS_POSIX        1
    353 #    define LZO_INFO_OS         "posix"
    354 #  else
    355 #    error "please specify a target using the -bt compiler option"
    356 #  endif
    357 #elif defined(__palmos__)
    358 #  define LZO_OS_PALMOS         1
    359 #  define LZO_INFO_OS           "palmos"
    360 #elif defined(__TOS__) || defined(__atarist__)
    361 #  define LZO_OS_TOS            1
    362 #  define LZO_INFO_OS           "tos"
    363 #elif defined(macintosh) && !defined(__ppc__)
    364 #  define LZO_OS_MACCLASSIC     1
    365 #  define LZO_INFO_OS           "macclassic"
    366 #elif defined(__VMS)
    367 #  define LZO_OS_VMS            1
    368 #  define LZO_INFO_OS           "vms"
    369 #elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
    370 #  define LZO_OS_CONSOLE        1
    371 #  define LZO_OS_CONSOLE_PS2    1
    372 #  define LZO_INFO_OS           "console"
    373 #  define LZO_INFO_OS_CONSOLE   "ps2"
    374 #elif (defined(__mips__) && defined(__psp__))
    375 #  define LZO_OS_CONSOLE        1
    376 #  define LZO_OS_CONSOLE_PSP    1
    377 #  define LZO_INFO_OS           "console"
    378 #  define LZO_INFO_OS_CONSOLE   "psp"
    379 #else
    380 #  define LZO_OS_POSIX          1
    381 #  define LZO_INFO_OS           "posix"
    382 #endif
    383 #if (LZO_OS_POSIX)
    384 #  if defined(_AIX) || defined(__AIX__) || defined(__aix__)
    385 #    define LZO_OS_POSIX_AIX        1
    386 #    define LZO_INFO_OS_POSIX       "aix"
    387 #  elif defined(__FreeBSD__)
    388 #    define LZO_OS_POSIX_FREEBSD    1
    389 #    define LZO_INFO_OS_POSIX       "freebsd"
    390 #  elif defined(__hpux__) || defined(__hpux)
    391 #    define LZO_OS_POSIX_HPUX       1
    392 #    define LZO_INFO_OS_POSIX       "hpux"
    393 #  elif defined(__INTERIX)
    394 #    define LZO_OS_POSIX_INTERIX    1
    395 #    define LZO_INFO_OS_POSIX       "interix"
    396 #  elif defined(__IRIX__) || defined(__irix__)
    397 #    define LZO_OS_POSIX_IRIX       1
    398 #    define LZO_INFO_OS_POSIX       "irix"
    399 #  elif defined(__linux__) || defined(__linux) || defined(__LINUX__)
    400 #    define LZO_OS_POSIX_LINUX      1
    401 #    define LZO_INFO_OS_POSIX       "linux"
    402 #  elif defined(__APPLE__) || defined(__MACOS__)
    403 #    define LZO_OS_POSIX_MACOSX     1
    404 #    define LZO_INFO_OS_POSIX       "macosx"
    405 #  elif defined(__minix__) || defined(__minix)
    406 #    define LZO_OS_POSIX_MINIX      1
    407 #    define LZO_INFO_OS_POSIX       "minix"
    408 #  elif defined(__NetBSD__)
    409 #    define LZO_OS_POSIX_NETBSD     1
    410 #    define LZO_INFO_OS_POSIX       "netbsd"
    411 #  elif defined(__OpenBSD__)
    412 #    define LZO_OS_POSIX_OPENBSD    1
    413 #    define LZO_INFO_OS_POSIX       "openbsd"
    414 #  elif defined(__osf__)
    415 #    define LZO_OS_POSIX_OSF        1
    416 #    define LZO_INFO_OS_POSIX       "osf"
    417 #  elif defined(__solaris__) || defined(__sun)
    418 #    if defined(__SVR4) || defined(__svr4__)
    419 #      define LZO_OS_POSIX_SOLARIS  1
    420 #      define LZO_INFO_OS_POSIX     "solaris"
    421 #    else
    422 #      define LZO_OS_POSIX_SUNOS    1
    423 #      define LZO_INFO_OS_POSIX     "sunos"
    424 #    endif
    425 #  elif defined(__ultrix__) || defined(__ultrix)
    426 #    define LZO_OS_POSIX_ULTRIX     1
    427 #    define LZO_INFO_OS_POSIX       "ultrix"
    428 #  elif defined(_UNICOS)
    429 #    define LZO_OS_POSIX_UNICOS     1
    430 #    define LZO_INFO_OS_POSIX       "unicos"
    431 #  else
    432 #    define LZO_OS_POSIX_UNKNOWN    1
    433 #    define LZO_INFO_OS_POSIX       "unknown"
    434 #  endif
    435 #endif
    436 #endif
    437 #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
    438 #  if (UINT_MAX != LZO_0xffffL)
    439 #    error "this should not happen"
    440 #  endif
    441 #  if (ULONG_MAX != LZO_0xffffffffL)
    442 #    error "this should not happen"
    443 #  endif
    444 #endif
    445 #if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32 || LZO_OS_WIN64)
    446 #  if (UINT_MAX != LZO_0xffffffffL)
    447 #    error "this should not happen"
    448 #  endif
    449 #  if (ULONG_MAX != LZO_0xffffffffL)
    450 #    error "this should not happen"
    451 #  endif
    452 #endif
    453 #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__)
    454 #  define LZO_CC_CILLY          1
    455 #  define LZO_INFO_CC           "Cilly"
    456 #  if defined(__CILLY__)
    457 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__CILLY__)
    458 #  else
    459 #    define LZO_INFO_CCVER      "unknown"
    460 #  endif
    461 #elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__)
    462 #  define LZO_CC_SDCC           1
    463 #  define LZO_INFO_CC           "sdcc"
    464 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(SDCC)
    465 #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
    466 #  define LZO_CC_PATHSCALE      (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__)
    467 #  define LZO_INFO_CC           "Pathscale C"
    468 #  define LZO_INFO_CCVER        __PATHSCALE__
    469 #elif defined(__INTEL_COMPILER)
    470 #  define LZO_CC_INTELC         1
    471 #  define LZO_INFO_CC           "Intel C"
    472 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__INTEL_COMPILER)
    473 #  if defined(_WIN32) || defined(_WIN64)
    474 #    define LZO_CC_SYNTAX_MSC 1
    475 #  else
    476 #    define LZO_CC_SYNTAX_GNUC 1
    477 #  endif
    478 #elif defined(__POCC__) && defined(_WIN32)
    479 #  define LZO_CC_PELLESC        1
    480 #  define LZO_INFO_CC           "Pelles C"
    481 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__POCC__)
    482 #elif defined(__clang__) && defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
    483 #  if defined(__GNUC_PATCHLEVEL__)
    484 #    define LZO_CC_CLANG_GNUC   (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
    485 #  else
    486 #    define LZO_CC_CLANG_GNUC   (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
    487 #  endif
    488 #  if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__)
    489 #    define LZO_CC_CLANG_CLANG  (__clang_major__ * 0x10000L + __clang_minor__ * 0x100 + __clang_patchlevel__)
    490 #  else
    491 #    define LZO_CC_CLANG_CLANG  0x010000L
    492 #  endif
    493 #  define LZO_CC_CLANG          LZO_CC_CLANG_GNUC
    494 #  define LZO_INFO_CC           "clang"
    495 #  define LZO_INFO_CCVER        __VERSION__
    496 #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
    497 #  if defined(__GNUC_PATCHLEVEL__)
    498 #    define LZO_CC_LLVM_GNUC    (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
    499 #  else
    500 #    define LZO_CC_LLVM_GNUC    (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
    501 #  endif
    502 #  define LZO_CC_LLVM           LZO_CC_LLVM_GNUC
    503 #  define LZO_INFO_CC           "llvm-gcc"
    504 #  define LZO_INFO_CCVER        __VERSION__
    505 #elif defined(__GNUC__) && defined(__VERSION__)
    506 #  if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
    507 #    define LZO_CC_GNUC         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
    508 #  elif defined(__GNUC_MINOR__)
    509 #    define LZO_CC_GNUC         (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
    510 #  else
    511 #    define LZO_CC_GNUC         (__GNUC__ * 0x10000L)
    512 #  endif
    513 #  define LZO_INFO_CC           "gcc"
    514 #  define LZO_INFO_CCVER        __VERSION__
    515 #elif defined(__ACK__) && defined(_ACK)
    516 #  define LZO_CC_ACK            1
    517 #  define LZO_INFO_CC           "Amsterdam Compiler Kit C"
    518 #  define LZO_INFO_CCVER        "unknown"
    519 #elif defined(__AZTEC_C__)
    520 #  define LZO_CC_AZTECC         1
    521 #  define LZO_INFO_CC           "Aztec C"
    522 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__AZTEC_C__)
    523 #elif defined(__CODEGEARC__)
    524 #  define LZO_CC_CODEGEARC      1
    525 #  define LZO_INFO_CC           "CodeGear C"
    526 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__CODEGEARC__)
    527 #elif defined(__BORLANDC__)
    528 #  define LZO_CC_BORLANDC       1
    529 #  define LZO_INFO_CC           "Borland C"
    530 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__BORLANDC__)
    531 #elif defined(_CRAYC) && defined(_RELEASE)
    532 #  define LZO_CC_CRAYC          1
    533 #  define LZO_INFO_CC           "Cray C"
    534 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(_RELEASE)
    535 #elif defined(__DMC__) && defined(__SC__)
    536 #  define LZO_CC_DMC            1
    537 #  define LZO_INFO_CC           "Digital Mars C"
    538 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__DMC__)
    539 #elif defined(__DECC)
    540 #  define LZO_CC_DECC           1
    541 #  define LZO_INFO_CC           "DEC C"
    542 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__DECC)
    543 #elif defined(__HIGHC__)
    544 #  define LZO_CC_HIGHC          1
    545 #  define LZO_INFO_CC           "MetaWare High C"
    546 #  define LZO_INFO_CCVER        "unknown"
    547 #elif defined(__IAR_SYSTEMS_ICC__)
    548 #  define LZO_CC_IARC           1
    549 #  define LZO_INFO_CC           "IAR C"
    550 #  if defined(__VER__)
    551 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__VER__)
    552 #  else
    553 #    define LZO_INFO_CCVER      "unknown"
    554 #  endif
    555 #elif defined(__IBMC__)
    556 #  define LZO_CC_IBMC           1
    557 #  define LZO_INFO_CC           "IBM C"
    558 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__IBMC__)
    559 #elif defined(__KEIL__) && defined(__C166__)
    560 #  define LZO_CC_KEILC          1
    561 #  define LZO_INFO_CC           "Keil C"
    562 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__C166__)
    563 #elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL)
    564 #  define LZO_CC_LCCWIN32       1
    565 #  define LZO_INFO_CC           "lcc-win32"
    566 #  define LZO_INFO_CCVER        "unknown"
    567 #elif defined(__LCC__)
    568 #  define LZO_CC_LCC            1
    569 #  define LZO_INFO_CC           "lcc"
    570 #  if defined(__LCC_VERSION__)
    571 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__LCC_VERSION__)
    572 #  else
    573 #    define LZO_INFO_CCVER      "unknown"
    574 #  endif
    575 #elif defined(_MSC_VER)
    576 #  define LZO_CC_MSC            1
    577 #  define LZO_INFO_CC           "Microsoft C"
    578 #  if defined(_MSC_FULL_VER)
    579 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER)
    580 #  else
    581 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(_MSC_VER)
    582 #  endif
    583 #elif defined(__MWERKS__)
    584 #  define LZO_CC_MWERKS         1
    585 #  define LZO_INFO_CC           "Metrowerks C"
    586 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__MWERKS__)
    587 #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
    588 #  define LZO_CC_NDPC           1
    589 #  define LZO_INFO_CC           "Microway NDP C"
    590 #  define LZO_INFO_CCVER        "unknown"
    591 #elif defined(__PACIFIC__)
    592 #  define LZO_CC_PACIFICC       1
    593 #  define LZO_INFO_CC           "Pacific C"
    594 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__PACIFIC__)
    595 #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
    596 #  define LZO_CC_PGI            1
    597 #  define LZO_INFO_CC           "Portland Group PGI C"
    598 #  define LZO_INFO_CCVER        "unknown"
    599 #elif defined(__PUREC__) && defined(__TOS__)
    600 #  define LZO_CC_PUREC          1
    601 #  define LZO_INFO_CC           "Pure C"
    602 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__PUREC__)
    603 #elif defined(__SC__) && defined(__ZTC__)
    604 #  define LZO_CC_SYMANTECC      1
    605 #  define LZO_INFO_CC           "Symantec C"
    606 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__SC__)
    607 #elif defined(__SUNPRO_C)
    608 #  define LZO_INFO_CC           "SunPro C"
    609 #  if ((__SUNPRO_C)+0 > 0)
    610 #    define LZO_CC_SUNPROC      __SUNPRO_C
    611 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__SUNPRO_C)
    612 #  else
    613 #    define LZO_CC_SUNPROC      1
    614 #    define LZO_INFO_CCVER      "unknown"
    615 #  endif
    616 #elif defined(__SUNPRO_CC)
    617 #  define LZO_INFO_CC           "SunPro C"
    618 #  if ((__SUNPRO_CC)+0 > 0)
    619 #    define LZO_CC_SUNPROC      __SUNPRO_CC
    620 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__SUNPRO_CC)
    621 #  else
    622 #    define LZO_CC_SUNPROC      1
    623 #    define LZO_INFO_CCVER      "unknown"
    624 #  endif
    625 #elif defined(__TINYC__)
    626 #  define LZO_CC_TINYC          1
    627 #  define LZO_INFO_CC           "Tiny C"
    628 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__TINYC__)
    629 #elif defined(__TSC__)
    630 #  define LZO_CC_TOPSPEEDC      1
    631 #  define LZO_INFO_CC           "TopSpeed C"
    632 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__TSC__)
    633 #elif defined(__WATCOMC__)
    634 #  define LZO_CC_WATCOMC        1
    635 #  define LZO_INFO_CC           "Watcom C"
    636 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__WATCOMC__)
    637 #elif defined(__TURBOC__)
    638 #  define LZO_CC_TURBOC         1
    639 #  define LZO_INFO_CC           "Turbo C"
    640 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__TURBOC__)
    641 #elif defined(__ZTC__)
    642 #  define LZO_CC_ZORTECHC       1
    643 #  define LZO_INFO_CC           "Zortech C"
    644 #  if (__ZTC__ == 0x310)
    645 #    define LZO_INFO_CCVER      "0x310"
    646 #  else
    647 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__ZTC__)
    648 #  endif
    649 #else
    650 #  define LZO_CC_UNKNOWN        1
    651 #  define LZO_INFO_CC           "unknown"
    652 #  define LZO_INFO_CCVER        "unknown"
    653 #endif
    654 #if 0 && (LZO_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER)
    655 #  error "LZO_CC_MSC: _MSC_FULL_VER is not defined"
    656 #endif
    657 #if !defined(__LZO_ARCH_OVERRIDE) && !(LZO_ARCH_GENERIC) && defined(_CRAY)
    658 #  if (UINT_MAX > LZO_0xffffffffL) && defined(_CRAY)
    659 #    if defined(_CRAYMPP) || defined(_CRAYT3D) || defined(_CRAYT3E)
    660 #      define LZO_ARCH_CRAY_MPP     1
    661 #    elif defined(_CRAY1)
    662 #      define LZO_ARCH_CRAY_PVP     1
    663 #    endif
    664 #  endif
    665 #endif
    666 #if !defined(__LZO_ARCH_OVERRIDE)
    667 #if (LZO_ARCH_GENERIC)
    668 #  define LZO_INFO_ARCH             "generic"
    669 #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
    670 #  define LZO_ARCH_I086             1
    671 #  define LZO_ARCH_IA16             1
    672 #  define LZO_INFO_ARCH             "i086"
    673 #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
    674 #  define LZO_ARCH_ALPHA            1
    675 #  define LZO_INFO_ARCH             "alpha"
    676 #elif (LZO_ARCH_CRAY_MPP) && (defined(_CRAYT3D) || defined(_CRAYT3E))
    677 #  define LZO_ARCH_ALPHA            1
    678 #  define LZO_INFO_ARCH             "alpha"
    679 #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
    680 #  define LZO_ARCH_AMD64            1
    681 #  define LZO_INFO_ARCH             "amd64"
    682 #elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
    683 #  define LZO_ARCH_ARM              1
    684 #  define LZO_ARCH_ARM_THUMB        1
    685 #  define LZO_INFO_ARCH             "arm_thumb"
    686 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
    687 #  define LZO_ARCH_ARM              1
    688 #  if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1)
    689 #    define LZO_ARCH_ARM_THUMB      1
    690 #    define LZO_INFO_ARCH           "arm_thumb"
    691 #  elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2)
    692 #    define LZO_INFO_ARCH           "arm"
    693 #  else
    694 #    define LZO_INFO_ARCH           "arm"
    695 #  endif
    696 #elif defined(__arm__) || defined(_M_ARM)
    697 #  define LZO_ARCH_ARM              1
    698 #  define LZO_INFO_ARCH             "arm"
    699 #elif (UINT_MAX <= LZO_0xffffL) && defined(__AVR__)
    700 #  define LZO_ARCH_AVR              1
    701 #  define LZO_INFO_ARCH             "avr"
    702 #elif defined(__avr32__) || defined(__AVR32__)
    703 #  define LZO_ARCH_AVR32            1
    704 #  define LZO_INFO_ARCH             "avr32"
    705 #elif defined(__bfin__)
    706 #  define LZO_ARCH_BLACKFIN         1
    707 #  define LZO_INFO_ARCH             "blackfin"
    708 #elif (UINT_MAX == LZO_0xffffL) && defined(__C166__)
    709 #  define LZO_ARCH_C166             1
    710 #  define LZO_INFO_ARCH             "c166"
    711 #elif defined(__cris__)
    712 #  define LZO_ARCH_CRIS             1
    713 #  define LZO_INFO_ARCH             "cris"
    714 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCEZ80__)
    715 #  define LZO_ARCH_EZ80             1
    716 #  define LZO_INFO_ARCH             "ez80"
    717 #elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
    718 #  define LZO_ARCH_H8300            1
    719 #  define LZO_INFO_ARCH             "h8300"
    720 #elif defined(__hppa__) || defined(__hppa)
    721 #  define LZO_ARCH_HPPA             1
    722 #  define LZO_INFO_ARCH             "hppa"
    723 #elif defined(__386__) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_I386)
    724 #  define LZO_ARCH_I386             1
    725 #  define LZO_ARCH_IA32             1
    726 #  define LZO_INFO_ARCH             "i386"
    727 #elif (LZO_CC_ZORTECHC && defined(__I86__))
    728 #  define LZO_ARCH_I386             1
    729 #  define LZO_ARCH_IA32             1
    730 #  define LZO_INFO_ARCH             "i386"
    731 #elif (LZO_OS_DOS32 && LZO_CC_HIGHC) && defined(_I386)
    732 #  define LZO_ARCH_I386             1
    733 #  define LZO_ARCH_IA32             1
    734 #  define LZO_INFO_ARCH             "i386"
    735 #elif defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
    736 #  define LZO_ARCH_IA64             1
    737 #  define LZO_INFO_ARCH             "ia64"
    738 #elif (UINT_MAX == LZO_0xffffL) && defined(__m32c__)
    739 #  define LZO_ARCH_M16C             1
    740 #  define LZO_INFO_ARCH             "m16c"
    741 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCM16C__)
    742 #  define LZO_ARCH_M16C             1
    743 #  define LZO_INFO_ARCH             "m16c"
    744 #elif defined(__m32r__)
    745 #  define LZO_ARCH_M32R             1
    746 #  define LZO_INFO_ARCH             "m32r"
    747 #elif (LZO_OS_TOS) || defined(__m68k__) || defined(__m68000__) || defined(__mc68000__) || defined(__mc68020__) || defined(_M_M68K)
    748 #  define LZO_ARCH_M68K             1
    749 #  define LZO_INFO_ARCH             "m68k"
    750 #elif (UINT_MAX == LZO_0xffffL) && defined(__C251__)
    751 #  define LZO_ARCH_MCS251           1
    752 #  define LZO_INFO_ARCH             "mcs251"
    753 #elif (UINT_MAX == LZO_0xffffL) && defined(__C51__)
    754 #  define LZO_ARCH_MCS51            1
    755 #  define LZO_INFO_ARCH             "mcs51"
    756 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC8051__)
    757 #  define LZO_ARCH_MCS51            1
    758 #  define LZO_INFO_ARCH             "mcs51"
    759 #elif defined(__mips__) || defined(__mips) || defined(_MIPS_ARCH) || defined(_M_MRX000)
    760 #  define LZO_ARCH_MIPS             1
    761 #  define LZO_INFO_ARCH             "mips"
    762 #elif (UINT_MAX == LZO_0xffffL) && defined(__MSP430__)
    763 #  define LZO_ARCH_MSP430           1
    764 #  define LZO_INFO_ARCH             "msp430"
    765 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC430__)
    766 #  define LZO_ARCH_MSP430           1
    767 #  define LZO_INFO_ARCH             "msp430"
    768 #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
    769 #  define LZO_ARCH_POWERPC          1
    770 #  define LZO_INFO_ARCH             "powerpc"
    771 #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
    772 #  define LZO_ARCH_S390             1
    773 #  define LZO_INFO_ARCH             "s390"
    774 #elif defined(__sh__) || defined(_M_SH)
    775 #  define LZO_ARCH_SH               1
    776 #  define LZO_INFO_ARCH             "sh"
    777 #elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8)
    778 #  define LZO_ARCH_SPARC            1
    779 #  define LZO_INFO_ARCH             "sparc"
    780 #elif defined(__SPU__)
    781 #  define LZO_ARCH_SPU              1
    782 #  define LZO_INFO_ARCH             "spu"
    783 #elif (UINT_MAX == LZO_0xffffL) && defined(__z80)
    784 #  define LZO_ARCH_Z80              1
    785 #  define LZO_INFO_ARCH             "z80"
    786 #elif (LZO_ARCH_CRAY_PVP)
    787 #  if defined(_CRAYSV1)
    788 #    define LZO_ARCH_CRAY_SV1       1
    789 #    define LZO_INFO_ARCH           "cray_sv1"
    790 #  elif (_ADDR64)
    791 #    define LZO_ARCH_CRAY_T90       1
    792 #    define LZO_INFO_ARCH           "cray_t90"
    793 #  elif (_ADDR32)
    794 #    define LZO_ARCH_CRAY_YMP       1
    795 #    define LZO_INFO_ARCH           "cray_ymp"
    796 #  else
    797 #    define LZO_ARCH_CRAY_XMP       1
    798 #    define LZO_INFO_ARCH           "cray_xmp"
    799 #  endif
    800 #else
    801 #  define LZO_ARCH_UNKNOWN          1
    802 #  define LZO_INFO_ARCH             "unknown"
    803 #endif
    804 #endif
    805 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2)
    806 #  error "FIXME - missing define for CPU architecture"
    807 #endif
    808 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN32)
    809 #  error "FIXME - missing WIN32 define for CPU architecture"
    810 #endif
    811 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN64)
    812 #  error "FIXME - missing WIN64 define for CPU architecture"
    813 #endif
    814 #if (LZO_OS_OS216 || LZO_OS_WIN16)
    815 #  define LZO_ARCH_I086PM           1
    816 #  define LZO_ARCH_IA16PM           1
    817 #elif 1 && (LZO_OS_DOS16 && defined(BLX286))
    818 #  define LZO_ARCH_I086PM           1
    819 #  define LZO_ARCH_IA16PM           1
    820 #elif 1 && (LZO_OS_DOS16 && defined(DOSX286))
    821 #  define LZO_ARCH_I086PM           1
    822 #  define LZO_ARCH_IA16PM           1
    823 #elif 1 && (LZO_OS_DOS16 && LZO_CC_BORLANDC && defined(__DPMI16__))
    824 #  define LZO_ARCH_I086PM           1
    825 #  define LZO_ARCH_IA16PM           1
    826 #endif
    827 #if (LZO_ARCH_ARM_THUMB) && !(LZO_ARCH_ARM)
    828 #  error "this should not happen"
    829 #endif
    830 #if (LZO_ARCH_I086PM) && !(LZO_ARCH_I086)
    831 #  error "this should not happen"
    832 #endif
    833 #if (LZO_ARCH_I086)
    834 #  if (UINT_MAX != LZO_0xffffL)
    835 #    error "this should not happen"
    836 #  endif
    837 #  if (ULONG_MAX != LZO_0xffffffffL)
    838 #    error "this should not happen"
    839 #  endif
    840 #endif
    841 #if (LZO_ARCH_I386)
    842 #  if (UINT_MAX != LZO_0xffffL) && defined(__i386_int16__)
    843 #    error "this should not happen"
    844 #  endif
    845 #  if (UINT_MAX != LZO_0xffffffffL) && !defined(__i386_int16__)
    846 #    error "this should not happen"
    847 #  endif
    848 #  if (ULONG_MAX != LZO_0xffffffffL)
    849 #    error "this should not happen"
    850 #  endif
    851 #endif
    852 #if !defined(__LZO_MM_OVERRIDE)
    853 #if (LZO_ARCH_I086)
    854 #if (UINT_MAX != LZO_0xffffL)
    855 #  error "this should not happen"
    856 #endif
    857 #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM)
    858 #  define LZO_MM_TINY           1
    859 #elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86HM)
    860 #  define LZO_MM_HUGE           1
    861 #elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMALL_MODEL)
    862 #  define LZO_MM_SMALL          1
    863 #elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM)
    864 #  define LZO_MM_MEDIUM         1
    865 #elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM)
    866 #  define LZO_MM_COMPACT        1
    867 #elif defined(__LARGE__) || defined(M_I86LM) || defined(_M_I86LM) || defined(LARGE_MODEL)
    868 #  define LZO_MM_LARGE          1
    869 #elif (LZO_CC_AZTECC)
    870 #  if defined(_LARGE_CODE) && defined(_LARGE_DATA)
    871 #    define LZO_MM_LARGE        1
    872 #  elif defined(_LARGE_CODE)
    873 #    define LZO_MM_MEDIUM       1
    874 #  elif defined(_LARGE_DATA)
    875 #    define LZO_MM_COMPACT      1
    876 #  else
    877 #    define LZO_MM_SMALL        1
    878 #  endif
    879 #elif (LZO_CC_ZORTECHC && defined(__VCM__))
    880 #  define LZO_MM_LARGE          1
    881 #else
    882 #  error "unknown memory model"
    883 #endif
    884 #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
    885 #define LZO_HAVE_MM_HUGE_PTR        1
    886 #define LZO_HAVE_MM_HUGE_ARRAY      1
    887 #if (LZO_MM_TINY)
    888 #  undef LZO_HAVE_MM_HUGE_ARRAY
    889 #endif
    890 #if (LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_ZORTECHC)
    891 #  undef LZO_HAVE_MM_HUGE_PTR
    892 #  undef LZO_HAVE_MM_HUGE_ARRAY
    893 #elif (LZO_CC_DMC || LZO_CC_SYMANTECC)
    894 #  undef LZO_HAVE_MM_HUGE_ARRAY
    895 #elif (LZO_CC_MSC && defined(_QC))
    896 #  undef LZO_HAVE_MM_HUGE_ARRAY
    897 #  if (_MSC_VER < 600)
    898 #    undef LZO_HAVE_MM_HUGE_PTR
    899 #  endif
    900 #elif (LZO_CC_TURBOC && (__TURBOC__ < 0x0295))
    901 #  undef LZO_HAVE_MM_HUGE_ARRAY
    902 #endif
    903 #if (LZO_ARCH_I086PM) && !(LZO_HAVE_MM_HUGE_PTR)
    904 #  if (LZO_OS_DOS16)
    905 #    error "this should not happen"
    906 #  elif (LZO_CC_ZORTECHC)
    907 #  else
    908 #    error "this should not happen"
    909 #  endif
    910 #endif
    911 #ifdef __cplusplus
    912 extern "C" {
    913 #endif
    914 #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
    915    extern void __near __cdecl _AHSHIFT(void);
    916 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
    917 #elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
    918    extern void __near __cdecl _AHSHIFT(void);
    919 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
    920 #elif (LZO_CC_MSC || LZO_CC_TOPSPEEDC)
    921    extern void __near __cdecl _AHSHIFT(void);
    922 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
    923 #elif (LZO_CC_TURBOC && (__TURBOC__ >= 0x0295))
    924    extern void __near __cdecl _AHSHIFT(void);
    925 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
    926 #elif ((LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_TURBOC) && LZO_OS_DOS16)
    927 #  define LZO_MM_AHSHIFT      12
    928 #elif (LZO_CC_WATCOMC)
    929    extern unsigned char _HShift;
    930 #  define LZO_MM_AHSHIFT      ((unsigned) _HShift)
    931 #else
    932 #  error "FIXME - implement LZO_MM_AHSHIFT"
    933 #endif
    934 #ifdef __cplusplus
    935 }
    936 #endif
    937 #endif
    938 #elif (LZO_ARCH_C166)
    939 #if !defined(__MODEL__)
    940 #  error "FIXME - C166 __MODEL__"
    941 #elif ((__MODEL__) == 0)
    942 #  define LZO_MM_SMALL          1
    943 #elif ((__MODEL__) == 1)
    944 #  define LZO_MM_SMALL          1
    945 #elif ((__MODEL__) == 2)
    946 #  define LZO_MM_LARGE          1
    947 #elif ((__MODEL__) == 3)
    948 #  define LZO_MM_TINY           1
    949 #elif ((__MODEL__) == 4)
    950 #  define LZO_MM_XTINY          1
    951 #elif ((__MODEL__) == 5)
    952 #  define LZO_MM_XSMALL         1
    953 #else
    954 #  error "FIXME - C166 __MODEL__"
    955 #endif
    956 #elif (LZO_ARCH_MCS251)
    957 #if !defined(__MODEL__)
    958 #  error "FIXME - MCS251 __MODEL__"
    959 #elif ((__MODEL__) == 0)
    960 #  define LZO_MM_SMALL          1
    961 #elif ((__MODEL__) == 2)
    962 #  define LZO_MM_LARGE          1
    963 #elif ((__MODEL__) == 3)
    964 #  define LZO_MM_TINY           1
    965 #elif ((__MODEL__) == 4)
    966 #  define LZO_MM_XTINY          1
    967 #elif ((__MODEL__) == 5)
    968 #  define LZO_MM_XSMALL         1
    969 #else
    970 #  error "FIXME - MCS251 __MODEL__"
    971 #endif
    972 #elif (LZO_ARCH_MCS51)
    973 #if !defined(__MODEL__)
    974 #  error "FIXME - MCS51 __MODEL__"
    975 #elif ((__MODEL__) == 1)
    976 #  define LZO_MM_SMALL          1
    977 #elif ((__MODEL__) == 2)
    978 #  define LZO_MM_LARGE          1
    979 #elif ((__MODEL__) == 3)
    980 #  define LZO_MM_TINY           1
    981 #elif ((__MODEL__) == 4)
    982 #  define LZO_MM_XTINY          1
    983 #elif ((__MODEL__) == 5)
    984 #  define LZO_MM_XSMALL         1
    985 #else
    986 #  error "FIXME - MCS51 __MODEL__"
    987 #endif
    988 #elif (LZO_ARCH_CRAY_PVP)
    989 #  define LZO_MM_PVP            1
    990 #else
    991 #  define LZO_MM_FLAT           1
    992 #endif
    993 #if (LZO_MM_COMPACT)
    994 #  define LZO_INFO_MM           "compact"
    995 #elif (LZO_MM_FLAT)
    996 #  define LZO_INFO_MM           "flat"
    997 #elif (LZO_MM_HUGE)
    998 #  define LZO_INFO_MM           "huge"
    999 #elif (LZO_MM_LARGE)
   1000 #  define LZO_INFO_MM           "large"
   1001 #elif (LZO_MM_MEDIUM)
   1002 #  define LZO_INFO_MM           "medium"
   1003 #elif (LZO_MM_PVP)
   1004 #  define LZO_INFO_MM           "pvp"
   1005 #elif (LZO_MM_SMALL)
   1006 #  define LZO_INFO_MM           "small"
   1007 #elif (LZO_MM_TINY)
   1008 #  define LZO_INFO_MM           "tiny"
   1009 #else
   1010 #  error "unknown memory model"
   1011 #endif
   1012 #endif
   1013 #if defined(SIZEOF_SHORT)
   1014 #  define LZO_SIZEOF_SHORT          (SIZEOF_SHORT)
   1015 #endif
   1016 #if defined(SIZEOF_INT)
   1017 #  define LZO_SIZEOF_INT            (SIZEOF_INT)
   1018 #endif
   1019 #if defined(SIZEOF_LONG)
   1020 #  define LZO_SIZEOF_LONG           (SIZEOF_LONG)
   1021 #endif
   1022 #if defined(SIZEOF_LONG_LONG)
   1023 #  define LZO_SIZEOF_LONG_LONG      (SIZEOF_LONG_LONG)
   1024 #endif
   1025 #if defined(SIZEOF___INT16)
   1026 #  define LZO_SIZEOF___INT16        (SIZEOF___INT16)
   1027 #endif
   1028 #if defined(SIZEOF___INT32)
   1029 #  define LZO_SIZEOF___INT32        (SIZEOF___INT32)
   1030 #endif
   1031 #if defined(SIZEOF___INT64)
   1032 #  define LZO_SIZEOF___INT64        (SIZEOF___INT64)
   1033 #endif
   1034 #if defined(SIZEOF_VOID_P)
   1035 #  define LZO_SIZEOF_VOID_P         (SIZEOF_VOID_P)
   1036 #endif
   1037 #if defined(SIZEOF_SIZE_T)
   1038 #  define LZO_SIZEOF_SIZE_T         (SIZEOF_SIZE_T)
   1039 #endif
   1040 #if defined(SIZEOF_PTRDIFF_T)
   1041 #  define LZO_SIZEOF_PTRDIFF_T      (SIZEOF_PTRDIFF_T)
   1042 #endif
   1043 #define __LZO_LSR(x,b)    (((x)+0ul) >> (b))
   1044 #if !defined(LZO_SIZEOF_SHORT)
   1045 #  if (LZO_ARCH_CRAY_PVP)
   1046 #    define LZO_SIZEOF_SHORT        8
   1047 #  elif (USHRT_MAX == LZO_0xffffL)
   1048 #    define LZO_SIZEOF_SHORT        2
   1049 #  elif (__LZO_LSR(USHRT_MAX,7) == 1)
   1050 #    define LZO_SIZEOF_SHORT        1
   1051 #  elif (__LZO_LSR(USHRT_MAX,15) == 1)
   1052 #    define LZO_SIZEOF_SHORT        2
   1053 #  elif (__LZO_LSR(USHRT_MAX,31) == 1)
   1054 #    define LZO_SIZEOF_SHORT        4
   1055 #  elif (__LZO_LSR(USHRT_MAX,63) == 1)
   1056 #    define LZO_SIZEOF_SHORT        8
   1057 #  elif (__LZO_LSR(USHRT_MAX,127) == 1)
   1058 #    define LZO_SIZEOF_SHORT        16
   1059 #  else
   1060 #    error "LZO_SIZEOF_SHORT"
   1061 #  endif
   1062 #endif
   1063 #if !defined(LZO_SIZEOF_INT)
   1064 #  if (LZO_ARCH_CRAY_PVP)
   1065 #    define LZO_SIZEOF_INT          8
   1066 #  elif (UINT_MAX == LZO_0xffffL)
   1067 #    define LZO_SIZEOF_INT          2
   1068 #  elif (UINT_MAX == LZO_0xffffffffL)
   1069 #    define LZO_SIZEOF_INT          4
   1070 #  elif (__LZO_LSR(UINT_MAX,7) == 1)
   1071 #    define LZO_SIZEOF_INT          1
   1072 #  elif (__LZO_LSR(UINT_MAX,15) == 1)
   1073 #    define LZO_SIZEOF_INT          2
   1074 #  elif (__LZO_LSR(UINT_MAX,31) == 1)
   1075 #    define LZO_SIZEOF_INT          4
   1076 #  elif (__LZO_LSR(UINT_MAX,63) == 1)
   1077 #    define LZO_SIZEOF_INT          8
   1078 #  elif (__LZO_LSR(UINT_MAX,127) == 1)
   1079 #    define LZO_SIZEOF_INT          16
   1080 #  else
   1081 #    error "LZO_SIZEOF_INT"
   1082 #  endif
   1083 #endif
   1084 #if !defined(LZO_SIZEOF_LONG)
   1085 #  if (ULONG_MAX == LZO_0xffffffffL)
   1086 #    define LZO_SIZEOF_LONG         4
   1087 #  elif (__LZO_LSR(ULONG_MAX,7) == 1)
   1088 #    define LZO_SIZEOF_LONG         1
   1089 #  elif (__LZO_LSR(ULONG_MAX,15) == 1)
   1090 #    define LZO_SIZEOF_LONG         2
   1091 #  elif (__LZO_LSR(ULONG_MAX,31) == 1)
   1092 #    define LZO_SIZEOF_LONG         4
   1093 #  elif (__LZO_LSR(ULONG_MAX,63) == 1)
   1094 #    define LZO_SIZEOF_LONG         8
   1095 #  elif (__LZO_LSR(ULONG_MAX,127) == 1)
   1096 #    define LZO_SIZEOF_LONG         16
   1097 #  else
   1098 #    error "LZO_SIZEOF_LONG"
   1099 #  endif
   1100 #endif
   1101 #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64)
   1102 #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8)
   1103 #  if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__)
   1104 #    if (LZO_CC_GNUC >= 0x030300ul)
   1105 #      if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0)
   1106 #        define LZO_SIZEOF_LONG_LONG      LZO_SIZEOF_LONG
   1107 #      elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1)
   1108 #        define LZO_SIZEOF_LONG_LONG      4
   1109 #      endif
   1110 #    endif
   1111 #  endif
   1112 #endif
   1113 #endif
   1114 #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64)
   1115 #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8)
   1116 #if (LZO_ARCH_I086 && LZO_CC_DMC)
   1117 #elif (LZO_CC_CILLY) && defined(__GNUC__)
   1118 #  define LZO_SIZEOF_LONG_LONG      8
   1119 #elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1120 #  define LZO_SIZEOF_LONG_LONG      8
   1121 #elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400))
   1122 #  define LZO_SIZEOF_LONG_LONG      8
   1123 #elif (LZO_OS_WIN64 || defined(_WIN64))
   1124 #  define LZO_SIZEOF___INT64        8
   1125 #elif (LZO_ARCH_I386 && (LZO_CC_DMC))
   1126 #  define LZO_SIZEOF_LONG_LONG      8
   1127 #elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700)))
   1128 #  define LZO_SIZEOF_LONG_LONG      8
   1129 #elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__)))
   1130 #  define LZO_SIZEOF_LONG_LONG      8
   1131 #elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC))
   1132 #  define LZO_SIZEOF_LONG_LONG      8
   1133 #elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC))
   1134 #  define LZO_SIZEOF___INT64        8
   1135 #elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC))
   1136 #  define LZO_SIZEOF___INT64        8
   1137 #elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520)))
   1138 #  define LZO_SIZEOF___INT64        8
   1139 #elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100)))
   1140 #  define LZO_SIZEOF___INT64        8
   1141 #elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64))
   1142 #  define LZO_SIZEOF___INT64        8
   1143 #elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
   1144 #  define LZO_SIZEOF_LONG_LONG      8
   1145 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
   1146 #  define LZO_SIZEOF_LONG_LONG      8
   1147 #elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2)
   1148 #elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
   1149 #  define LZO_SIZEOF_LONG_LONG      8
   1150 #endif
   1151 #endif
   1152 #endif
   1153 #if defined(__cplusplus) && (LZO_CC_GNUC)
   1154 #  if (LZO_CC_GNUC < 0x020800ul)
   1155 #    undef LZO_SIZEOF_LONG_LONG
   1156 #  endif
   1157 #endif
   1158 #if (LZO_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG)
   1159 #  undef LZO_SIZEOF_LONG_LONG
   1160 #endif
   1161 #if !defined(LZO_SIZEOF_VOID_P)
   1162 #if (LZO_ARCH_I086)
   1163 #  define __LZO_WORDSIZE            2
   1164 #  if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM)
   1165 #    define LZO_SIZEOF_VOID_P       2
   1166 #  elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE)
   1167 #    define LZO_SIZEOF_VOID_P       4
   1168 #  else
   1169 #    error "LZO_MM"
   1170 #  endif
   1171 #elif (LZO_ARCH_AVR || LZO_ARCH_Z80)
   1172 #  define __LZO_WORDSIZE            1
   1173 #  define LZO_SIZEOF_VOID_P         2
   1174 #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430)
   1175 #  define LZO_SIZEOF_VOID_P         2
   1176 #elif (LZO_ARCH_H8300)
   1177 #  if defined(__NORMAL_MODE__)
   1178 #    define __LZO_WORDSIZE          4
   1179 #    define LZO_SIZEOF_VOID_P       2
   1180 #  elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
   1181 #    define __LZO_WORDSIZE          4
   1182 #    define LZO_SIZEOF_VOID_P       4
   1183 #  else
   1184 #    define __LZO_WORDSIZE          2
   1185 #    define LZO_SIZEOF_VOID_P       2
   1186 #  endif
   1187 #  if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4)
   1188 #    define LZO_SIZEOF_SIZE_T       LZO_SIZEOF_INT
   1189 #    define LZO_SIZEOF_PTRDIFF_T    LZO_SIZEOF_INT
   1190 #  endif
   1191 #elif (LZO_ARCH_M16C)
   1192 #  define __LZO_WORDSIZE            2
   1193 #  if defined(__m32c_cpu__) || defined(__m32cm_cpu__)
   1194 #    define LZO_SIZEOF_VOID_P       4
   1195 #  else
   1196 #    define LZO_SIZEOF_VOID_P       2
   1197 #  endif
   1198 #elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
   1199 #  define __LZO_WORDSIZE            8
   1200 #  define LZO_SIZEOF_VOID_P         4
   1201 #elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
   1202 #  define __LZO_WORDSIZE            8
   1203 #  define LZO_SIZEOF_VOID_P         8
   1204 #elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
   1205 #  define LZO_SIZEOF_VOID_P         LZO_SIZEOF_LONG
   1206 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_LONG
   1207 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_LONG
   1208 #elif (LZO_OS_OS400 || defined(__OS400__))
   1209 #  define __LZO_WORDSIZE            LZO_SIZEOF_LONG
   1210 #  define LZO_SIZEOF_VOID_P         16
   1211 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_LONG
   1212 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_LONG
   1213 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
   1214 #  define LZO_SIZEOF_VOID_P         8
   1215 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_LONG
   1216 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_LONG
   1217 #elif (LZO_ARCH_SPU)
   1218 # if 0
   1219 #  define __LZO_WORDSIZE            16
   1220 # endif
   1221 #  define LZO_SIZEOF_VOID_P         4
   1222 #else
   1223 #  define LZO_SIZEOF_VOID_P         LZO_SIZEOF_LONG
   1224 #endif
   1225 #endif
   1226 #if !defined(LZO_WORDSIZE)
   1227 #  if defined(__LZO_WORDSIZE)
   1228 #    define LZO_WORDSIZE            __LZO_WORDSIZE
   1229 #  else
   1230 #    define LZO_WORDSIZE            LZO_SIZEOF_VOID_P
   1231 #  endif
   1232 #endif
   1233 #if !defined(LZO_SIZEOF_SIZE_T)
   1234 #if (LZO_ARCH_I086 || LZO_ARCH_M16C)
   1235 #  define LZO_SIZEOF_SIZE_T         2
   1236 #else
   1237 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_VOID_P
   1238 #endif
   1239 #endif
   1240 #if !defined(LZO_SIZEOF_PTRDIFF_T)
   1241 #if (LZO_ARCH_I086)
   1242 #  if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE)
   1243 #    define LZO_SIZEOF_PTRDIFF_T    LZO_SIZEOF_VOID_P
   1244 #  elif (LZO_MM_COMPACT || LZO_MM_LARGE)
   1245 #    if (LZO_CC_BORLANDC || LZO_CC_TURBOC)
   1246 #      define LZO_SIZEOF_PTRDIFF_T  4
   1247 #    else
   1248 #      define LZO_SIZEOF_PTRDIFF_T  2
   1249 #    endif
   1250 #  else
   1251 #    error "LZO_MM"
   1252 #  endif
   1253 #else
   1254 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_SIZE_T
   1255 #endif
   1256 #endif
   1257 #if (LZO_ABI_NEUTRAL_ENDIAN)
   1258 #  undef LZO_ABI_BIG_ENDIAN
   1259 #  undef LZO_ABI_LITTLE_ENDIAN
   1260 #elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN)
   1261 #if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP)
   1262 #  define LZO_ABI_BIG_ENDIAN        1
   1263 #elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64)
   1264 #  define LZO_ABI_LITTLE_ENDIAN     1
   1265 #elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430)
   1266 #  define LZO_ABI_LITTLE_ENDIAN     1
   1267 #elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390)
   1268 #  define LZO_ABI_BIG_ENDIAN        1
   1269 #elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__)
   1270 #  if (__LITTLE_ENDIAN__ == 1)
   1271 #    define LZO_ABI_LITTLE_ENDIAN   1
   1272 #  else
   1273 #    define LZO_ABI_BIG_ENDIAN      1
   1274 #  endif
   1275 #elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
   1276 #  define LZO_ABI_BIG_ENDIAN        1
   1277 #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
   1278 #  define LZO_ABI_LITTLE_ENDIAN     1
   1279 #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
   1280 #  define LZO_ABI_BIG_ENDIAN        1
   1281 #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
   1282 #  define LZO_ABI_LITTLE_ENDIAN     1
   1283 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
   1284 #  define LZO_ABI_BIG_ENDIAN        1
   1285 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
   1286 #  define LZO_ABI_LITTLE_ENDIAN     1
   1287 #endif
   1288 #endif
   1289 #if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN)
   1290 #  error "this should not happen"
   1291 #endif
   1292 #if (LZO_ABI_BIG_ENDIAN)
   1293 #  define LZO_INFO_ABI_ENDIAN       "be"
   1294 #elif (LZO_ABI_LITTLE_ENDIAN)
   1295 #  define LZO_INFO_ABI_ENDIAN       "le"
   1296 #elif (LZO_ABI_NEUTRAL_ENDIAN)
   1297 #  define LZO_INFO_ABI_ENDIAN       "neutral"
   1298 #endif
   1299 #if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2)
   1300 #  define LZO_ABI_I8LP16         1
   1301 #  define LZO_INFO_ABI_PM       "i8lp16"
   1302 #elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2)
   1303 #  define LZO_ABI_ILP16         1
   1304 #  define LZO_INFO_ABI_PM       "ilp16"
   1305 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4)
   1306 #  define LZO_ABI_ILP32         1
   1307 #  define LZO_INFO_ABI_PM       "ilp32"
   1308 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8)
   1309 #  define LZO_ABI_LLP64         1
   1310 #  define LZO_INFO_ABI_PM       "llp64"
   1311 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8)
   1312 #  define LZO_ABI_LP64          1
   1313 #  define LZO_INFO_ABI_PM       "lp64"
   1314 #elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8)
   1315 #  define LZO_ABI_ILP64         1
   1316 #  define LZO_INFO_ABI_PM       "ilp64"
   1317 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4)
   1318 #  define LZO_ABI_IP32L64       1
   1319 #  define LZO_INFO_ABI_PM       "ip32l64"
   1320 #endif
   1321 #if !defined(__LZO_LIBC_OVERRIDE)
   1322 #if (LZO_LIBC_NAKED)
   1323 #  define LZO_INFO_LIBC         "naked"
   1324 #elif (LZO_LIBC_FREESTANDING)
   1325 #  define LZO_INFO_LIBC         "freestanding"
   1326 #elif (LZO_LIBC_MOSTLY_FREESTANDING)
   1327 #  define LZO_INFO_LIBC         "mfreestanding"
   1328 #elif (LZO_LIBC_ISOC90)
   1329 #  define LZO_INFO_LIBC         "isoc90"
   1330 #elif (LZO_LIBC_ISOC99)
   1331 #  define LZO_INFO_LIBC         "isoc99"
   1332 #elif defined(__dietlibc__)
   1333 #  define LZO_LIBC_DIETLIBC     1
   1334 #  define LZO_INFO_LIBC         "dietlibc"
   1335 #elif defined(_NEWLIB_VERSION)
   1336 #  define LZO_LIBC_NEWLIB       1
   1337 #  define LZO_INFO_LIBC         "newlib"
   1338 #elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__)
   1339 #  if defined(__UCLIBC_SUBLEVEL__)
   1340 #    define LZO_LIBC_UCLIBC     (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__)
   1341 #  else
   1342 #    define LZO_LIBC_UCLIBC     0x00090bL
   1343 #  endif
   1344 #  define LZO_INFO_LIBC         "uclibc"
   1345 #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__)
   1346 #  define LZO_LIBC_GLIBC        (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100)
   1347 #  define LZO_INFO_LIBC         "glibc"
   1348 #elif (LZO_CC_MWERKS) && defined(__MSL__)
   1349 #  define LZO_LIBC_MSL          __MSL__
   1350 #  define LZO_INFO_LIBC         "msl"
   1351 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
   1352 #  define LZO_LIBC_ISOC90       1
   1353 #  define LZO_INFO_LIBC         "isoc90"
   1354 #else
   1355 #  define LZO_LIBC_DEFAULT      1
   1356 #  define LZO_INFO_LIBC         "default"
   1357 #endif
   1358 #endif
   1359 #if !defined(__lzo_gnuc_extension__)
   1360 #if (LZO_CC_GNUC >= 0x020800ul)
   1361 #  define __lzo_gnuc_extension__    __extension__
   1362 #elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1363 #  define __lzo_gnuc_extension__    __extension__
   1364 #else
   1365 #  define __lzo_gnuc_extension__    /*empty*/
   1366 #endif
   1367 #endif
   1368 #if !defined(__lzo_ua_volatile)
   1369 #  define __lzo_ua_volatile     volatile
   1370 #endif
   1371 #if !defined(__lzo_alignof)
   1372 #if (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
   1373 #  define __lzo_alignof(e)      __alignof__(e)
   1374 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700))
   1375 #  define __lzo_alignof(e)      __alignof__(e)
   1376 #elif (LZO_CC_MSC && (_MSC_VER >= 1300))
   1377 #  define __lzo_alignof(e)      __alignof(e)
   1378 #elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100))
   1379 #  define __lzo_alignof(e)      __alignof__(e)
   1380 #endif
   1381 #endif
   1382 #if defined(__lzo_alignof)
   1383 #  define __lzo_HAVE_alignof 1
   1384 #endif
   1385 #if !defined(__lzo_constructor)
   1386 #if (LZO_CC_GNUC >= 0x030400ul)
   1387 #  define __lzo_constructor     __attribute__((__constructor__,__used__))
   1388 #elif (LZO_CC_GNUC >= 0x020700ul)
   1389 #  define __lzo_constructor     __attribute__((__constructor__))
   1390 #elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1391 #  define __lzo_constructor     __attribute__((__constructor__))
   1392 #endif
   1393 #endif
   1394 #if defined(__lzo_constructor)
   1395 #  define __lzo_HAVE_constructor 1
   1396 #endif
   1397 #if !defined(__lzo_destructor)
   1398 #if (LZO_CC_GNUC >= 0x030400ul)
   1399 #  define __lzo_destructor      __attribute__((__destructor__,__used__))
   1400 #elif (LZO_CC_GNUC >= 0x020700ul)
   1401 #  define __lzo_destructor      __attribute__((__destructor__))
   1402 #elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1403 #  define __lzo_destructor      __attribute__((__destructor__))
   1404 #endif
   1405 #endif
   1406 #if defined(__lzo_destructor)
   1407 #  define __lzo_HAVE_destructor 1
   1408 #endif
   1409 #if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor)
   1410 #  error "this should not happen"
   1411 #endif
   1412 #if !defined(__lzo_inline)
   1413 #if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295))
   1414 #elif defined(__cplusplus)
   1415 #  define __lzo_inline          inline
   1416 #elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
   1417 #  define __lzo_inline          __inline
   1418 #elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
   1419 #  define __lzo_inline          __inline__
   1420 #elif (LZO_CC_DMC)
   1421 #  define __lzo_inline          __inline
   1422 #elif (LZO_CC_INTELC)
   1423 #  define __lzo_inline          __inline
   1424 #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405))
   1425 #  define __lzo_inline          __inline
   1426 #elif (LZO_CC_MSC && (_MSC_VER >= 900))
   1427 #  define __lzo_inline          __inline
   1428 #elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100))
   1429 #  define __lzo_inline          __inline__
   1430 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
   1431 #  define __lzo_inline          inline
   1432 #endif
   1433 #endif
   1434 #if defined(__lzo_inline)
   1435 #  define __lzo_HAVE_inline 1
   1436 #else
   1437 #  define __lzo_inline          /*empty*/
   1438 #endif
   1439 #if !defined(__lzo_forceinline)
   1440 #if (LZO_CC_GNUC >= 0x030200ul)
   1441 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
   1442 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC)
   1443 #  define __lzo_forceinline     __forceinline
   1444 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC)
   1445 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
   1446 #elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1447 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
   1448 #elif (LZO_CC_MSC && (_MSC_VER >= 1200))
   1449 #  define __lzo_forceinline     __forceinline
   1450 #elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100))
   1451 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
   1452 #endif
   1453 #endif
   1454 #if defined(__lzo_forceinline)
   1455 #  define __lzo_HAVE_forceinline 1
   1456 #else
   1457 #  define __lzo_forceinline     /*empty*/
   1458 #endif
   1459 #if !defined(__lzo_noinline)
   1460 #if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul)
   1461 #  define __lzo_noinline        __attribute__((__noinline__,__used__))
   1462 #elif (LZO_CC_GNUC >= 0x030200ul)
   1463 #  define __lzo_noinline        __attribute__((__noinline__))
   1464 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_MSC)
   1465 #  define __lzo_noinline        __declspec(noinline)
   1466 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC)
   1467 #  define __lzo_noinline        __attribute__((__noinline__))
   1468 #elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1469 #  define __lzo_noinline        __attribute__((__noinline__))
   1470 #elif (LZO_CC_MSC && (_MSC_VER >= 1300))
   1471 #  define __lzo_noinline        __declspec(noinline)
   1472 #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x3200) && (LZO_OS_WIN32 || LZO_OS_WIN64))
   1473 #  if defined(__cplusplus)
   1474 #  else
   1475 #    define __lzo_noinline      __declspec(noinline)
   1476 #  endif
   1477 #elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100))
   1478 #  define __lzo_noinline        __attribute__((__noinline__))
   1479 #endif
   1480 #endif
   1481 #if defined(__lzo_noinline)
   1482 #  define __lzo_HAVE_noinline 1
   1483 #else
   1484 #  define __lzo_noinline        /*empty*/
   1485 #endif
   1486 #if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline)
   1487 #  error "this should not happen"
   1488 #endif
   1489 #if !defined(__lzo_noreturn)
   1490 #if (LZO_CC_GNUC >= 0x020700ul)
   1491 #  define __lzo_noreturn        __attribute__((__noreturn__))
   1492 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC)
   1493 #  define __lzo_noreturn        __declspec(noreturn)
   1494 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC)
   1495 #  define __lzo_noreturn        __attribute__((__noreturn__))
   1496 #elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1497 #  define __lzo_noreturn        __attribute__((__noreturn__))
   1498 #elif (LZO_CC_MSC && (_MSC_VER >= 1200))
   1499 #  define __lzo_noreturn        __declspec(noreturn)
   1500 #endif
   1501 #endif
   1502 #if defined(__lzo_noreturn)
   1503 #  define __lzo_HAVE_noreturn 1
   1504 #else
   1505 #  define __lzo_noreturn        /*empty*/
   1506 #endif
   1507 #if !defined(__lzo_nothrow)
   1508 #if (LZO_CC_GNUC >= 0x030300ul)
   1509 #  define __lzo_nothrow         __attribute__((__nothrow__))
   1510 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) && defined(__cplusplus)
   1511 #  define __lzo_nothrow         __declspec(nothrow)
   1512 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 900) && LZO_CC_SYNTAX_GNUC)
   1513 #  define __lzo_nothrow         __attribute__((__nothrow__))
   1514 #elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1515 #  define __lzo_nothrow         __attribute__((__nothrow__))
   1516 #elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
   1517 #  define __lzo_nothrow         __declspec(nothrow)
   1518 #endif
   1519 #endif
   1520 #if defined(__lzo_nothrow)
   1521 #  define __lzo_HAVE_nothrow 1
   1522 #else
   1523 #  define __lzo_nothrow         /*empty*/
   1524 #endif
   1525 #if !defined(__lzo_restrict)
   1526 #if (LZO_CC_GNUC >= 0x030400ul)
   1527 #  define __lzo_restrict        __restrict__
   1528 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC)
   1529 #  define __lzo_restrict        __restrict__
   1530 #elif (LZO_CC_CLANG || LZO_CC_LLVM)
   1531 #  define __lzo_restrict        __restrict__
   1532 #elif (LZO_CC_MSC && (_MSC_VER >= 1400))
   1533 #  define __lzo_restrict        __restrict
   1534 #endif
   1535 #endif
   1536 #if defined(__lzo_restrict)
   1537 #  define __lzo_HAVE_restrict 1
   1538 #else
   1539 #  define __lzo_restrict        /*empty*/
   1540 #endif
   1541 #if !defined(__lzo_likely) && !defined(__lzo_unlikely)
   1542 #if (LZO_CC_GNUC >= 0x030200ul)
   1543 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
   1544 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
   1545 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800))
   1546 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
   1547 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
   1548 #elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1549 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
   1550 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
   1551 #endif
   1552 #endif
   1553 #if defined(__lzo_likely)
   1554 #  define __lzo_HAVE_likely 1
   1555 #else
   1556 #  define __lzo_likely(e)       (e)
   1557 #endif
   1558 #if defined(__lzo_unlikely)
   1559 #  define __lzo_HAVE_unlikely 1
   1560 #else
   1561 #  define __lzo_unlikely(e)     (e)
   1562 #endif
   1563 #if !defined(LZO_UNUSED)
   1564 #  if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
   1565 #    define LZO_UNUSED(var)         ((void) &var)
   1566 #  elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC)
   1567 #    define LZO_UNUSED(var)         if (&var) ; else
   1568 #  elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1569 #    define LZO_UNUSED(var)         ((void) var)
   1570 #  elif (LZO_CC_MSC && (_MSC_VER < 900))
   1571 #    define LZO_UNUSED(var)         if (&var) ; else
   1572 #  elif (LZO_CC_KEILC)
   1573 #    define LZO_UNUSED(var)         {extern int __lzo_unused[1-2*!(sizeof(var)>0)];}
   1574 #  elif (LZO_CC_PACIFICC)
   1575 #    define LZO_UNUSED(var)         ((void) sizeof(var))
   1576 #  elif (LZO_CC_WATCOMC) && defined(__cplusplus)
   1577 #    define LZO_UNUSED(var)         ((void) var)
   1578 #  else
   1579 #    define LZO_UNUSED(var)         ((void) &var)
   1580 #  endif
   1581 #endif
   1582 #if !defined(LZO_UNUSED_FUNC)
   1583 #  if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
   1584 #    define LZO_UNUSED_FUNC(func)   ((void) func)
   1585 #  elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC)
   1586 #    define LZO_UNUSED_FUNC(func)   if (func) ; else
   1587 #  elif (LZO_CC_CLANG || LZO_CC_LLVM)
   1588 #    define LZO_UNUSED_FUNC(func)   ((void) &func)
   1589 #  elif (LZO_CC_MSC && (_MSC_VER < 900))
   1590 #    define LZO_UNUSED_FUNC(func)   if (func) ; else
   1591 #  elif (LZO_CC_MSC)
   1592 #    define LZO_UNUSED_FUNC(func)   ((void) &func)
   1593 #  elif (LZO_CC_KEILC || LZO_CC_PELLESC)
   1594 #    define LZO_UNUSED_FUNC(func)   {extern int __lzo_unused[1-2*!(sizeof((int)func)>0)];}
   1595 #  else
   1596 #    define LZO_UNUSED_FUNC(func)   ((void) func)
   1597 #  endif
   1598 #endif
   1599 #if !defined(LZO_UNUSED_LABEL)
   1600 #  if (LZO_CC_WATCOMC) && defined(__cplusplus)
   1601 #    define LZO_UNUSED_LABEL(l)     switch(0) case 1:goto l
   1602 #  elif (LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC)
   1603 #    define LZO_UNUSED_LABEL(l)     if (0) goto l
   1604 #  else
   1605 #    define LZO_UNUSED_LABEL(l)     switch(0) case 1:goto l
   1606 #  endif
   1607 #endif
   1608 #if !defined(LZO_DEFINE_UNINITIALIZED_VAR)
   1609 #  if 0
   1610 #    define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var
   1611 #  elif 0 && (LZO_CC_GNUC)
   1612 #    define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var = var
   1613 #  else
   1614 #    define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var = init
   1615 #  endif
   1616 #endif
   1617 #if !defined(LZO_UNCONST_CAST)
   1618 #  if 0 && defined(__cplusplus)
   1619 #    define LZO_UNCONST_CAST(t,e)   (const_cast<t> (e))
   1620 #  elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
   1621 #    define LZO_UNCONST_CAST(t,e)   ((t) ((void *) ((char *) ((lzo_uintptr_t) ((const void *) (e))))))
   1622 #  else
   1623 #    define LZO_UNCONST_CAST(t,e)   ((t) ((void *) ((char *) ((const void *) (e)))))
   1624 #  endif
   1625 #endif
   1626 #if !defined(LZO_COMPILE_TIME_ASSERT_HEADER)
   1627 #  if (LZO_CC_AZTECC || LZO_CC_ZORTECHC)
   1628 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  extern int __lzo_cta[1-!(e)];
   1629 #  elif (LZO_CC_DMC || LZO_CC_SYMANTECC)
   1630 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  extern int __lzo_cta[1u-2*!(e)];
   1631 #  elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295))
   1632 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  extern int __lzo_cta[1-!(e)];
   1633 #  else
   1634 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  extern int __lzo_cta[1-2*!(e)];
   1635 #  endif
   1636 #endif
   1637 #if !defined(LZO_COMPILE_TIME_ASSERT)
   1638 #  if (LZO_CC_AZTECC)
   1639 #    define LZO_COMPILE_TIME_ASSERT(e)  {typedef int __lzo_cta_t[1-!(e)];}
   1640 #  elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
   1641 #    define LZO_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
   1642 #  elif (LZO_CC_MSC && (_MSC_VER < 900))
   1643 #    define LZO_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
   1644 #  elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295))
   1645 #    define LZO_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
   1646 #  else
   1647 #    define LZO_COMPILE_TIME_ASSERT(e)  {typedef int __lzo_cta_t[1-2*!(e)];}
   1648 #  endif
   1649 #endif
   1650 #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)
   1651 #  if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC)
   1652 #  elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
   1653 #    define __lzo_cdecl                 __cdecl
   1654 #    define __lzo_cdecl_atexit          /*empty*/
   1655 #    define __lzo_cdecl_main            __cdecl
   1656 #    if (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC))
   1657 #      define __lzo_cdecl_qsort         __pascal
   1658 #    elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC))
   1659 #      define __lzo_cdecl_qsort         _stdcall
   1660 #    else
   1661 #      define __lzo_cdecl_qsort         __cdecl
   1662 #    endif
   1663 #  elif (LZO_CC_WATCOMC)
   1664 #    define __lzo_cdecl                 __cdecl
   1665 #  else
   1666 #    define __lzo_cdecl                 __cdecl
   1667 #    define __lzo_cdecl_atexit          __cdecl
   1668 #    define __lzo_cdecl_main            __cdecl
   1669 #    define __lzo_cdecl_qsort           __cdecl
   1670 #  endif
   1671 #  if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC || LZO_CC_WATCOMC)
   1672 #  elif (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC))
   1673 #    define __lzo_cdecl_sighandler      __pascal
   1674 #  elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC))
   1675 #    define __lzo_cdecl_sighandler      _stdcall
   1676 #  elif (LZO_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
   1677 #    define __lzo_cdecl_sighandler      __clrcall
   1678 #  elif (LZO_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
   1679 #    if defined(_DLL)
   1680 #      define __lzo_cdecl_sighandler    _far _cdecl _loadds
   1681 #    elif defined(_MT)
   1682 #      define __lzo_cdecl_sighandler    _far _cdecl
   1683 #    else
   1684 #      define __lzo_cdecl_sighandler    _cdecl
   1685 #    endif
   1686 #  else
   1687 #    define __lzo_cdecl_sighandler      __cdecl
   1688 #  endif
   1689 #elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC)
   1690 #  define __lzo_cdecl                   __cdecl
   1691 #elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC))
   1692 #  define __lzo_cdecl                   cdecl
   1693 #endif
   1694 #if !defined(__lzo_cdecl)
   1695 #  define __lzo_cdecl                   /*empty*/
   1696 #endif
   1697 #if !defined(__lzo_cdecl_atexit)
   1698 #  define __lzo_cdecl_atexit            /*empty*/
   1699 #endif
   1700 #if !defined(__lzo_cdecl_main)
   1701 #  define __lzo_cdecl_main              /*empty*/
   1702 #endif
   1703 #if !defined(__lzo_cdecl_qsort)
   1704 #  define __lzo_cdecl_qsort             /*empty*/
   1705 #endif
   1706 #if !defined(__lzo_cdecl_sighandler)
   1707 #  define __lzo_cdecl_sighandler        /*empty*/
   1708 #endif
   1709 #if !defined(__lzo_cdecl_va)
   1710 #  define __lzo_cdecl_va                __lzo_cdecl
   1711 #endif
   1712 #if !(LZO_CFG_NO_WINDOWS_H)
   1713 #if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64)
   1714 #  if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000))
   1715 #  elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__)
   1716 #  elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul)))
   1717 #  else
   1718 #    define LZO_HAVE_WINDOWS_H 1
   1719 #  endif
   1720 #endif
   1721 #endif
   1722 #if (LZO_ARCH_ALPHA)
   1723 #  define LZO_OPT_AVOID_UINT_INDEX  1
   1724 #  define LZO_OPT_AVOID_SHORT       1
   1725 #  define LZO_OPT_AVOID_USHORT      1
   1726 #elif (LZO_ARCH_AMD64)
   1727 #  define LZO_OPT_AVOID_INT_INDEX   1
   1728 #  define LZO_OPT_AVOID_UINT_INDEX  1
   1729 #  define LZO_OPT_UNALIGNED16       1
   1730 #  define LZO_OPT_UNALIGNED32       1
   1731 #  define LZO_OPT_UNALIGNED64       1
   1732 #elif (LZO_ARCH_ARM && LZO_ARCH_ARM_THUMB)
   1733 #elif (LZO_ARCH_ARM)
   1734 #  define LZO_OPT_AVOID_SHORT       1
   1735 #  define LZO_OPT_AVOID_USHORT      1
   1736 #elif (LZO_ARCH_CRIS)
   1737 #  define LZO_OPT_UNALIGNED16       1
   1738 #  define LZO_OPT_UNALIGNED32       1
   1739 #elif (LZO_ARCH_I386)
   1740 #  define LZO_OPT_UNALIGNED16       1
   1741 #  define LZO_OPT_UNALIGNED32       1
   1742 #elif (LZO_ARCH_IA64)
   1743 #  define LZO_OPT_AVOID_INT_INDEX   1
   1744 #  define LZO_OPT_AVOID_UINT_INDEX  1
   1745 #  define LZO_OPT_PREFER_POSTINC    1
   1746 #elif (LZO_ARCH_M68K)
   1747 #  define LZO_OPT_PREFER_POSTINC    1
   1748 #  define LZO_OPT_PREFER_PREDEC     1
   1749 #  if defined(__mc68020__) && !defined(__mcoldfire__)
   1750 #    define LZO_OPT_UNALIGNED16     1
   1751 #    define LZO_OPT_UNALIGNED32     1
   1752 #  endif
   1753 #elif (LZO_ARCH_MIPS)
   1754 #  define LZO_OPT_AVOID_UINT_INDEX  1
   1755 #elif (LZO_ARCH_POWERPC)
   1756 #  define LZO_OPT_PREFER_PREINC     1
   1757 #  define LZO_OPT_PREFER_PREDEC     1
   1758 #  if (LZO_ABI_BIG_ENDIAN)
   1759 #    define LZO_OPT_UNALIGNED16     1
   1760 #    define LZO_OPT_UNALIGNED32     1
   1761 #  endif
   1762 #elif (LZO_ARCH_S390)
   1763 #  define LZO_OPT_UNALIGNED16       1
   1764 #  define LZO_OPT_UNALIGNED32       1
   1765 #  if (LZO_SIZEOF_SIZE_T == 8)
   1766 #    define LZO_OPT_UNALIGNED64     1
   1767 #  endif
   1768 #elif (LZO_ARCH_SH)
   1769 #  define LZO_OPT_PREFER_POSTINC    1
   1770 #  define LZO_OPT_PREFER_PREDEC     1
   1771 #endif
   1772 #ifndef LZO_CFG_NO_INLINE_ASM
   1773 #if (LZO_CC_LLVM)
   1774 #  define LZO_CFG_NO_INLINE_ASM 1
   1775 #endif
   1776 #endif
   1777 #ifndef LZO_CFG_NO_UNALIGNED
   1778 #if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC)
   1779 #  define LZO_CFG_NO_UNALIGNED 1
   1780 #endif
   1781 #endif
   1782 #if (LZO_CFG_NO_UNALIGNED)
   1783 #  undef LZO_OPT_UNALIGNED16
   1784 #  undef LZO_OPT_UNALIGNED32
   1785 #  undef LZO_OPT_UNALIGNED64
   1786 #endif
   1787 #if (LZO_CFG_NO_INLINE_ASM)
   1788 #elif (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC))
   1789 #  define LZO_ASM_SYNTAX_MSC 1
   1790 #elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC))
   1791 #elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul))
   1792 #elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE))
   1793 #  define LZO_ASM_SYNTAX_GNUC 1
   1794 #elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE))
   1795 #  define LZO_ASM_SYNTAX_GNUC 1
   1796 #endif
   1797 #if (LZO_ASM_SYNTAX_GNUC)
   1798 #if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul))
   1799 #  define __LZO_ASM_CLOBBER         "ax"
   1800 #elif (LZO_CC_INTELC)
   1801 #  define __LZO_ASM_CLOBBER         "memory"
   1802 #else
   1803 #  define __LZO_ASM_CLOBBER         "cc", "memory"
   1804 #endif
   1805 #endif
   1806 #if defined(__LZO_INFOSTR_MM)
   1807 #elif (LZO_MM_FLAT) && (defined(__LZO_INFOSTR_PM) || defined(LZO_INFO_ABI_PM))
   1808 #  define __LZO_INFOSTR_MM          ""
   1809 #elif defined(LZO_INFO_MM)
   1810 #  define __LZO_INFOSTR_MM          "." LZO_INFO_MM
   1811 #else
   1812 #  define __LZO_INFOSTR_MM          ""
   1813 #endif
   1814 #if defined(__LZO_INFOSTR_PM)
   1815 #elif defined(LZO_INFO_ABI_PM)
   1816 #  define __LZO_INFOSTR_PM          "." LZO_INFO_ABI_PM
   1817 #else
   1818 #  define __LZO_INFOSTR_PM          ""
   1819 #endif
   1820 #if defined(__LZO_INFOSTR_ENDIAN)
   1821 #elif defined(LZO_INFO_ABI_ENDIAN)
   1822 #  define __LZO_INFOSTR_ENDIAN      "." LZO_INFO_ABI_ENDIAN
   1823 #else
   1824 #  define __LZO_INFOSTR_ENDIAN      ""
   1825 #endif
   1826 #if defined(__LZO_INFOSTR_OSNAME)
   1827 #elif defined(LZO_INFO_OS_CONSOLE)
   1828 #  define __LZO_INFOSTR_OSNAME      LZO_INFO_OS "." LZO_INFO_OS_CONSOLE
   1829 #elif defined(LZO_INFO_OS_POSIX)
   1830 #  define __LZO_INFOSTR_OSNAME      LZO_INFO_OS "." LZO_INFO_OS_POSIX
   1831 #else
   1832 #  define __LZO_INFOSTR_OSNAME      LZO_INFO_OS
   1833 #endif
   1834 #if defined(__LZO_INFOSTR_LIBC)
   1835 #elif defined(LZO_INFO_LIBC)
   1836 #  define __LZO_INFOSTR_LIBC        "." LZO_INFO_LIBC
   1837 #else
   1838 #  define __LZO_INFOSTR_LIBC        ""
   1839 #endif
   1840 #if defined(__LZO_INFOSTR_CCVER)
   1841 #elif defined(LZO_INFO_CCVER)
   1842 #  define __LZO_INFOSTR_CCVER       " " LZO_INFO_CCVER
   1843 #else
   1844 #  define __LZO_INFOSTR_CCVER       ""
   1845 #endif
   1846 #define LZO_INFO_STRING \
   1847     LZO_INFO_ARCH __LZO_INFOSTR_MM __LZO_INFOSTR_PM __LZO_INFOSTR_ENDIAN \
   1848     " " __LZO_INFOSTR_OSNAME __LZO_INFOSTR_LIBC " " LZO_INFO_CC __LZO_INFOSTR_CCVER
   1849 
   1850 #endif /* already included */
   1851 
   1852 /* vim:set ts=4 et: */
   1853