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