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@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