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