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) 1996-2017 Markus Franz Xaver Johannes Oberhumer
6    All Rights Reserved.
7 
8    The LZO library is free software; you can redistribute it and/or
9    modify it under the terms of the GNU General Public License as
10    published by the Free Software Foundation; either version 2 of
11    the License, or (at your option) any later version.
12 
13    The LZO library is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with the LZO library; see the file COPYING.
20    If not, write to the Free Software Foundation, Inc.,
21    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 
23    Markus F.X.J. Oberhumer
24    <markus@oberhumer.com>
25    http://www.oberhumer.com/opensource/lzo/
26  */
27 
28 
29 #ifndef __LZODEFS_H_INCLUDED
30 #define __LZODEFS_H_INCLUDED 1
31 
32 #include <limits.h>
33 
34 #if defined(__CYGWIN32__) && !defined(__CYGWIN__)
35 #  define __CYGWIN__ __CYGWIN32__
36 #endif
37 #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE)
38 #  define _ALL_SOURCE 1
39 #endif
40 #if defined(__mips__) && defined(__R5900__)
41 #  if !defined(__LONG_MAX__)
42 #    define __LONG_MAX__ 9223372036854775807L
43 #  endif
44 #endif
45 #if 0
46 #elif !defined(__LZO_LANG_OVERRIDE)
47 #if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__)
48 #  if (__ASSEMBLER__+0) <= 0
49 #    error "__ASSEMBLER__"
50 #  else
51 #    define LZO_LANG_ASSEMBLER  1
52 #  endif
53 #elif defined(__cplusplus)
54 #  if (__cplusplus+0) <= 0
55 #    error "__cplusplus"
56 #  elif (__cplusplus < 199711L)
57 #    define LZO_LANG_CXX        1
58 #  elif defined(_MSC_VER) && defined(_MSVC_LANG) && (_MSVC_LANG+0 >= 201402L) && 1
59 #    define LZO_LANG_CXX        _MSVC_LANG
60 #  else
61 #    define LZO_LANG_CXX        __cplusplus
62 #  endif
63 #  define LZO_LANG_CPLUSPLUS    LZO_LANG_CXX
64 #else
65 #  if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L)
66 #    define LZO_LANG_C          __STDC_VERSION__
67 #  else
68 #    define LZO_LANG_C          1
69 #  endif
70 #endif
71 #endif
72 #if !defined(LZO_CFG_NO_DISABLE_WUNDEF)
73 #if defined(__ARMCC_VERSION)
74 #  pragma diag_suppress 193
75 #elif defined(__clang__) && defined(__clang_minor__)
76 #  pragma clang diagnostic ignored "-Wundef"
77 #elif defined(__INTEL_COMPILER)
78 #  pragma warning(disable: 193)
79 #elif defined(__KEIL__) && defined(__C166__)
80 #  pragma warning disable = 322
81 #elif defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__PATHSCALE__)
82 #  if ((__GNUC__-0) >= 5 || ((__GNUC__-0) == 4 && (__GNUC_MINOR__-0) >= 2))
83 #    pragma GCC diagnostic ignored "-Wundef"
84 #  endif
85 #elif defined(_MSC_VER) && !defined(__clang__) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
86 #  if ((_MSC_VER-0) >= 1300)
87 #    pragma warning(disable: 4668)
88 #  endif
89 #endif
90 #endif
91 #if 0 && defined(__POCC__) && defined(_WIN32)
92 #  if (__POCC__ >= 400)
93 #    pragma warn(disable: 2216)
94 #  endif
95 #endif
96 #if 0 && defined(__WATCOMC__)
97 #  if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060)
98 #    pragma warning 203 9
99 #  endif
100 #endif
101 #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__)
102 #  pragma option -h
103 #endif
104 #if !(LZO_CFG_NO_DISABLE_WCRTNONSTDC)
105 #ifndef _CRT_NONSTDC_NO_DEPRECATE
106 #define _CRT_NONSTDC_NO_DEPRECATE 1
107 #endif
108 #ifndef _CRT_NONSTDC_NO_WARNINGS
109 #define _CRT_NONSTDC_NO_WARNINGS 1
110 #endif
111 #ifndef _CRT_SECURE_NO_DEPRECATE
112 #define _CRT_SECURE_NO_DEPRECATE 1
113 #endif
114 #ifndef _CRT_SECURE_NO_WARNINGS
115 #define _CRT_SECURE_NO_WARNINGS 1
116 #endif
117 #endif
118 #if 0
119 #define LZO_0xffffUL            0xfffful
120 #define LZO_0xffffffffUL        0xfffffffful
121 #else
122 #define LZO_0xffffUL            65535ul
123 #define LZO_0xffffffffUL        4294967295ul
124 #endif
125 #define LZO_0xffffL             LZO_0xffffUL
126 #define LZO_0xffffffffL         LZO_0xffffffffUL
127 #if (LZO_0xffffL == LZO_0xffffffffL)
128 #  error "your preprocessor is broken 1"
129 #endif
130 #if (16ul * 16384ul != 262144ul)
131 #  error "your preprocessor is broken 2"
132 #endif
133 #if 0
134 #if (32767 >= 4294967295ul)
135 #  error "your preprocessor is broken 3"
136 #endif
137 #if (65535u >= 4294967295ul)
138 #  error "your preprocessor is broken 4"
139 #endif
140 #endif
141 #if defined(__COUNTER__)
142 #  ifndef LZO_CFG_USE_COUNTER
143 #  define LZO_CFG_USE_COUNTER 1
144 #  endif
145 #else
146 #  undef LZO_CFG_USE_COUNTER
147 #endif
148 #if (UINT_MAX == LZO_0xffffL)
149 #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)
150 #  if !defined(MSDOS)
151 #    define MSDOS 1
152 #  endif
153 #  if !defined(_MSDOS)
154 #    define _MSDOS 1
155 #  endif
156 #elif 0 && defined(__VERSION) && defined(MB_LEN_MAX)
157 #  if (__VERSION == 520) && (MB_LEN_MAX == 1)
158 #    if !defined(__AZTEC_C__)
159 #      define __AZTEC_C__ __VERSION
160 #    endif
161 #    if !defined(__DOS__)
162 #      define __DOS__ 1
163 #    endif
164 #  endif
165 #endif
166 #endif
167 #if (UINT_MAX == LZO_0xffffL)
168 #if defined(_MSC_VER) && defined(M_I86HM)
169 #  define ptrdiff_t long
170 #  define _PTRDIFF_T_DEFINED 1
171 #endif
172 #endif
173 #if (UINT_MAX == LZO_0xffffL)
174 #  undef __LZO_RENAME_A
175 #  undef __LZO_RENAME_B
176 #  if defined(__AZTEC_C__) && defined(__DOS__)
177 #    define __LZO_RENAME_A 1
178 #  elif defined(_MSC_VER) && defined(MSDOS)
179 #    if (_MSC_VER < 600)
180 #      define __LZO_RENAME_A 1
181 #    elif (_MSC_VER < 700)
182 #      define __LZO_RENAME_B 1
183 #    endif
184 #  elif defined(__TSC__) && defined(__OS2__)
185 #    define __LZO_RENAME_A 1
186 #  elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410)
187 #    define __LZO_RENAME_A 1
188 #  elif defined(__PACIFIC__) && defined(DOS)
189 #    if !defined(__far)
190 #      define __far far
191 #    endif
192 #    if !defined(__near)
193 #      define __near near
194 #    endif
195 #  endif
196 #  if defined(__LZO_RENAME_A)
197 #    if !defined(__cdecl)
198 #      define __cdecl cdecl
199 #    endif
200 #    if !defined(__far)
201 #      define __far far
202 #    endif
203 #    if !defined(__huge)
204 #      define __huge huge
205 #    endif
206 #    if !defined(__near)
207 #      define __near near
208 #    endif
209 #    if !defined(__pascal)
210 #      define __pascal pascal
211 #    endif
212 #    if !defined(__huge)
213 #      define __huge huge
214 #    endif
215 #  elif defined(__LZO_RENAME_B)
216 #    if !defined(__cdecl)
217 #      define __cdecl _cdecl
218 #    endif
219 #    if !defined(__far)
220 #      define __far _far
221 #    endif
222 #    if !defined(__huge)
223 #      define __huge _huge
224 #    endif
225 #    if !defined(__near)
226 #      define __near _near
227 #    endif
228 #    if !defined(__pascal)
229 #      define __pascal _pascal
230 #    endif
231 #  elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
232 #    if !defined(__cdecl)
233 #      define __cdecl cdecl
234 #    endif
235 #    if !defined(__pascal)
236 #      define __pascal pascal
237 #    endif
238 #  endif
239 #  undef __LZO_RENAME_A
240 #  undef __LZO_RENAME_B
241 #endif
242 #if (UINT_MAX == LZO_0xffffL)
243 #if defined(__AZTEC_C__) && defined(__DOS__)
244 #  define LZO_BROKEN_CDECL_ALT_SYNTAX 1
245 #elif defined(_MSC_VER) && defined(MSDOS)
246 #  if (_MSC_VER < 600)
247 #    define LZO_BROKEN_INTEGRAL_CONSTANTS 1
248 #  endif
249 #  if (_MSC_VER < 700)
250 #    define LZO_BROKEN_INTEGRAL_PROMOTION 1
251 #    define LZO_BROKEN_SIZEOF 1
252 #  endif
253 #elif defined(__PACIFIC__) && defined(DOS)
254 #  define LZO_BROKEN_INTEGRAL_CONSTANTS 1
255 #elif defined(__TURBOC__) && defined(__MSDOS__)
256 #  if (__TURBOC__ < 0x0150)
257 #    define LZO_BROKEN_CDECL_ALT_SYNTAX 1
258 #    define LZO_BROKEN_INTEGRAL_CONSTANTS 1
259 #    define LZO_BROKEN_INTEGRAL_PROMOTION 1
260 #  endif
261 #  if (__TURBOC__ < 0x0200)
262 #    define LZO_BROKEN_SIZEOF 1
263 #  endif
264 #  if (__TURBOC__ < 0x0400) && defined(__cplusplus)
265 #    define LZO_BROKEN_CDECL_ALT_SYNTAX 1
266 #  endif
267 #elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
268 #  define LZO_BROKEN_CDECL_ALT_SYNTAX 1
269 #  define LZO_BROKEN_SIZEOF 1
270 #endif
271 #endif
272 #if defined(__WATCOMC__) && (__WATCOMC__ < 900)
273 #  define LZO_BROKEN_INTEGRAL_CONSTANTS 1
274 #endif
275 #if defined(_CRAY) && defined(_CRAY1)
276 #  define LZO_BROKEN_SIGNED_RIGHT_SHIFT 1
277 #endif
278 #define LZO_PP_STRINGIZE(x)             #x
279 #define LZO_PP_MACRO_EXPAND(x)          LZO_PP_STRINGIZE(x)
280 #define LZO_PP_CONCAT0()                /*empty*/
281 #define LZO_PP_CONCAT1(a)               a
282 #define LZO_PP_CONCAT2(a,b)             a ## b
283 #define LZO_PP_CONCAT3(a,b,c)           a ## b ## c
284 #define LZO_PP_CONCAT4(a,b,c,d)         a ## b ## c ## d
285 #define LZO_PP_CONCAT5(a,b,c,d,e)       a ## b ## c ## d ## e
286 #define LZO_PP_CONCAT6(a,b,c,d,e,f)     a ## b ## c ## d ## e ## f
287 #define LZO_PP_CONCAT7(a,b,c,d,e,f,g)   a ## b ## c ## d ## e ## f ## g
288 #define LZO_PP_ECONCAT0()               LZO_PP_CONCAT0()
289 #define LZO_PP_ECONCAT1(a)              LZO_PP_CONCAT1(a)
290 #define LZO_PP_ECONCAT2(a,b)            LZO_PP_CONCAT2(a,b)
291 #define LZO_PP_ECONCAT3(a,b,c)          LZO_PP_CONCAT3(a,b,c)
292 #define LZO_PP_ECONCAT4(a,b,c,d)        LZO_PP_CONCAT4(a,b,c,d)
293 #define LZO_PP_ECONCAT5(a,b,c,d,e)      LZO_PP_CONCAT5(a,b,c,d,e)
294 #define LZO_PP_ECONCAT6(a,b,c,d,e,f)    LZO_PP_CONCAT6(a,b,c,d,e,f)
295 #define LZO_PP_ECONCAT7(a,b,c,d,e,f,g)  LZO_PP_CONCAT7(a,b,c,d,e,f,g)
296 #define LZO_PP_EMPTY                    /*empty*/
297 #define LZO_PP_EMPTY0()                 /*empty*/
298 #define LZO_PP_EMPTY1(a)                /*empty*/
299 #define LZO_PP_EMPTY2(a,b)              /*empty*/
300 #define LZO_PP_EMPTY3(a,b,c)            /*empty*/
301 #define LZO_PP_EMPTY4(a,b,c,d)          /*empty*/
302 #define LZO_PP_EMPTY5(a,b,c,d,e)        /*empty*/
303 #define LZO_PP_EMPTY6(a,b,c,d,e,f)      /*empty*/
304 #define LZO_PP_EMPTY7(a,b,c,d,e,f,g)    /*empty*/
305 #if 1
306 #define LZO_CPP_STRINGIZE(x)            #x
307 #define LZO_CPP_MACRO_EXPAND(x)         LZO_CPP_STRINGIZE(x)
308 #define LZO_CPP_CONCAT2(a,b)            a ## b
309 #define LZO_CPP_CONCAT3(a,b,c)          a ## b ## c
310 #define LZO_CPP_CONCAT4(a,b,c,d)        a ## b ## c ## d
311 #define LZO_CPP_CONCAT5(a,b,c,d,e)      a ## b ## c ## d ## e
312 #define LZO_CPP_CONCAT6(a,b,c,d,e,f)    a ## b ## c ## d ## e ## f
313 #define LZO_CPP_CONCAT7(a,b,c,d,e,f,g)  a ## b ## c ## d ## e ## f ## g
314 #define LZO_CPP_ECONCAT2(a,b)           LZO_CPP_CONCAT2(a,b)
315 #define LZO_CPP_ECONCAT3(a,b,c)         LZO_CPP_CONCAT3(a,b,c)
316 #define LZO_CPP_ECONCAT4(a,b,c,d)       LZO_CPP_CONCAT4(a,b,c,d)
317 #define LZO_CPP_ECONCAT5(a,b,c,d,e)     LZO_CPP_CONCAT5(a,b,c,d,e)
318 #define LZO_CPP_ECONCAT6(a,b,c,d,e,f)   LZO_CPP_CONCAT6(a,b,c,d,e,f)
319 #define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g)
320 #endif
321 #define __LZO_MASK_GEN(o,b)     (((((o) << ((b)-((b)!=0))) - (o)) << 1) + (o)*((b)!=0))
322 #if 1 && defined(__cplusplus)
323 #  if !defined(__STDC_CONSTANT_MACROS)
324 #    define __STDC_CONSTANT_MACROS 1
325 #  endif
326 #  if !defined(__STDC_LIMIT_MACROS)
327 #    define __STDC_LIMIT_MACROS 1
328 #  endif
329 #endif
330 #if defined(__cplusplus)
331 #  define LZO_EXTERN_C          extern "C"
332 #  define LZO_EXTERN_C_BEGIN    extern "C" {
333 #  define LZO_EXTERN_C_END      }
334 #else
335 #  define LZO_EXTERN_C          extern
336 #  define LZO_EXTERN_C_BEGIN    /*empty*/
337 #  define LZO_EXTERN_C_END      /*empty*/
338 #endif
339 #if !defined(__LZO_OS_OVERRIDE)
340 #if (LZO_OS_FREESTANDING)
341 #  define LZO_INFO_OS           "freestanding"
342 #elif (LZO_OS_EMBEDDED)
343 #  define LZO_INFO_OS           "embedded"
344 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
345 #  define LZO_OS_EMBEDDED       1
346 #  define LZO_INFO_OS           "embedded"
347 #elif defined(__CYGWIN__) && defined(__GNUC__)
348 #  define LZO_OS_CYGWIN         1
349 #  define LZO_INFO_OS           "cygwin"
350 #elif defined(__EMX__) && defined(__GNUC__)
351 #  define LZO_OS_EMX            1
352 #  define LZO_INFO_OS           "emx"
353 #elif defined(__BEOS__)
354 #  define LZO_OS_BEOS           1
355 #  define LZO_INFO_OS           "beos"
356 #elif defined(__Lynx__)
357 #  define LZO_OS_LYNXOS         1
358 #  define LZO_INFO_OS           "lynxos"
359 #elif defined(__OS400__)
360 #  define LZO_OS_OS400          1
361 #  define LZO_INFO_OS           "os400"
362 #elif defined(__QNX__)
363 #  define LZO_OS_QNX            1
364 #  define LZO_INFO_OS           "qnx"
365 #elif defined(__BORLANDC__) && defined(__DPMI32__) && (__BORLANDC__ >= 0x0460)
366 #  define LZO_OS_DOS32          1
367 #  define LZO_INFO_OS           "dos32"
368 #elif defined(__BORLANDC__) && defined(__DPMI16__)
369 #  define LZO_OS_DOS16          1
370 #  define LZO_INFO_OS           "dos16"
371 #elif defined(__ZTC__) && defined(DOS386)
372 #  define LZO_OS_DOS32          1
373 #  define LZO_INFO_OS           "dos32"
374 #elif defined(__OS2__) || defined(__OS2V2__)
375 #  if (UINT_MAX == LZO_0xffffL)
376 #    define LZO_OS_OS216        1
377 #    define LZO_INFO_OS         "os216"
378 #  elif (UINT_MAX == LZO_0xffffffffL)
379 #    define LZO_OS_OS2          1
380 #    define LZO_INFO_OS         "os2"
381 #  else
382 #    error "check your limits.h header"
383 #  endif
384 #elif defined(__WIN64__) || defined(_WIN64) || defined(WIN64)
385 #  define LZO_OS_WIN64          1
386 #  define LZO_INFO_OS           "win64"
387 #elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS_386__)
388 #  define LZO_OS_WIN32          1
389 #  define LZO_INFO_OS           "win32"
390 #elif defined(__MWERKS__) && defined(__INTEL__)
391 #  define LZO_OS_WIN32          1
392 #  define LZO_INFO_OS           "win32"
393 #elif defined(__WINDOWS__) || defined(_WINDOWS) || defined(_Windows)
394 #  if (UINT_MAX == LZO_0xffffL)
395 #    define LZO_OS_WIN16        1
396 #    define LZO_INFO_OS         "win16"
397 #  elif (UINT_MAX == LZO_0xffffffffL)
398 #    define LZO_OS_WIN32        1
399 #    define LZO_INFO_OS         "win32"
400 #  else
401 #    error "check your limits.h header"
402 #  endif
403 #elif defined(__DOS__) || defined(__MSDOS__) || defined(_MSDOS) || defined(MSDOS) || (defined(__PACIFIC__) && defined(DOS))
404 #  if (UINT_MAX == LZO_0xffffL)
405 #    define LZO_OS_DOS16        1
406 #    define LZO_INFO_OS         "dos16"
407 #  elif (UINT_MAX == LZO_0xffffffffL)
408 #    define LZO_OS_DOS32        1
409 #    define LZO_INFO_OS         "dos32"
410 #  else
411 #    error "check your limits.h header"
412 #  endif
413 #elif defined(__WATCOMC__)
414 #  if defined(__NT__) && (UINT_MAX == LZO_0xffffL)
415 #    define LZO_OS_DOS16        1
416 #    define LZO_INFO_OS         "dos16"
417 #  elif defined(__NT__) && (__WATCOMC__ < 1100)
418 #    define LZO_OS_WIN32        1
419 #    define LZO_INFO_OS         "win32"
420 #  elif defined(__linux__) || defined(__LINUX__)
421 #    define LZO_OS_POSIX        1
422 #    define LZO_INFO_OS         "posix"
423 #  else
424 #    error "please specify a target using the -bt compiler option"
425 #  endif
426 #elif defined(__palmos__)
427 #  define LZO_OS_PALMOS         1
428 #  define LZO_INFO_OS           "palmos"
429 #elif defined(__TOS__) || defined(__atarist__)
430 #  define LZO_OS_TOS            1
431 #  define LZO_INFO_OS           "tos"
432 #elif defined(macintosh) && !defined(__arm__) && !defined(__i386__) && !defined(__ppc__) && !defined(__x64_64__)
433 #  define LZO_OS_MACCLASSIC     1
434 #  define LZO_INFO_OS           "macclassic"
435 #elif defined(__VMS)
436 #  define LZO_OS_VMS            1
437 #  define LZO_INFO_OS           "vms"
438 #elif (defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)
439 #  define LZO_OS_CONSOLE        1
440 #  define LZO_OS_CONSOLE_PS2    1
441 #  define LZO_INFO_OS           "console"
442 #  define LZO_INFO_OS_CONSOLE   "ps2"
443 #elif defined(__mips__) && defined(__psp__)
444 #  define LZO_OS_CONSOLE        1
445 #  define LZO_OS_CONSOLE_PSP    1
446 #  define LZO_INFO_OS           "console"
447 #  define LZO_INFO_OS_CONSOLE   "psp"
448 #else
449 #  define LZO_OS_POSIX          1
450 #  define LZO_INFO_OS           "posix"
451 #endif
452 #if (LZO_OS_POSIX)
453 #  if defined(_AIX) || defined(__AIX__) || defined(__aix__)
454 #    define LZO_OS_POSIX_AIX        1
455 #    define LZO_INFO_OS_POSIX       "aix"
456 #  elif defined(__FreeBSD__)
457 #    define LZO_OS_POSIX_FREEBSD    1
458 #    define LZO_INFO_OS_POSIX       "freebsd"
459 #  elif defined(__hpux__) || defined(__hpux)
460 #    define LZO_OS_POSIX_HPUX       1
461 #    define LZO_INFO_OS_POSIX       "hpux"
462 #  elif defined(__INTERIX)
463 #    define LZO_OS_POSIX_INTERIX    1
464 #    define LZO_INFO_OS_POSIX       "interix"
465 #  elif defined(__IRIX__) || defined(__irix__)
466 #    define LZO_OS_POSIX_IRIX       1
467 #    define LZO_INFO_OS_POSIX       "irix"
468 #  elif defined(__linux__) || defined(__linux) || defined(__LINUX__)
469 #    define LZO_OS_POSIX_LINUX      1
470 #    define LZO_INFO_OS_POSIX       "linux"
471 #  elif defined(__APPLE__) && defined(__MACH__)
472 #    if ((__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__-0) >= 20000)
473 #      define LZO_OS_POSIX_DARWIN     1040
474 #      define LZO_INFO_OS_POSIX       "darwin_iphone"
475 #    elif ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) >= 1040)
476 #      define LZO_OS_POSIX_DARWIN     __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
477 #      define LZO_INFO_OS_POSIX       "darwin"
478 #    else
479 #      define LZO_OS_POSIX_DARWIN     1
480 #      define LZO_INFO_OS_POSIX       "darwin"
481 #    endif
482 #    define LZO_OS_POSIX_MACOSX     LZO_OS_POSIX_DARWIN
483 #  elif defined(__minix__) || defined(__minix)
484 #    define LZO_OS_POSIX_MINIX      1
485 #    define LZO_INFO_OS_POSIX       "minix"
486 #  elif defined(__NetBSD__)
487 #    define LZO_OS_POSIX_NETBSD     1
488 #    define LZO_INFO_OS_POSIX       "netbsd"
489 #  elif defined(__OpenBSD__)
490 #    define LZO_OS_POSIX_OPENBSD    1
491 #    define LZO_INFO_OS_POSIX       "openbsd"
492 #  elif defined(__osf__)
493 #    define LZO_OS_POSIX_OSF        1
494 #    define LZO_INFO_OS_POSIX       "osf"
495 #  elif defined(__solaris__) || defined(__sun)
496 #    if defined(__SVR4) || defined(__svr4__)
497 #      define LZO_OS_POSIX_SOLARIS  1
498 #      define LZO_INFO_OS_POSIX     "solaris"
499 #    else
500 #      define LZO_OS_POSIX_SUNOS    1
501 #      define LZO_INFO_OS_POSIX     "sunos"
502 #    endif
503 #  elif defined(__ultrix__) || defined(__ultrix)
504 #    define LZO_OS_POSIX_ULTRIX     1
505 #    define LZO_INFO_OS_POSIX       "ultrix"
506 #  elif defined(_UNICOS)
507 #    define LZO_OS_POSIX_UNICOS     1
508 #    define LZO_INFO_OS_POSIX       "unicos"
509 #  else
510 #    define LZO_OS_POSIX_UNKNOWN    1
511 #    define LZO_INFO_OS_POSIX       "unknown"
512 #  endif
513 #endif
514 #endif
515 #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
516 #  if (UINT_MAX != LZO_0xffffL)
517 #    error "unexpected configuration - check your compiler defines"
518 #  endif
519 #  if (ULONG_MAX != LZO_0xffffffffL)
520 #    error "unexpected configuration - check your compiler defines"
521 #  endif
522 #endif
523 #if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32 || LZO_OS_WIN64)
524 #  if (UINT_MAX != LZO_0xffffffffL)
525 #    error "unexpected configuration - check your compiler defines"
526 #  endif
527 #  if (ULONG_MAX != LZO_0xffffffffL)
528 #    error "unexpected configuration - check your compiler defines"
529 #  endif
530 #endif
531 #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__)
532 #  define LZO_CC_CILLY          1
533 #  define LZO_INFO_CC           "Cilly"
534 #  if defined(__CILLY__)
535 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__CILLY__)
536 #  else
537 #    define LZO_INFO_CCVER      "unknown"
538 #  endif
539 #elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__)
540 #  define LZO_CC_SDCC           1
541 #  define LZO_INFO_CC           "sdcc"
542 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(SDCC)
543 #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
544 #  define LZO_CC_PATHSCALE      (__PATHCC__ * 0x10000L + (__PATHCC_MINOR__-0) * 0x100 + (__PATHCC_PATCHLEVEL__-0))
545 #  define LZO_INFO_CC           "Pathscale C"
546 #  define LZO_INFO_CCVER        __PATHSCALE__
547 #  if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
548 #    define LZO_CC_PATHSCALE_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
549 #  endif
550 #elif defined(__INTEL_COMPILER) && ((__INTEL_COMPILER-0) > 0)
551 #  define LZO_CC_INTELC         __INTEL_COMPILER
552 #  define LZO_INFO_CC           "Intel C"
553 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__INTEL_COMPILER)
554 #  if defined(_MSC_VER) && ((_MSC_VER-0) > 0)
555 #    define LZO_CC_INTELC_MSC   _MSC_VER
556 #  elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
557 #    define LZO_CC_INTELC_GNUC   (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
558 #  endif
559 #elif defined(__POCC__) && defined(_WIN32)
560 #  define LZO_CC_PELLESC        1
561 #  define LZO_INFO_CC           "Pelles C"
562 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__POCC__)
563 #elif defined(__ARMCC_VERSION) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
564 #  if defined(__GNUC_PATCHLEVEL__)
565 #    define LZO_CC_ARMCC_GNUC   (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
566 #  else
567 #    define LZO_CC_ARMCC_GNUC   (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100)
568 #  endif
569 #  define LZO_CC_ARMCC          __ARMCC_VERSION
570 #  define LZO_INFO_CC           "ARM C Compiler"
571 #  define LZO_INFO_CCVER        __VERSION__
572 #elif defined(__clang__) && defined(__c2__) && defined(__c2_version__) && defined(_MSC_VER)
573 #  define LZO_CC_CLANG          (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
574 #  define LZO_CC_CLANG_C2       _MSC_VER
575 #  define LZO_CC_CLANG_VENDOR_MICROSOFT 1
576 #  define LZO_INFO_CC           "clang/c2"
577 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__c2_version__)
578 #elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__)
579 #  if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__)
580 #    define LZO_CC_CLANG        (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
581 #  else
582 #    define LZO_CC_CLANG        0x010000L
583 #  endif
584 #  if defined(_MSC_VER) && ((_MSC_VER-0) > 0)
585 #    define LZO_CC_CLANG_MSC    _MSC_VER
586 #  elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
587 #    define LZO_CC_CLANG_GNUC   (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
588 #  endif
589 #  if defined(__APPLE_CC__)
590 #    define LZO_CC_CLANG_VENDOR_APPLE 1
591 #    define LZO_INFO_CC         "clang/apple"
592 #  else
593 #    define LZO_CC_CLANG_VENDOR_LLVM 1
594 #    define LZO_INFO_CC         "clang"
595 #  endif
596 #  if defined(__clang_version__)
597 #    define LZO_INFO_CCVER      __clang_version__
598 #  else
599 #    define LZO_INFO_CCVER      __VERSION__
600 #  endif
601 #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
602 #  if defined(__GNUC_PATCHLEVEL__)
603 #    define LZO_CC_LLVM_GNUC    (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
604 #  else
605 #    define LZO_CC_LLVM_GNUC    (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100)
606 #  endif
607 #  define LZO_CC_LLVM           LZO_CC_LLVM_GNUC
608 #  define LZO_INFO_CC           "llvm-gcc"
609 #  define LZO_INFO_CCVER        __VERSION__
610 #elif defined(__ACK__) && defined(_ACK)
611 #  define LZO_CC_ACK            1
612 #  define LZO_INFO_CC           "Amsterdam Compiler Kit C"
613 #  define LZO_INFO_CCVER        "unknown"
614 #elif defined(__ARMCC_VERSION) && !defined(__GNUC__)
615 #  define LZO_CC_ARMCC          __ARMCC_VERSION
616 #  define LZO_CC_ARMCC_ARMCC    __ARMCC_VERSION
617 #  define LZO_INFO_CC           "ARM C Compiler"
618 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__ARMCC_VERSION)
619 #elif defined(__AZTEC_C__)
620 #  define LZO_CC_AZTECC         1
621 #  define LZO_INFO_CC           "Aztec C"
622 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__AZTEC_C__)
623 #elif defined(__CODEGEARC__)
624 #  define LZO_CC_CODEGEARC      1
625 #  define LZO_INFO_CC           "CodeGear C"
626 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__CODEGEARC__)
627 #elif defined(__BORLANDC__)
628 #  define LZO_CC_BORLANDC       1
629 #  define LZO_INFO_CC           "Borland C"
630 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__BORLANDC__)
631 #elif defined(_CRAYC) && defined(_RELEASE)
632 #  define LZO_CC_CRAYC          1
633 #  define LZO_INFO_CC           "Cray C"
634 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(_RELEASE)
635 #elif defined(__DMC__) && defined(__SC__)
636 #  define LZO_CC_DMC            1
637 #  define LZO_INFO_CC           "Digital Mars C"
638 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__DMC__)
639 #elif defined(__DECC)
640 #  define LZO_CC_DECC           1
641 #  define LZO_INFO_CC           "DEC C"
642 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__DECC)
643 #elif (defined(__ghs) || defined(__ghs__)) && defined(__GHS_VERSION_NUMBER) && ((__GHS_VERSION_NUMBER-0) > 0)
644 #  define LZO_CC_GHS            1
645 #  define LZO_INFO_CC           "Green Hills C"
646 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__GHS_VERSION_NUMBER)
647 #  if defined(_MSC_VER) && ((_MSC_VER-0) > 0)
648 #    define LZO_CC_GHS_MSC      _MSC_VER
649 #  elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
650 #    define LZO_CC_GHS_GNUC     (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
651 #  endif
652 #elif defined(__HIGHC__)
653 #  define LZO_CC_HIGHC          1
654 #  define LZO_INFO_CC           "MetaWare High C"
655 #  define LZO_INFO_CCVER        "unknown"
656 #elif defined(__HP_aCC) && ((__HP_aCC-0) > 0)
657 #  define LZO_CC_HPACC          __HP_aCC
658 #  define LZO_INFO_CC           "HP aCC"
659 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__HP_aCC)
660 #elif defined(__IAR_SYSTEMS_ICC__)
661 #  define LZO_CC_IARC           1
662 #  define LZO_INFO_CC           "IAR C"
663 #  if defined(__VER__)
664 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__VER__)
665 #  else
666 #    define LZO_INFO_CCVER      "unknown"
667 #  endif
668 #elif defined(__IBMC__) && ((__IBMC__-0) > 0)
669 #  define LZO_CC_IBMC           __IBMC__
670 #  define LZO_INFO_CC           "IBM C"
671 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__IBMC__)
672 #elif defined(__IBMCPP__) && ((__IBMCPP__-0) > 0)
673 #  define LZO_CC_IBMC           __IBMCPP__
674 #  define LZO_INFO_CC           "IBM C"
675 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__IBMCPP__)
676 #elif defined(__KEIL__) && defined(__C166__)
677 #  define LZO_CC_KEILC          1
678 #  define LZO_INFO_CC           "Keil C"
679 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__C166__)
680 #elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL)
681 #  define LZO_CC_LCCWIN32       1
682 #  define LZO_INFO_CC           "lcc-win32"
683 #  define LZO_INFO_CCVER        "unknown"
684 #elif defined(__LCC__)
685 #  define LZO_CC_LCC            1
686 #  define LZO_INFO_CC           "lcc"
687 #  if defined(__LCC_VERSION__)
688 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__LCC_VERSION__)
689 #  else
690 #    define LZO_INFO_CCVER      "unknown"
691 #  endif
692 #elif defined(__MWERKS__) && ((__MWERKS__-0) > 0)
693 #  define LZO_CC_MWERKS         __MWERKS__
694 #  define LZO_INFO_CC           "Metrowerks C"
695 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__MWERKS__)
696 #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
697 #  define LZO_CC_NDPC           1
698 #  define LZO_INFO_CC           "Microway NDP C"
699 #  define LZO_INFO_CCVER        "unknown"
700 #elif defined(__PACIFIC__)
701 #  define LZO_CC_PACIFICC       1
702 #  define LZO_INFO_CC           "Pacific C"
703 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__PACIFIC__)
704 #elif defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__)
705 #  if defined(__PGIC_PATCHLEVEL__)
706 #    define LZO_CC_PGI          (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100 + (__PGIC_PATCHLEVEL__-0))
707 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) "." LZO_PP_MACRO_EXPAND(__PGIC_PATCHLEVEL__)
708 #  else
709 #    define LZO_CC_PGI          (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100)
710 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) ".0"
711 #  endif
712 #  define LZO_INFO_CC           "Portland Group PGI C"
713 #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
714 #  define LZO_CC_PGI            1
715 #  define LZO_INFO_CC           "Portland Group PGI C"
716 #  define LZO_INFO_CCVER        "unknown"
717 #elif defined(__PUREC__) && defined(__TOS__)
718 #  define LZO_CC_PUREC          1
719 #  define LZO_INFO_CC           "Pure C"
720 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__PUREC__)
721 #elif defined(__SC__) && defined(__ZTC__)
722 #  define LZO_CC_SYMANTECC      1
723 #  define LZO_INFO_CC           "Symantec C"
724 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__SC__)
725 #elif defined(__SUNPRO_C)
726 #  define LZO_INFO_CC           "SunPro C"
727 #  if ((__SUNPRO_C-0) > 0)
728 #    define LZO_CC_SUNPROC      __SUNPRO_C
729 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__SUNPRO_C)
730 #  else
731 #    define LZO_CC_SUNPROC      1
732 #    define LZO_INFO_CCVER      "unknown"
733 #  endif
734 #elif defined(__SUNPRO_CC)
735 #  define LZO_INFO_CC           "SunPro C"
736 #  if ((__SUNPRO_CC-0) > 0)
737 #    define LZO_CC_SUNPROC      __SUNPRO_CC
738 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__SUNPRO_CC)
739 #  else
740 #    define LZO_CC_SUNPROC      1
741 #    define LZO_INFO_CCVER      "unknown"
742 #  endif
743 #elif defined(__TINYC__)
744 #  define LZO_CC_TINYC          1
745 #  define LZO_INFO_CC           "Tiny C"
746 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__TINYC__)
747 #elif defined(__TSC__)
748 #  define LZO_CC_TOPSPEEDC      1
749 #  define LZO_INFO_CC           "TopSpeed C"
750 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__TSC__)
751 #elif defined(__WATCOMC__)
752 #  define LZO_CC_WATCOMC        1
753 #  define LZO_INFO_CC           "Watcom C"
754 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__WATCOMC__)
755 #elif defined(__TURBOC__)
756 #  define LZO_CC_TURBOC         1
757 #  define LZO_INFO_CC           "Turbo C"
758 #  define LZO_INFO_CCVER        LZO_PP_MACRO_EXPAND(__TURBOC__)
759 #elif defined(__ZTC__)
760 #  define LZO_CC_ZORTECHC       1
761 #  define LZO_INFO_CC           "Zortech C"
762 #  if ((__ZTC__-0) == 0x310)
763 #    define LZO_INFO_CCVER      "0x310"
764 #  else
765 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(__ZTC__)
766 #  endif
767 #elif defined(__GNUC__) && defined(__VERSION__)
768 #  if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
769 #    define LZO_CC_GNUC         (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
770 #  elif defined(__GNUC_MINOR__)
771 #    define LZO_CC_GNUC         (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100)
772 #  else
773 #    define LZO_CC_GNUC         (__GNUC__ * 0x10000L)
774 #  endif
775 #  define LZO_INFO_CC           "gcc"
776 #  define LZO_INFO_CCVER        __VERSION__
777 #elif defined(_MSC_VER) && ((_MSC_VER-0) > 0)
778 #  define LZO_CC_MSC            _MSC_VER
779 #  define LZO_INFO_CC           "Microsoft C"
780 #  if defined(_MSC_FULL_VER)
781 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER)
782 #  else
783 #    define LZO_INFO_CCVER      LZO_PP_MACRO_EXPAND(_MSC_VER)
784 #  endif
785 #else
786 #  define LZO_CC_UNKNOWN        1
787 #  define LZO_INFO_CC           "unknown"
788 #  define LZO_INFO_CCVER        "unknown"
789 #endif
790 #if (LZO_CC_GNUC) && defined(__OPEN64__)
791 #  if defined(__OPENCC__) && defined(__OPENCC_MINOR__) && defined(__OPENCC_PATCHLEVEL__)
792 #    define LZO_CC_OPEN64       (__OPENCC__ * 0x10000L + (__OPENCC_MINOR__-0) * 0x100 + (__OPENCC_PATCHLEVEL__-0))
793 #    define LZO_CC_OPEN64_GNUC  LZO_CC_GNUC
794 #  endif
795 #endif
796 #if (LZO_CC_GNUC) && defined(__PCC__)
797 #  if defined(__PCC__) && defined(__PCC_MINOR__) && defined(__PCC_MINORMINOR__)
798 #    define LZO_CC_PCC          (__PCC__ * 0x10000L + (__PCC_MINOR__-0) * 0x100 + (__PCC_MINORMINOR__-0))
799 #    define LZO_CC_PCC_GNUC     LZO_CC_GNUC
800 #  endif
801 #endif
802 #if 0 && (LZO_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER)
803 #  error "LZO_CC_MSC: _MSC_FULL_VER is not defined"
804 #endif
805 #if !defined(__LZO_ARCH_OVERRIDE) && !(LZO_ARCH_GENERIC) && defined(_CRAY)
806 #  if (UINT_MAX > LZO_0xffffffffL) && defined(_CRAY)
807 #    if defined(_CRAYMPP) || defined(_CRAYT3D) || defined(_CRAYT3E)
808 #      define LZO_ARCH_CRAY_MPP     1
809 #    elif defined(_CRAY1)
810 #      define LZO_ARCH_CRAY_PVP     1
811 #    endif
812 #  endif
813 #endif
814 #if !defined(__LZO_ARCH_OVERRIDE)
815 #if (LZO_ARCH_GENERIC)
816 #  define LZO_INFO_ARCH             "generic"
817 #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
818 #  define LZO_ARCH_I086             1
819 #  define LZO_INFO_ARCH             "i086"
820 #elif defined(__aarch64__) || defined(_M_ARM64)
821 #  define LZO_ARCH_ARM64            1
822 #  define LZO_INFO_ARCH             "arm64"
823 #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
824 #  define LZO_ARCH_ALPHA            1
825 #  define LZO_INFO_ARCH             "alpha"
826 #elif (LZO_ARCH_CRAY_MPP) && (defined(_CRAYT3D) || defined(_CRAYT3E))
827 #  define LZO_ARCH_ALPHA            1
828 #  define LZO_INFO_ARCH             "alpha"
829 #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
830 #  define LZO_ARCH_AMD64            1
831 #  define LZO_INFO_ARCH             "amd64"
832 #elif defined(__arm__) || defined(_M_ARM)
833 #  define LZO_ARCH_ARM              1
834 #  define LZO_INFO_ARCH             "arm"
835 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
836 #  define LZO_ARCH_ARM              1
837 #  define LZO_INFO_ARCH             "arm"
838 #elif (UINT_MAX <= LZO_0xffffL) && defined(__AVR__)
839 #  define LZO_ARCH_AVR              1
840 #  define LZO_INFO_ARCH             "avr"
841 #elif defined(__avr32__) || defined(__AVR32__)
842 #  define LZO_ARCH_AVR32            1
843 #  define LZO_INFO_ARCH             "avr32"
844 #elif defined(__bfin__)
845 #  define LZO_ARCH_BLACKFIN         1
846 #  define LZO_INFO_ARCH             "blackfin"
847 #elif (UINT_MAX == LZO_0xffffL) && defined(__C166__)
848 #  define LZO_ARCH_C166             1
849 #  define LZO_INFO_ARCH             "c166"
850 #elif defined(__cris__)
851 #  define LZO_ARCH_CRIS             1
852 #  define LZO_INFO_ARCH             "cris"
853 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCEZ80__)
854 #  define LZO_ARCH_EZ80             1
855 #  define LZO_INFO_ARCH             "ez80"
856 #elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
857 #  define LZO_ARCH_H8300            1
858 #  define LZO_INFO_ARCH             "h8300"
859 #elif defined(__hppa__) || defined(__hppa)
860 #  define LZO_ARCH_HPPA             1
861 #  define LZO_INFO_ARCH             "hppa"
862 #elif defined(__386__) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_I386)
863 #  define LZO_ARCH_I386             1
864 #  define LZO_ARCH_IA32             1
865 #  define LZO_INFO_ARCH             "i386"
866 #elif (LZO_CC_ZORTECHC && defined(__I86__))
867 #  define LZO_ARCH_I386             1
868 #  define LZO_ARCH_IA32             1
869 #  define LZO_INFO_ARCH             "i386"
870 #elif (LZO_OS_DOS32 && LZO_CC_HIGHC) && defined(_I386)
871 #  define LZO_ARCH_I386             1
872 #  define LZO_ARCH_IA32             1
873 #  define LZO_INFO_ARCH             "i386"
874 #elif defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
875 #  define LZO_ARCH_IA64             1
876 #  define LZO_INFO_ARCH             "ia64"
877 #elif (UINT_MAX == LZO_0xffffL) && defined(__m32c__)
878 #  define LZO_ARCH_M16C             1
879 #  define LZO_INFO_ARCH             "m16c"
880 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCM16C__)
881 #  define LZO_ARCH_M16C             1
882 #  define LZO_INFO_ARCH             "m16c"
883 #elif defined(__m32r__)
884 #  define LZO_ARCH_M32R             1
885 #  define LZO_INFO_ARCH             "m32r"
886 #elif (LZO_OS_TOS) || defined(__m68k__) || defined(__m68000__) || defined(__mc68000__) || defined(__mc68020__) || defined(_M_M68K)
887 #  define LZO_ARCH_M68K             1
888 #  define LZO_INFO_ARCH             "m68k"
889 #elif (UINT_MAX == LZO_0xffffL) && defined(__C251__)
890 #  define LZO_ARCH_MCS251           1
891 #  define LZO_INFO_ARCH             "mcs251"
892 #elif (UINT_MAX == LZO_0xffffL) && defined(__C51__)
893 #  define LZO_ARCH_MCS51            1
894 #  define LZO_INFO_ARCH             "mcs51"
895 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC8051__)
896 #  define LZO_ARCH_MCS51            1
897 #  define LZO_INFO_ARCH             "mcs51"
898 #elif defined(__mips__) || defined(__mips) || defined(_MIPS_ARCH) || defined(_M_MRX000)
899 #  define LZO_ARCH_MIPS             1
900 #  define LZO_INFO_ARCH             "mips"
901 #elif (UINT_MAX == LZO_0xffffL) && defined(__MSP430__)
902 #  define LZO_ARCH_MSP430           1
903 #  define LZO_INFO_ARCH             "msp430"
904 #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC430__)
905 #  define LZO_ARCH_MSP430           1
906 #  define LZO_INFO_ARCH             "msp430"
907 #elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
908 #  define LZO_ARCH_POWERPC          1
909 #  define LZO_INFO_ARCH             "powerpc"
910 #elif defined(__powerpc64__) || defined(__powerpc64) || defined(__ppc64__) || defined(__PPC64__)
911 #  define LZO_ARCH_POWERPC          1
912 #  define LZO_INFO_ARCH             "powerpc"
913 #elif defined(__powerpc64le__) || defined(__powerpc64le) || defined(__ppc64le__) || defined(__PPC64LE__)
914 #  define LZO_ARCH_POWERPC          1
915 #  define LZO_INFO_ARCH             "powerpc"
916 #elif defined(__riscv)
917 #  define LZO_ARCH_RISCV            1
918 #  define LZO_INFO_ARCH             "riscv"
919 #elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
920 #  define LZO_ARCH_S390             1
921 #  define LZO_INFO_ARCH             "s390"
922 #elif defined(__sh__) || defined(_M_SH)
923 #  define LZO_ARCH_SH               1
924 #  define LZO_INFO_ARCH             "sh"
925 #elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8)
926 #  define LZO_ARCH_SPARC            1
927 #  define LZO_INFO_ARCH             "sparc"
928 #elif defined(__SPU__)
929 #  define LZO_ARCH_SPU              1
930 #  define LZO_INFO_ARCH             "spu"
931 #elif (UINT_MAX == LZO_0xffffL) && defined(__z80)
932 #  define LZO_ARCH_Z80              1
933 #  define LZO_INFO_ARCH             "z80"
934 #elif (LZO_ARCH_CRAY_PVP)
935 #  if defined(_CRAYSV1)
936 #    define LZO_ARCH_CRAY_SV1       1
937 #    define LZO_INFO_ARCH           "cray_sv1"
938 #  elif (_ADDR64)
939 #    define LZO_ARCH_CRAY_T90       1
940 #    define LZO_INFO_ARCH           "cray_t90"
941 #  elif (_ADDR32)
942 #    define LZO_ARCH_CRAY_YMP       1
943 #    define LZO_INFO_ARCH           "cray_ymp"
944 #  else
945 #    define LZO_ARCH_CRAY_XMP       1
946 #    define LZO_INFO_ARCH           "cray_xmp"
947 #  endif
948 #else
949 #  define LZO_ARCH_UNKNOWN          1
950 #  define LZO_INFO_ARCH             "unknown"
951 #endif
952 #endif
953 #if !defined(LZO_ARCH_ARM_THUMB2)
954 #if (LZO_ARCH_ARM)
955 #  if defined(__thumb__) || defined(__thumb) || defined(_M_THUMB)
956 #    if defined(__thumb2__)
957 #      define LZO_ARCH_ARM_THUMB2   1
958 #    elif 1 && defined(__TARGET_ARCH_THUMB) && ((__TARGET_ARCH_THUMB)+0 >= 4)
959 #      define LZO_ARCH_ARM_THUMB2   1
960 #    elif 1 && defined(_MSC_VER) && defined(_M_THUMB) && ((_M_THUMB)+0 >= 7)
961 #      define LZO_ARCH_ARM_THUMB2   1
962 #    endif
963 #  endif
964 #endif
965 #endif
966 #if (LZO_ARCH_ARM_THUMB2)
967 #  undef  LZO_INFO_ARCH
968 #  define LZO_INFO_ARCH             "arm_thumb2"
969 #endif
970 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_DOS32 || LZO_OS_OS2)
971 #  error "FIXME - missing define for CPU architecture"
972 #endif
973 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN32)
974 #  error "FIXME - missing LZO_OS_WIN32 define for CPU architecture"
975 #endif
976 #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN64)
977 #  error "FIXME - missing LZO_OS_WIN64 define for CPU architecture"
978 #endif
979 #if (LZO_OS_OS216 || LZO_OS_WIN16)
980 #  define LZO_ARCH_I086PM           1
981 #elif 1 && (LZO_OS_DOS16 && defined(BLX286))
982 #  define LZO_ARCH_I086PM           1
983 #elif 1 && (LZO_OS_DOS16 && defined(DOSX286))
984 #  define LZO_ARCH_I086PM           1
985 #elif 1 && (LZO_OS_DOS16 && LZO_CC_BORLANDC && defined(__DPMI16__))
986 #  define LZO_ARCH_I086PM           1
987 #endif
988 #if (LZO_ARCH_AMD64 && !LZO_ARCH_X64)
989 #  define LZO_ARCH_X64              1
990 #elif (!LZO_ARCH_AMD64 && LZO_ARCH_X64) && defined(__LZO_ARCH_OVERRIDE)
991 #  define LZO_ARCH_AMD64            1
992 #endif
993 #if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64)
994 #  define LZO_ARCH_AARCH64          1
995 #elif (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) && defined(__LZO_ARCH_OVERRIDE)
996 #  define LZO_ARCH_ARM64            1
997 #endif
998 #if (LZO_ARCH_I386 && !LZO_ARCH_X86)
999 #  define LZO_ARCH_X86              1
1000 #elif (!LZO_ARCH_I386 && LZO_ARCH_X86) && defined(__LZO_ARCH_OVERRIDE)
1001 #  define LZO_ARCH_I386            1
1002 #endif
1003 #if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) || (!LZO_ARCH_AMD64 && LZO_ARCH_X64)
1004 #  error "unexpected configuration - check your compiler defines"
1005 #endif
1006 #if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) || (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64)
1007 #  error "unexpected configuration - check your compiler defines"
1008 #endif
1009 #if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86)
1010 #  error "unexpected configuration - check your compiler defines"
1011 #endif
1012 #if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM)
1013 #  error "unexpected configuration - check your compiler defines"
1014 #endif
1015 #if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM)
1016 #  error "unexpected configuration - check your compiler defines"
1017 #endif
1018 #if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2)
1019 #  error "unexpected configuration - check your compiler defines"
1020 #endif
1021 #if (LZO_ARCH_I086PM && !LZO_ARCH_I086)
1022 #  error "unexpected configuration - check your compiler defines"
1023 #endif
1024 #if (LZO_ARCH_I086)
1025 #  if (UINT_MAX != LZO_0xffffL)
1026 #    error "unexpected configuration - check your compiler defines"
1027 #  endif
1028 #  if (ULONG_MAX != LZO_0xffffffffL)
1029 #    error "unexpected configuration - check your compiler defines"
1030 #  endif
1031 #endif
1032 #if (LZO_ARCH_I386)
1033 #  if (UINT_MAX != LZO_0xffffL) && defined(__i386_int16__)
1034 #    error "unexpected configuration - check your compiler defines"
1035 #  endif
1036 #  if (UINT_MAX != LZO_0xffffffffL) && !defined(__i386_int16__)
1037 #    error "unexpected configuration - check your compiler defines"
1038 #  endif
1039 #  if (ULONG_MAX != LZO_0xffffffffL)
1040 #    error "unexpected configuration - check your compiler defines"
1041 #  endif
1042 #endif
1043 #if (LZO_ARCH_AMD64 || LZO_ARCH_I386)
1044 #  if !defined(LZO_TARGET_FEATURE_SSE2)
1045 #    if defined(__SSE2__)
1046 #      define LZO_TARGET_FEATURE_SSE2       1
1047 #    elif defined(_MSC_VER) && (defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2))
1048 #      define LZO_TARGET_FEATURE_SSE2       1
1049 #    elif (LZO_CC_INTELC_MSC || LZO_CC_MSC) && defined(_M_AMD64)
1050 #      define LZO_TARGET_FEATURE_SSE2       1
1051 #    endif
1052 #  endif
1053 #  if !defined(LZO_TARGET_FEATURE_SSSE3)
1054 #  if (LZO_TARGET_FEATURE_SSE2)
1055 #    if defined(__SSSE3__)
1056 #      define LZO_TARGET_FEATURE_SSSE3      1
1057 #    elif defined(_MSC_VER) && defined(__AVX__)
1058 #      define LZO_TARGET_FEATURE_SSSE3      1
1059 #    endif
1060 #  endif
1061 #  endif
1062 #  if !defined(LZO_TARGET_FEATURE_SSE4_2)
1063 #  if (LZO_TARGET_FEATURE_SSSE3)
1064 #    if defined(__SSE4_2__)
1065 #      define LZO_TARGET_FEATURE_SSE4_2     1
1066 #    endif
1067 #  endif
1068 #  endif
1069 #  if !defined(LZO_TARGET_FEATURE_AVX)
1070 #  if (LZO_TARGET_FEATURE_SSSE3)
1071 #    if defined(__AVX__)
1072 #      define LZO_TARGET_FEATURE_AVX        1
1073 #    endif
1074 #  endif
1075 #  endif
1076 #  if !defined(LZO_TARGET_FEATURE_AVX2)
1077 #  if (LZO_TARGET_FEATURE_AVX)
1078 #    if defined(__AVX2__)
1079 #      define LZO_TARGET_FEATURE_AVX2       1
1080 #    endif
1081 #  endif
1082 #  endif
1083 #endif
1084 #if (LZO_TARGET_FEATURE_SSSE3 && !(LZO_TARGET_FEATURE_SSE2))
1085 #  error "unexpected configuration - check your compiler defines"
1086 #endif
1087 #if (LZO_TARGET_FEATURE_SSE4_2 && !(LZO_TARGET_FEATURE_SSSE3))
1088 #  error "unexpected configuration - check your compiler defines"
1089 #endif
1090 #if (LZO_TARGET_FEATURE_AVX && !(LZO_TARGET_FEATURE_SSSE3))
1091 #  error "unexpected configuration - check your compiler defines"
1092 #endif
1093 #if (LZO_TARGET_FEATURE_AVX2 && !(LZO_TARGET_FEATURE_AVX))
1094 #  error "unexpected configuration - check your compiler defines"
1095 #endif
1096 #if (LZO_ARCH_ARM)
1097 #  if !defined(LZO_TARGET_FEATURE_NEON)
1098 #    if defined(__ARM_NEON) && ((__ARM_NEON)+0)
1099 #      define LZO_TARGET_FEATURE_NEON       1
1100 #    elif 1 && defined(__ARM_NEON__) && ((__ARM_NEON__)+0)
1101 #      define LZO_TARGET_FEATURE_NEON       1
1102 #    elif 1 && defined(__TARGET_FEATURE_NEON) && ((__TARGET_FEATURE_NEON)+0)
1103 #      define LZO_TARGET_FEATURE_NEON       1
1104 #    endif
1105 #  endif
1106 #elif (LZO_ARCH_ARM64)
1107 #  if !defined(LZO_TARGET_FEATURE_NEON)
1108 #    if 1
1109 #      define LZO_TARGET_FEATURE_NEON       1
1110 #    endif
1111 #  endif
1112 #endif
1113 #if 0
1114 #elif !defined(__LZO_MM_OVERRIDE)
1115 #if (LZO_ARCH_I086)
1116 #if (UINT_MAX != LZO_0xffffL)
1117 #  error "unexpected configuration - check your compiler defines"
1118 #endif
1119 #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM)
1120 #  define LZO_MM_TINY           1
1121 #elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86HM)
1122 #  define LZO_MM_HUGE           1
1123 #elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMALL_MODEL)
1124 #  define LZO_MM_SMALL          1
1125 #elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM)
1126 #  define LZO_MM_MEDIUM         1
1127 #elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM)
1128 #  define LZO_MM_COMPACT        1
1129 #elif defined(__LARGE__) || defined(M_I86LM) || defined(_M_I86LM) || defined(LARGE_MODEL)
1130 #  define LZO_MM_LARGE          1
1131 #elif (LZO_CC_AZTECC)
1132 #  if defined(_LARGE_CODE) && defined(_LARGE_DATA)
1133 #    define LZO_MM_LARGE        1
1134 #  elif defined(_LARGE_CODE)
1135 #    define LZO_MM_MEDIUM       1
1136 #  elif defined(_LARGE_DATA)
1137 #    define LZO_MM_COMPACT      1
1138 #  else
1139 #    define LZO_MM_SMALL        1
1140 #  endif
1141 #elif (LZO_CC_ZORTECHC && defined(__VCM__))
1142 #  define LZO_MM_LARGE          1
1143 #else
1144 #  error "unknown LZO_ARCH_I086 memory model"
1145 #endif
1146 #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16)
1147 #define LZO_HAVE_MM_HUGE_PTR        1
1148 #define LZO_HAVE_MM_HUGE_ARRAY      1
1149 #if (LZO_MM_TINY)
1150 #  undef LZO_HAVE_MM_HUGE_ARRAY
1151 #endif
1152 #if (LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_ZORTECHC)
1153 #  undef LZO_HAVE_MM_HUGE_PTR
1154 #  undef LZO_HAVE_MM_HUGE_ARRAY
1155 #elif (LZO_CC_DMC || LZO_CC_SYMANTECC)
1156 #  undef LZO_HAVE_MM_HUGE_ARRAY
1157 #elif (LZO_CC_MSC && defined(_QC))
1158 #  undef LZO_HAVE_MM_HUGE_ARRAY
1159 #  if (_MSC_VER < 600)
1160 #    undef LZO_HAVE_MM_HUGE_PTR
1161 #  endif
1162 #elif (LZO_CC_TURBOC && (__TURBOC__ < 0x0295))
1163 #  undef LZO_HAVE_MM_HUGE_ARRAY
1164 #endif
1165 #if (LZO_ARCH_I086PM) && !(LZO_HAVE_MM_HUGE_PTR)
1166 #  if (LZO_OS_DOS16)
1167 #    error "unexpected configuration - check your compiler defines"
1168 #  elif (LZO_CC_ZORTECHC)
1169 #  else
1170 #    error "unexpected configuration - check your compiler defines"
1171 #  endif
1172 #endif
1173 #if defined(__cplusplus)
1174 extern "C" {
1175 #endif
1176 #if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
1177    extern void __near __cdecl _AHSHIFT(void);
1178 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
1179 #elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
1180    extern void __near __cdecl _AHSHIFT(void);
1181 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
1182 #elif (LZO_CC_MSC || LZO_CC_TOPSPEEDC)
1183    extern void __near __cdecl _AHSHIFT(void);
1184 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
1185 #elif (LZO_CC_TURBOC && (__TURBOC__ >= 0x0295))
1186    extern void __near __cdecl _AHSHIFT(void);
1187 #  define LZO_MM_AHSHIFT      ((unsigned) _AHSHIFT)
1188 #elif ((LZO_CC_AZTECC || LZO_CC_PACIFICC || LZO_CC_TURBOC) && LZO_OS_DOS16)
1189 #  define LZO_MM_AHSHIFT      12
1190 #elif (LZO_CC_WATCOMC)
1191    extern unsigned char _HShift;
1192 #  define LZO_MM_AHSHIFT      ((unsigned) _HShift)
1193 #else
1194 #  error "FIXME - implement LZO_MM_AHSHIFT"
1195 #endif
1196 #if defined(__cplusplus)
1197 }
1198 #endif
1199 #endif
1200 #elif (LZO_ARCH_C166)
1201 #if !defined(__MODEL__)
1202 #  error "FIXME - LZO_ARCH_C166 __MODEL__"
1203 #elif ((__MODEL__) == 0)
1204 #  define LZO_MM_SMALL          1
1205 #elif ((__MODEL__) == 1)
1206 #  define LZO_MM_SMALL          1
1207 #elif ((__MODEL__) == 2)
1208 #  define LZO_MM_LARGE          1
1209 #elif ((__MODEL__) == 3)
1210 #  define LZO_MM_TINY           1
1211 #elif ((__MODEL__) == 4)
1212 #  define LZO_MM_XTINY          1
1213 #elif ((__MODEL__) == 5)
1214 #  define LZO_MM_XSMALL         1
1215 #else
1216 #  error "FIXME - LZO_ARCH_C166 __MODEL__"
1217 #endif
1218 #elif (LZO_ARCH_MCS251)
1219 #if !defined(__MODEL__)
1220 #  error "FIXME - LZO_ARCH_MCS251 __MODEL__"
1221 #elif ((__MODEL__) == 0)
1222 #  define LZO_MM_SMALL          1
1223 #elif ((__MODEL__) == 2)
1224 #  define LZO_MM_LARGE          1
1225 #elif ((__MODEL__) == 3)
1226 #  define LZO_MM_TINY           1
1227 #elif ((__MODEL__) == 4)
1228 #  define LZO_MM_XTINY          1
1229 #elif ((__MODEL__) == 5)
1230 #  define LZO_MM_XSMALL         1
1231 #else
1232 #  error "FIXME - LZO_ARCH_MCS251 __MODEL__"
1233 #endif
1234 #elif (LZO_ARCH_MCS51)
1235 #if !defined(__MODEL__)
1236 #  error "FIXME - LZO_ARCH_MCS51 __MODEL__"
1237 #elif ((__MODEL__) == 1)
1238 #  define LZO_MM_SMALL          1
1239 #elif ((__MODEL__) == 2)
1240 #  define LZO_MM_LARGE          1
1241 #elif ((__MODEL__) == 3)
1242 #  define LZO_MM_TINY           1
1243 #elif ((__MODEL__) == 4)
1244 #  define LZO_MM_XTINY          1
1245 #elif ((__MODEL__) == 5)
1246 #  define LZO_MM_XSMALL         1
1247 #else
1248 #  error "FIXME - LZO_ARCH_MCS51 __MODEL__"
1249 #endif
1250 #elif (LZO_ARCH_CRAY_PVP)
1251 #  define LZO_MM_PVP            1
1252 #else
1253 #  define LZO_MM_FLAT           1
1254 #endif
1255 #if (LZO_MM_COMPACT)
1256 #  define LZO_INFO_MM           "compact"
1257 #elif (LZO_MM_FLAT)
1258 #  define LZO_INFO_MM           "flat"
1259 #elif (LZO_MM_HUGE)
1260 #  define LZO_INFO_MM           "huge"
1261 #elif (LZO_MM_LARGE)
1262 #  define LZO_INFO_MM           "large"
1263 #elif (LZO_MM_MEDIUM)
1264 #  define LZO_INFO_MM           "medium"
1265 #elif (LZO_MM_PVP)
1266 #  define LZO_INFO_MM           "pvp"
1267 #elif (LZO_MM_SMALL)
1268 #  define LZO_INFO_MM           "small"
1269 #elif (LZO_MM_TINY)
1270 #  define LZO_INFO_MM           "tiny"
1271 #else
1272 #  error "unknown memory model"
1273 #endif
1274 #endif
1275 #if !defined(__lzo_gnuc_extension__)
1276 #if (LZO_CC_GNUC >= 0x020800ul)
1277 #  define __lzo_gnuc_extension__    __extension__
1278 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1279 #  define __lzo_gnuc_extension__    __extension__
1280 #elif (LZO_CC_IBMC >= 600)
1281 #  define __lzo_gnuc_extension__    __extension__
1282 #endif
1283 #endif
1284 #if !defined(__lzo_gnuc_extension__)
1285 #  define __lzo_gnuc_extension__    /*empty*/
1286 #endif
1287 #if !defined(lzo_has_builtin)
1288 #if (LZO_CC_CLANG) && defined(__has_builtin)
1289 #  define lzo_has_builtin           __has_builtin
1290 #endif
1291 #endif
1292 #if !defined(lzo_has_builtin)
1293 #  define lzo_has_builtin(x)        0
1294 #endif
1295 #if !defined(lzo_has_attribute)
1296 #if (LZO_CC_CLANG) && defined(__has_attribute)
1297 #  define lzo_has_attribute         __has_attribute
1298 #endif
1299 #endif
1300 #if !defined(lzo_has_attribute)
1301 #  define lzo_has_attribute(x)      0
1302 #endif
1303 #if !defined(lzo_has_declspec_attribute)
1304 #if (LZO_CC_CLANG) && defined(__has_declspec_attribute)
1305 #  define lzo_has_declspec_attribute        __has_declspec_attribute
1306 #endif
1307 #endif
1308 #if !defined(lzo_has_declspec_attribute)
1309 #  define lzo_has_declspec_attribute(x)     0
1310 #endif
1311 #if !defined(lzo_has_feature)
1312 #if (LZO_CC_CLANG) && defined(__has_feature)
1313 #  define lzo_has_feature         __has_feature
1314 #endif
1315 #endif
1316 #if !defined(lzo_has_feature)
1317 #  define lzo_has_feature(x)        0
1318 #endif
1319 #if !defined(lzo_has_extension)
1320 #if (LZO_CC_CLANG) && defined(__has_extension)
1321 #  define lzo_has_extension         __has_extension
1322 #elif (LZO_CC_CLANG) && defined(__has_feature)
1323 #  define lzo_has_extension         __has_feature
1324 #endif
1325 #endif
1326 #if !defined(lzo_has_extension)
1327 #  define lzo_has_extension(x)      0
1328 #endif
1329 #if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0
1330 #  if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul))
1331 #    define LZO_CFG_USE_NEW_STYLE_CASTS 0
1332 #  elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1200))
1333 #    define LZO_CFG_USE_NEW_STYLE_CASTS 0
1334 #  else
1335 #    define LZO_CFG_USE_NEW_STYLE_CASTS 1
1336 #  endif
1337 #endif
1338 #if !defined(LZO_CFG_USE_NEW_STYLE_CASTS)
1339 #  define LZO_CFG_USE_NEW_STYLE_CASTS 0
1340 #endif
1341 #if !defined(__cplusplus)
1342 #  if defined(LZO_CFG_USE_NEW_STYLE_CASTS)
1343 #    undef LZO_CFG_USE_NEW_STYLE_CASTS
1344 #  endif
1345 #  define LZO_CFG_USE_NEW_STYLE_CASTS 0
1346 #endif
1347 #if !defined(LZO_REINTERPRET_CAST)
1348 #  if (LZO_CFG_USE_NEW_STYLE_CASTS)
1349 #    define LZO_REINTERPRET_CAST(t,e)       (reinterpret_cast<t> (e))
1350 #  endif
1351 #endif
1352 #if !defined(LZO_REINTERPRET_CAST)
1353 #  define LZO_REINTERPRET_CAST(t,e)         ((t) (e))
1354 #endif
1355 #if !defined(LZO_STATIC_CAST)
1356 #  if (LZO_CFG_USE_NEW_STYLE_CASTS)
1357 #    define LZO_STATIC_CAST(t,e)            (static_cast<t> (e))
1358 #  endif
1359 #endif
1360 #if !defined(LZO_STATIC_CAST)
1361 #  define LZO_STATIC_CAST(t,e)              ((t) (e))
1362 #endif
1363 #if !defined(LZO_STATIC_CAST2)
1364 #  define LZO_STATIC_CAST2(t1,t2,e)         LZO_STATIC_CAST(t1, LZO_STATIC_CAST(t2, e))
1365 #endif
1366 #if !defined(LZO_UNCONST_CAST)
1367 #  if (LZO_CFG_USE_NEW_STYLE_CASTS)
1368 #    define LZO_UNCONST_CAST(t,e)           (const_cast<t> (e))
1369 #  elif (LZO_HAVE_MM_HUGE_PTR)
1370 #    define LZO_UNCONST_CAST(t,e)           ((t) (e))
1371 #  elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1372 #    define LZO_UNCONST_CAST(t,e)           ((t) ((void *) ((lzo_uintptr_t) ((const void *) (e)))))
1373 #  endif
1374 #endif
1375 #if !defined(LZO_UNCONST_CAST)
1376 #  define LZO_UNCONST_CAST(t,e)             ((t) ((void *) ((const void *) (e))))
1377 #endif
1378 #if !defined(LZO_UNCONST_VOLATILE_CAST)
1379 #  if (LZO_CFG_USE_NEW_STYLE_CASTS)
1380 #    define LZO_UNCONST_VOLATILE_CAST(t,e)  (const_cast<t> (e))
1381 #  elif (LZO_HAVE_MM_HUGE_PTR)
1382 #    define LZO_UNCONST_VOLATILE_CAST(t,e)  ((t) (e))
1383 #  elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1384 #    define LZO_UNCONST_VOLATILE_CAST(t,e)  ((t) ((volatile void *) ((lzo_uintptr_t) ((volatile const void *) (e)))))
1385 #  endif
1386 #endif
1387 #if !defined(LZO_UNCONST_VOLATILE_CAST)
1388 #  define LZO_UNCONST_VOLATILE_CAST(t,e)    ((t) ((volatile void *) ((volatile const void *) (e))))
1389 #endif
1390 #if !defined(LZO_UNVOLATILE_CAST)
1391 #  if (LZO_CFG_USE_NEW_STYLE_CASTS)
1392 #    define LZO_UNVOLATILE_CAST(t,e)        (const_cast<t> (e))
1393 #  elif (LZO_HAVE_MM_HUGE_PTR)
1394 #    define LZO_UNVOLATILE_CAST(t,e)        ((t) (e))
1395 #  elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1396 #    define LZO_UNVOLATILE_CAST(t,e)        ((t) ((void *) ((lzo_uintptr_t) ((volatile void *) (e)))))
1397 #  endif
1398 #endif
1399 #if !defined(LZO_UNVOLATILE_CAST)
1400 #  define LZO_UNVOLATILE_CAST(t,e)          ((t) ((void *) ((volatile void *) (e))))
1401 #endif
1402 #if !defined(LZO_UNVOLATILE_CONST_CAST)
1403 #  if (LZO_CFG_USE_NEW_STYLE_CASTS)
1404 #    define LZO_UNVOLATILE_CONST_CAST(t,e)  (const_cast<t> (e))
1405 #  elif (LZO_HAVE_MM_HUGE_PTR)
1406 #    define LZO_UNVOLATILE_CONST_CAST(t,e)  ((t) (e))
1407 #  elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1408 #    define LZO_UNVOLATILE_CONST_CAST(t,e)  ((t) ((const void *) ((lzo_uintptr_t) ((volatile const void *) (e)))))
1409 #  endif
1410 #endif
1411 #if !defined(LZO_UNVOLATILE_CONST_CAST)
1412 #  define LZO_UNVOLATILE_CONST_CAST(t,e)    ((t) ((const void *) ((volatile const void *) (e))))
1413 #endif
1414 #if !defined(LZO_PCAST)
1415 #  if (LZO_HAVE_MM_HUGE_PTR)
1416 #    define LZO_PCAST(t,e)                  ((t) (e))
1417 #  endif
1418 #endif
1419 #if !defined(LZO_PCAST)
1420 #  define LZO_PCAST(t,e)                    LZO_STATIC_CAST(t, LZO_STATIC_CAST(void *, e))
1421 #endif
1422 #if !defined(LZO_CCAST)
1423 #  if (LZO_HAVE_MM_HUGE_PTR)
1424 #    define LZO_CCAST(t,e)                  ((t) (e))
1425 #  endif
1426 #endif
1427 #if !defined(LZO_CCAST)
1428 #  define LZO_CCAST(t,e)                    LZO_STATIC_CAST(t, LZO_STATIC_CAST(const void *, e))
1429 #endif
1430 #if !defined(LZO_ICONV)
1431 #  define LZO_ICONV(t,e)                    LZO_STATIC_CAST(t, e)
1432 #endif
1433 #if !defined(LZO_ICAST)
1434 #  define LZO_ICAST(t,e)                    LZO_STATIC_CAST(t, e)
1435 #endif
1436 #if !defined(LZO_ITRUNC)
1437 #  define LZO_ITRUNC(t,e)                   LZO_STATIC_CAST(t, e)
1438 #endif
1439 #if !defined(__lzo_cte)
1440 #  if (LZO_CC_MSC || LZO_CC_WATCOMC)
1441 #    define __lzo_cte(e)            ((void)0,(e))
1442 #  elif 1
1443 #    define __lzo_cte(e)            ((void)0,(e))
1444 #  endif
1445 #endif
1446 #if !defined(__lzo_cte)
1447 #  define __lzo_cte(e)              (e)
1448 #endif
1449 #if !defined(LZO_BLOCK_BEGIN)
1450 #  define LZO_BLOCK_BEGIN           do {
1451 #  define LZO_BLOCK_END             } while __lzo_cte(0)
1452 #endif
1453 #if !defined(LZO_UNUSED)
1454 #  if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
1455 #    define LZO_UNUSED(var)         ((void) &var)
1456 #  elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC)
1457 #    define LZO_UNUSED(var)         if (&var) ; else
1458 #  elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030200ul))
1459 #    define LZO_UNUSED(var)         ((void) &var)
1460 #  elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1461 #    define LZO_UNUSED(var)         ((void) var)
1462 #  elif (LZO_CC_MSC && (_MSC_VER < 900))
1463 #    define LZO_UNUSED(var)         if (&var) ; else
1464 #  elif (LZO_CC_KEILC)
1465 #    define LZO_UNUSED(var)         {extern int lzo_unused__[1-2*!(sizeof(var)>0)]; (void)lzo_unused__;}
1466 #  elif (LZO_CC_PACIFICC)
1467 #    define LZO_UNUSED(var)         ((void) sizeof(var))
1468 #  elif (LZO_CC_WATCOMC) && defined(__cplusplus)
1469 #    define LZO_UNUSED(var)         ((void) var)
1470 #  else
1471 #    define LZO_UNUSED(var)         ((void) &var)
1472 #  endif
1473 #endif
1474 #if !defined(LZO_UNUSED_RESULT)
1475 #  define LZO_UNUSED_RESULT(var)    LZO_UNUSED(var)
1476 #endif
1477 #if !defined(LZO_UNUSED_FUNC)
1478 #  if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
1479 #    define LZO_UNUSED_FUNC(func)   ((void) func)
1480 #  elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC)
1481 #    define LZO_UNUSED_FUNC(func)   if (func) ; else
1482 #  elif (LZO_CC_CLANG || LZO_CC_LLVM)
1483 #    define LZO_UNUSED_FUNC(func)   ((void) &func)
1484 #  elif (LZO_CC_MSC && (_MSC_VER < 900))
1485 #    define LZO_UNUSED_FUNC(func)   if (func) ; else
1486 #  elif (LZO_CC_MSC)
1487 #    define LZO_UNUSED_FUNC(func)   ((void) &func)
1488 #  elif (LZO_CC_KEILC || LZO_CC_PELLESC)
1489 #    define LZO_UNUSED_FUNC(func)   {extern int lzo_unused__[1-2*!(sizeof((int)func)>0)]; (void)lzo_unused__;}
1490 #  else
1491 #    define LZO_UNUSED_FUNC(func)   ((void) func)
1492 #  endif
1493 #endif
1494 #if !defined(LZO_UNUSED_LABEL)
1495 #  if (LZO_CC_CLANG >= 0x020800ul)
1496 #    define LZO_UNUSED_LABEL(l)     (__lzo_gnuc_extension__ ((void) ((const void *) &&l)))
1497 #  elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC)
1498 #    define LZO_UNUSED_LABEL(l)     if __lzo_cte(0) goto l
1499 #  else
1500 #    define LZO_UNUSED_LABEL(l)     switch (0) case 1:goto l
1501 #  endif
1502 #endif
1503 #if !defined(LZO_DEFINE_UNINITIALIZED_VAR)
1504 #  if 0
1505 #    define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var
1506 #  elif 0 && (LZO_CC_GNUC)
1507 #    define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var = var
1508 #  else
1509 #    define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init)  type var = init
1510 #  endif
1511 #endif
1512 #if !defined(__lzo_inline)
1513 #if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295))
1514 #elif defined(__cplusplus)
1515 #  define __lzo_inline          inline
1516 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L)
1517 #  define __lzo_inline          inline
1518 #elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
1519 #  define __lzo_inline          __inline
1520 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
1521 #  define __lzo_inline          __inline__
1522 #elif (LZO_CC_DMC)
1523 #  define __lzo_inline          __inline
1524 #elif (LZO_CC_GHS)
1525 #  define __lzo_inline          __inline__
1526 #elif (LZO_CC_IBMC >= 600)
1527 #  define __lzo_inline          __inline__
1528 #elif (LZO_CC_INTELC)
1529 #  define __lzo_inline          __inline
1530 #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405))
1531 #  define __lzo_inline          __inline
1532 #elif (LZO_CC_MSC && (_MSC_VER >= 900))
1533 #  define __lzo_inline          __inline
1534 #elif (LZO_CC_SUNPROC >= 0x5100)
1535 #  define __lzo_inline          __inline__
1536 #endif
1537 #endif
1538 #if defined(__lzo_inline)
1539 #  ifndef __lzo_HAVE_inline
1540 #  define __lzo_HAVE_inline 1
1541 #  endif
1542 #else
1543 #  define __lzo_inline          /*empty*/
1544 #endif
1545 #if !defined(__lzo_forceinline)
1546 #if (LZO_CC_GNUC >= 0x030200ul)
1547 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
1548 #elif (LZO_CC_IBMC >= 700)
1549 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
1550 #elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
1551 #  define __lzo_forceinline     __forceinline
1552 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
1553 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
1554 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1555 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
1556 #elif (LZO_CC_MSC && (_MSC_VER >= 1200))
1557 #  define __lzo_forceinline     __forceinline
1558 #elif (LZO_CC_PGI >= 0x0d0a00ul)
1559 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
1560 #elif (LZO_CC_SUNPROC >= 0x5100)
1561 #  define __lzo_forceinline     __inline__ __attribute__((__always_inline__))
1562 #endif
1563 #endif
1564 #if defined(__lzo_forceinline)
1565 #  ifndef __lzo_HAVE_forceinline
1566 #  define __lzo_HAVE_forceinline 1
1567 #  endif
1568 #else
1569 #  define __lzo_forceinline     __lzo_inline
1570 #endif
1571 #if !defined(__lzo_noinline)
1572 #if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul)
1573 #  define __lzo_noinline        __attribute__((__noinline__,__used__))
1574 #elif (LZO_CC_GNUC >= 0x030200ul)
1575 #  define __lzo_noinline        __attribute__((__noinline__))
1576 #elif (LZO_CC_IBMC >= 700)
1577 #  define __lzo_noinline        __attribute__((__noinline__))
1578 #elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600))
1579 #  define __lzo_noinline        __declspec(noinline)
1580 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
1581 #  define __lzo_noinline        __attribute__((__noinline__))
1582 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1583 #  define __lzo_noinline        __attribute__((__noinline__))
1584 #elif (LZO_CC_MSC && (_MSC_VER >= 1300))
1585 #  define __lzo_noinline        __declspec(noinline)
1586 #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x3200) && (LZO_OS_WIN32 || LZO_OS_WIN64))
1587 #  if defined(__cplusplus)
1588 #  else
1589 #    define __lzo_noinline      __declspec(noinline)
1590 #  endif
1591 #elif (LZO_CC_PGI >= 0x0d0a00ul)
1592 #  define __lzo_noinline        __attribute__((__noinline__))
1593 #elif (LZO_CC_SUNPROC >= 0x5100)
1594 #  define __lzo_noinline        __attribute__((__noinline__))
1595 #endif
1596 #endif
1597 #if defined(__lzo_noinline)
1598 #  ifndef __lzo_HAVE_noinline
1599 #  define __lzo_HAVE_noinline 1
1600 #  endif
1601 #else
1602 #  define __lzo_noinline        /*empty*/
1603 #endif
1604 #if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline)
1605 #  error "unexpected configuration - check your compiler defines"
1606 #endif
1607 #if !defined(__lzo_static_inline)
1608 #if (LZO_CC_IBMC)
1609 #  define __lzo_static_inline       __lzo_gnuc_extension__ static __lzo_inline
1610 #endif
1611 #endif
1612 #if !defined(__lzo_static_inline)
1613 #  define __lzo_static_inline       static __lzo_inline
1614 #endif
1615 #if !defined(__lzo_static_forceinline)
1616 #if (LZO_CC_IBMC)
1617 #  define __lzo_static_forceinline  __lzo_gnuc_extension__ static __lzo_forceinline
1618 #endif
1619 #endif
1620 #if !defined(__lzo_static_forceinline)
1621 #  define __lzo_static_forceinline  static __lzo_forceinline
1622 #endif
1623 #if !defined(__lzo_static_noinline)
1624 #if (LZO_CC_IBMC)
1625 #  define __lzo_static_noinline     __lzo_gnuc_extension__ static __lzo_noinline
1626 #endif
1627 #endif
1628 #if !defined(__lzo_static_noinline)
1629 #  define __lzo_static_noinline     static __lzo_noinline
1630 #endif
1631 #if !defined(__lzo_c99_extern_inline)
1632 #if defined(__GNUC_GNU_INLINE__)
1633 #  define __lzo_c99_extern_inline   __lzo_inline
1634 #elif defined(__GNUC_STDC_INLINE__)
1635 #  define __lzo_c99_extern_inline   extern __lzo_inline
1636 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L)
1637 #  define __lzo_c99_extern_inline   extern __lzo_inline
1638 #endif
1639 #if !defined(__lzo_c99_extern_inline) && (__lzo_HAVE_inline)
1640 #  define __lzo_c99_extern_inline   __lzo_inline
1641 #endif
1642 #endif
1643 #if defined(__lzo_c99_extern_inline)
1644 #  ifndef __lzo_HAVE_c99_extern_inline
1645 #  define __lzo_HAVE_c99_extern_inline 1
1646 #  endif
1647 #else
1648 #  define __lzo_c99_extern_inline   /*empty*/
1649 #endif
1650 #if !defined(__lzo_may_alias)
1651 #if (LZO_CC_GNUC >= 0x030400ul)
1652 #  define __lzo_may_alias       __attribute__((__may_alias__))
1653 #elif (LZO_CC_CLANG >= 0x020900ul)
1654 #  define __lzo_may_alias       __attribute__((__may_alias__))
1655 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210)) && 0
1656 #  define __lzo_may_alias       __attribute__((__may_alias__))
1657 #elif (LZO_CC_PGI >= 0x0d0a00ul) && 0
1658 #  define __lzo_may_alias       __attribute__((__may_alias__))
1659 #endif
1660 #endif
1661 #if defined(__lzo_may_alias)
1662 #  ifndef __lzo_HAVE_may_alias
1663 #  define __lzo_HAVE_may_alias 1
1664 #  endif
1665 #else
1666 #  define __lzo_may_alias       /*empty*/
1667 #endif
1668 #if !defined(__lzo_noreturn)
1669 #if (LZO_CC_GNUC >= 0x020700ul)
1670 #  define __lzo_noreturn        __attribute__((__noreturn__))
1671 #elif (LZO_CC_IBMC >= 700)
1672 #  define __lzo_noreturn        __attribute__((__noreturn__))
1673 #elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
1674 #  define __lzo_noreturn        __declspec(noreturn)
1675 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
1676 #  define __lzo_noreturn        __attribute__((__noreturn__))
1677 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1678 #  define __lzo_noreturn        __attribute__((__noreturn__))
1679 #elif (LZO_CC_MSC && (_MSC_VER >= 1200))
1680 #  define __lzo_noreturn        __declspec(noreturn)
1681 #elif (LZO_CC_PGI >= 0x0d0a00ul)
1682 #  define __lzo_noreturn        __attribute__((__noreturn__))
1683 #endif
1684 #endif
1685 #if defined(__lzo_noreturn)
1686 #  ifndef __lzo_HAVE_noreturn
1687 #  define __lzo_HAVE_noreturn 1
1688 #  endif
1689 #else
1690 #  define __lzo_noreturn        /*empty*/
1691 #endif
1692 #if !defined(__lzo_nothrow)
1693 #if (LZO_CC_GNUC >= 0x030300ul)
1694 #  define __lzo_nothrow         __attribute__((__nothrow__))
1695 #elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus)
1696 #  define __lzo_nothrow         __declspec(nothrow)
1697 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900))
1698 #  define __lzo_nothrow         __attribute__((__nothrow__))
1699 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1700 #  define __lzo_nothrow         __attribute__((__nothrow__))
1701 #elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
1702 #  define __lzo_nothrow         __declspec(nothrow)
1703 #endif
1704 #endif
1705 #if defined(__lzo_nothrow)
1706 #  ifndef __lzo_HAVE_nothrow
1707 #  define __lzo_HAVE_nothrow 1
1708 #  endif
1709 #else
1710 #  define __lzo_nothrow         /*empty*/
1711 #endif
1712 #if !defined(__lzo_restrict)
1713 #if (LZO_CC_GNUC >= 0x030400ul)
1714 #  define __lzo_restrict        __restrict__
1715 #elif (LZO_CC_IBMC >= 800) && !defined(__cplusplus)
1716 #  define __lzo_restrict        __restrict__
1717 #elif (LZO_CC_IBMC >= 1210)
1718 #  define __lzo_restrict        __restrict__
1719 #elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600))
1720 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
1721 #  define __lzo_restrict        __restrict__
1722 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM)
1723 #  define __lzo_restrict        __restrict__
1724 #elif (LZO_CC_MSC && (_MSC_VER >= 1400))
1725 #  define __lzo_restrict        __restrict
1726 #elif (LZO_CC_PGI >= 0x0d0a00ul)
1727 #  define __lzo_restrict        __restrict__
1728 #endif
1729 #endif
1730 #if defined(__lzo_restrict)
1731 #  ifndef __lzo_HAVE_restrict
1732 #  define __lzo_HAVE_restrict 1
1733 #  endif
1734 #else
1735 #  define __lzo_restrict        /*empty*/
1736 #endif
1737 #if !defined(__lzo_alignof)
1738 #if (LZO_CC_ARMCC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
1739 #  define __lzo_alignof(e)      __alignof__(e)
1740 #elif (LZO_CC_GHS) && !defined(__cplusplus)
1741 #  define __lzo_alignof(e)      __alignof__(e)
1742 #elif (LZO_CC_IBMC >= 600)
1743 #  define __lzo_alignof(e)      (__lzo_gnuc_extension__ __alignof__(e))
1744 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700))
1745 #  define __lzo_alignof(e)      __alignof__(e)
1746 #elif (LZO_CC_MSC && (_MSC_VER >= 1300))
1747 #  define __lzo_alignof(e)      __alignof(e)
1748 #elif (LZO_CC_SUNPROC >= 0x5100)
1749 #  define __lzo_alignof(e)      __alignof__(e)
1750 #endif
1751 #endif
1752 #if defined(__lzo_alignof)
1753 #  ifndef __lzo_HAVE_alignof
1754 #  define __lzo_HAVE_alignof 1
1755 #  endif
1756 #endif
1757 #if !defined(__lzo_struct_packed)
1758 #if   (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
1759 #elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul))
1760 #elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
1761 #elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul))
1762 #elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus)
1763 #elif (LZO_CC_GNUC >= 0x030400ul) && !(LZO_CC_PCC_GNUC) && (LZO_ARCH_AMD64 || LZO_ARCH_I386)
1764 #  define __lzo_struct_packed(s)        struct s {
1765 #  define __lzo_struct_packed_end()     } __attribute__((__gcc_struct__,__packed__));
1766 #  define __lzo_struct_packed_ma_end()  } __lzo_may_alias __attribute__((__gcc_struct__,__packed__));
1767 #elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100))
1768 #  define __lzo_struct_packed(s)        struct s {
1769 #  define __lzo_struct_packed_end()     } __attribute__((__packed__));
1770 #  define __lzo_struct_packed_ma_end()  } __lzo_may_alias __attribute__((__packed__));
1771 #elif (LZO_CC_IBMC >= 700)
1772 #  define __lzo_struct_packed(s)        __lzo_gnuc_extension__ struct s {
1773 #  define __lzo_struct_packed_end()     } __attribute__((__packed__));
1774 #  define __lzo_struct_packed_ma_end()  } __lzo_may_alias __attribute__((__packed__));
1775 #elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300))
1776 #  define __lzo_struct_packed(s)        __pragma(pack(push,1)) struct s {
1777 #  define __lzo_struct_packed_end()     } __pragma(pack(pop));
1778 #elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900))
1779 #  define __lzo_struct_packed(s)        _Packed struct s {
1780 #  define __lzo_struct_packed_end()     };
1781 #endif
1782 #endif
1783 #if defined(__lzo_struct_packed) && !defined(__lzo_struct_packed_ma)
1784 #  define __lzo_struct_packed_ma(s)     __lzo_struct_packed(s)
1785 #endif
1786 #if defined(__lzo_struct_packed_end) && !defined(__lzo_struct_packed_ma_end)
1787 #  define __lzo_struct_packed_ma_end()  __lzo_struct_packed_end()
1788 #endif
1789 #if !defined(__lzo_byte_struct)
1790 #if defined(__lzo_struct_packed)
1791 #  define __lzo_byte_struct(s,n)        __lzo_struct_packed(s) unsigned char a[n]; __lzo_struct_packed_end()
1792 #  define __lzo_byte_struct_ma(s,n)     __lzo_struct_packed_ma(s) unsigned char a[n]; __lzo_struct_packed_ma_end()
1793 #elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_PGI || (LZO_CC_SUNPROC >= 0x5100))
1794 #  define __lzo_byte_struct(s,n)        struct s { unsigned char a[n]; } __attribute__((__packed__));
1795 #  define __lzo_byte_struct_ma(s,n)     struct s { unsigned char a[n]; } __lzo_may_alias __attribute__((__packed__));
1796 #endif
1797 #endif
1798 #if defined(__lzo_byte_struct) &&  !defined(__lzo_byte_struct_ma)
1799 #  define __lzo_byte_struct_ma(s,n)     __lzo_byte_struct(s,n)
1800 #endif
1801 #if !defined(__lzo_struct_align16) && (__lzo_HAVE_alignof)
1802 #if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul))
1803 #elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
1804 #elif (LZO_CC_CILLY || LZO_CC_PCC)
1805 #elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300))
1806 #  define __lzo_struct_align16(s)       struct __declspec(align(16)) s {
1807 #  define __lzo_struct_align16_end()    };
1808 #  define __lzo_struct_align32(s)       struct __declspec(align(32)) s {
1809 #  define __lzo_struct_align32_end()    };
1810 #  define __lzo_struct_align64(s)       struct __declspec(align(64)) s {
1811 #  define __lzo_struct_align64_end()    };
1812 #elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || (LZO_CC_IBMC >= 700) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1813 #  define __lzo_struct_align16(s)       struct s {
1814 #  define __lzo_struct_align16_end()    } __attribute__((__aligned__(16)));
1815 #  define __lzo_struct_align32(s)       struct s {
1816 #  define __lzo_struct_align32_end()    } __attribute__((__aligned__(32)));
1817 #  define __lzo_struct_align64(s)       struct s {
1818 #  define __lzo_struct_align64_end()    } __attribute__((__aligned__(64)));
1819 #endif
1820 #endif
1821 #if !defined(__lzo_union_um)
1822 #if   (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
1823 #elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul))
1824 #elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
1825 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER < 810))
1826 #elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul))
1827 #elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus)
1828 #elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100))
1829 #  define __lzo_union_am(s)             union s {
1830 #  define __lzo_union_am_end()          } __lzo_may_alias;
1831 #  define __lzo_union_um(s)             union s {
1832 #  define __lzo_union_um_end()          } __lzo_may_alias __attribute__((__packed__));
1833 #elif (LZO_CC_IBMC >= 700)
1834 #  define __lzo_union_am(s)             __lzo_gnuc_extension__ union s {
1835 #  define __lzo_union_am_end()          } __lzo_may_alias;
1836 #  define __lzo_union_um(s)             __lzo_gnuc_extension__ union s {
1837 #  define __lzo_union_um_end()          } __lzo_may_alias __attribute__((__packed__));
1838 #elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300))
1839 #  define __lzo_union_um(s)             __pragma(pack(push,1)) union s {
1840 #  define __lzo_union_um_end()          } __pragma(pack(pop));
1841 #elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900))
1842 #  define __lzo_union_um(s)             _Packed union s {
1843 #  define __lzo_union_um_end()          };
1844 #endif
1845 #endif
1846 #if !defined(__lzo_union_am)
1847 #  define __lzo_union_am(s)             union s {
1848 #  define __lzo_union_am_end()          };
1849 #endif
1850 #if !defined(__lzo_constructor)
1851 #if (LZO_CC_GNUC >= 0x030400ul)
1852 #  define __lzo_constructor     __attribute__((__constructor__,__used__))
1853 #elif (LZO_CC_GNUC >= 0x020700ul)
1854 #  define __lzo_constructor     __attribute__((__constructor__))
1855 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
1856 #  define __lzo_constructor     __attribute__((__constructor__,__used__))
1857 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1858 #  define __lzo_constructor     __attribute__((__constructor__))
1859 #endif
1860 #endif
1861 #if defined(__lzo_constructor)
1862 #  ifndef __lzo_HAVE_constructor
1863 #  define __lzo_HAVE_constructor 1
1864 #  endif
1865 #endif
1866 #if !defined(__lzo_destructor)
1867 #if (LZO_CC_GNUC >= 0x030400ul)
1868 #  define __lzo_destructor      __attribute__((__destructor__,__used__))
1869 #elif (LZO_CC_GNUC >= 0x020700ul)
1870 #  define __lzo_destructor      __attribute__((__destructor__))
1871 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
1872 #  define __lzo_destructor      __attribute__((__destructor__,__used__))
1873 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1874 #  define __lzo_destructor      __attribute__((__destructor__))
1875 #endif
1876 #endif
1877 #if defined(__lzo_destructor)
1878 #  ifndef __lzo_HAVE_destructor
1879 #  define __lzo_HAVE_destructor 1
1880 #  endif
1881 #endif
1882 #if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor)
1883 #  error "unexpected configuration - check your compiler defines"
1884 #endif
1885 #if !defined(__lzo_likely) && !defined(__lzo_unlikely)
1886 #if (LZO_CC_GNUC >= 0x030200ul)
1887 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
1888 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
1889 #elif (LZO_CC_IBMC >= 1010)
1890 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
1891 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
1892 #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800))
1893 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
1894 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
1895 #elif (LZO_CC_CLANG && LZO_CC_CLANG_C2)
1896 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE)
1897 #  define __lzo_likely(e)       (__builtin_expect(!!(e),1))
1898 #  define __lzo_unlikely(e)     (__builtin_expect(!!(e),0))
1899 #endif
1900 #endif
1901 #if defined(__lzo_likely)
1902 #  ifndef __lzo_HAVE_likely
1903 #  define __lzo_HAVE_likely 1
1904 #  endif
1905 #else
1906 #  define __lzo_likely(e)           (e)
1907 #endif
1908 #if defined(__lzo_very_likely)
1909 #  ifndef __lzo_HAVE_very_likely
1910 #  define __lzo_HAVE_very_likely 1
1911 #  endif
1912 #else
1913 #  define __lzo_very_likely(e)      __lzo_likely(e)
1914 #endif
1915 #if defined(__lzo_unlikely)
1916 #  ifndef __lzo_HAVE_unlikely
1917 #  define __lzo_HAVE_unlikely 1
1918 #  endif
1919 #else
1920 #  define __lzo_unlikely(e)         (e)
1921 #endif
1922 #if defined(__lzo_very_unlikely)
1923 #  ifndef __lzo_HAVE_very_unlikely
1924 #  define __lzo_HAVE_very_unlikely 1
1925 #  endif
1926 #else
1927 #  define __lzo_very_unlikely(e)    __lzo_unlikely(e)
1928 #endif
1929 #if !defined(__lzo_loop_forever)
1930 #  if (LZO_CC_IBMC)
1931 #    define __lzo_loop_forever()    LZO_BLOCK_BEGIN for (;;) { ; } LZO_BLOCK_END
1932 #  else
1933 #    define __lzo_loop_forever()    do { ; } while __lzo_cte(1)
1934 #  endif
1935 #endif
1936 #if !defined(__lzo_unreachable)
1937 #if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) && lzo_has_builtin(__builtin_unreachable)
1938 #  define __lzo_unreachable()       __builtin_unreachable();
1939 #elif (LZO_CC_GNUC >= 0x040500ul)
1940 #  define __lzo_unreachable()       __builtin_unreachable();
1941 #elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1300)) && 1
1942 #  define __lzo_unreachable()       __builtin_unreachable();
1943 #endif
1944 #endif
1945 #if defined(__lzo_unreachable)
1946 #  ifndef __lzo_HAVE_unreachable
1947 #  define __lzo_HAVE_unreachable 1
1948 #  endif
1949 #else
1950 #  if 0
1951 #  define __lzo_unreachable()       ((void)0);
1952 #  else
1953 #  define __lzo_unreachable()       __lzo_loop_forever();
1954 #  endif
1955 #endif
1956 #if !defined(lzo_unused_funcs_impl)
1957 #  if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI)
1958 #    define lzo_unused_funcs_impl(r,f)  static r __attribute__((__unused__)) f
1959 #  elif 1 && (LZO_CC_BORLANDC || LZO_CC_GNUC)
1960 #    define lzo_unused_funcs_impl(r,f)  static r f
1961 #  else
1962 #    define lzo_unused_funcs_impl(r,f)  __lzo_static_forceinline r f
1963 #  endif
1964 #endif
1965 #ifndef __LZO_CTA_NAME
1966 #if (LZO_CFG_USE_COUNTER)
1967 #  define __LZO_CTA_NAME(a)         LZO_PP_ECONCAT2(a,__COUNTER__)
1968 #else
1969 #  define __LZO_CTA_NAME(a)         LZO_PP_ECONCAT2(a,__LINE__)
1970 #endif
1971 #endif
1972 #if !defined(LZO_COMPILE_TIME_ASSERT_HEADER)
1973 #  if (LZO_CC_AZTECC || LZO_CC_ZORTECHC)
1974 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END
1975 #  elif (LZO_CC_DMC || LZO_CC_SYMANTECC)
1976 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1u-2*!(e)]; LZO_EXTERN_C_END
1977 #  elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295))
1978 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END
1979 #  elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020900ul)) && defined(__cplusplus)
1980 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  LZO_EXTERN_C_BEGIN int __LZO_CTA_NAME(lzo_cta_f__)(int [1-2*!(e)]); LZO_EXTERN_C_END
1981 #  elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
1982 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  LZO_EXTERN_C_BEGIN enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__)); LZO_EXTERN_C_END
1983 #  else
1984 #    define LZO_COMPILE_TIME_ASSERT_HEADER(e)  LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-2*!(e)]; LZO_EXTERN_C_END
1985 #  endif
1986 #endif
1987 #if !defined(LZO_COMPILE_TIME_ASSERT)
1988 #  if (LZO_CC_AZTECC)
1989 #    define LZO_COMPILE_TIME_ASSERT(e)  {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];}
1990 #  elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030000ul))
1991 #    define LZO_COMPILE_TIME_ASSERT(e)  {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
1992 #  elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
1993 #    define LZO_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
1994 #  elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
1995 #    define LZO_COMPILE_TIME_ASSERT(e)  {(void) (0/!!(e));}
1996 #  elif (LZO_CC_GNUC >= 0x040700ul) && (LZO_CFG_USE_COUNTER) && defined(__cplusplus)
1997 #    define LZO_COMPILE_TIME_ASSERT(e)  {enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__));}
1998 #  elif (LZO_CC_GNUC >= 0x040700ul)
1999 #    define LZO_COMPILE_TIME_ASSERT(e)  {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
2000 #  elif (LZO_CC_MSC && (_MSC_VER < 900))
2001 #    define LZO_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
2002 #  elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295))
2003 #    define LZO_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
2004 #  else
2005 #    define LZO_COMPILE_TIME_ASSERT(e)  {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];}
2006 #  endif
2007 #endif
2008 #if (LZO_LANG_ASSEMBLER)
2009 #  undef LZO_COMPILE_TIME_ASSERT_HEADER
2010 #  define LZO_COMPILE_TIME_ASSERT_HEADER(e)  /*empty*/
2011 #else
2012 LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1)
2013 #if defined(__cplusplus)
2014 extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) }
2015 #endif
2016 LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3)
2017 #endif
2018 #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)
2019 #  if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC)
2020 #  elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC)
2021 #    define __lzo_cdecl                 __cdecl
2022 #    define __lzo_cdecl_atexit          /*empty*/
2023 #    define __lzo_cdecl_main            __cdecl
2024 #    if (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC))
2025 #      define __lzo_cdecl_qsort         __pascal
2026 #    elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC))
2027 #      define __lzo_cdecl_qsort         _stdcall
2028 #    else
2029 #      define __lzo_cdecl_qsort         __cdecl
2030 #    endif
2031 #  elif (LZO_CC_WATCOMC)
2032 #    define __lzo_cdecl                 __cdecl
2033 #  else
2034 #    define __lzo_cdecl                 __cdecl
2035 #    define __lzo_cdecl_atexit          __cdecl
2036 #    define __lzo_cdecl_main            __cdecl
2037 #    define __lzo_cdecl_qsort           __cdecl
2038 #  endif
2039 #  if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC || LZO_CC_WATCOMC)
2040 #  elif (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC))
2041 #    define __lzo_cdecl_sighandler      __pascal
2042 #  elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC))
2043 #    define __lzo_cdecl_sighandler      _stdcall
2044 #  elif (LZO_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
2045 #    define __lzo_cdecl_sighandler      __clrcall
2046 #  elif (LZO_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
2047 #    if defined(_DLL)
2048 #      define __lzo_cdecl_sighandler    _far _cdecl _loadds
2049 #    elif defined(_MT)
2050 #      define __lzo_cdecl_sighandler    _far _cdecl
2051 #    else
2052 #      define __lzo_cdecl_sighandler    _cdecl
2053 #    endif
2054 #  else
2055 #    define __lzo_cdecl_sighandler      __cdecl
2056 #  endif
2057 #elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC)
2058 #  define __lzo_cdecl                   __cdecl
2059 #elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC))
2060 #  define __lzo_cdecl                   cdecl
2061 #endif
2062 #if !defined(__lzo_cdecl)
2063 #  define __lzo_cdecl                   /*empty*/
2064 #endif
2065 #if !defined(__lzo_cdecl_atexit)
2066 #  define __lzo_cdecl_atexit            /*empty*/
2067 #endif
2068 #if !defined(__lzo_cdecl_main)
2069 #  define __lzo_cdecl_main              /*empty*/
2070 #endif
2071 #if !defined(__lzo_cdecl_qsort)
2072 #  define __lzo_cdecl_qsort             /*empty*/
2073 #endif
2074 #if !defined(__lzo_cdecl_sighandler)
2075 #  define __lzo_cdecl_sighandler        /*empty*/
2076 #endif
2077 #if !defined(__lzo_cdecl_va)
2078 #  define __lzo_cdecl_va                __lzo_cdecl
2079 #endif
2080 #if !(LZO_CFG_NO_WINDOWS_H)
2081 #if !defined(LZO_HAVE_WINDOWS_H)
2082 #if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64)
2083 #  if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000))
2084 #  elif ((LZO_OS_WIN32 && defined(__PW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)))
2085 #  elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul)))
2086 #  else
2087 #    define LZO_HAVE_WINDOWS_H 1
2088 #  endif
2089 #endif
2090 #endif
2091 #endif
2092 #define LZO_SIZEOF_CHAR             1
2093 #ifndef LZO_SIZEOF_SHORT
2094 #if defined(SIZEOF_SHORT)
2095 #  define LZO_SIZEOF_SHORT          (SIZEOF_SHORT)
2096 #elif defined(__SIZEOF_SHORT__)
2097 #  define LZO_SIZEOF_SHORT          (__SIZEOF_SHORT__)
2098 #endif
2099 #endif
2100 #ifndef LZO_SIZEOF_INT
2101 #if defined(SIZEOF_INT)
2102 #  define LZO_SIZEOF_INT            (SIZEOF_INT)
2103 #elif defined(__SIZEOF_INT__)
2104 #  define LZO_SIZEOF_INT            (__SIZEOF_INT__)
2105 #endif
2106 #endif
2107 #ifndef LZO_SIZEOF_LONG
2108 #if defined(SIZEOF_LONG)
2109 #  define LZO_SIZEOF_LONG           (SIZEOF_LONG)
2110 #elif defined(__SIZEOF_LONG__)
2111 #  define LZO_SIZEOF_LONG           (__SIZEOF_LONG__)
2112 #endif
2113 #endif
2114 #ifndef LZO_SIZEOF_LONG_LONG
2115 #if defined(SIZEOF_LONG_LONG)
2116 #  define LZO_SIZEOF_LONG_LONG      (SIZEOF_LONG_LONG)
2117 #elif defined(__SIZEOF_LONG_LONG__)
2118 #  define LZO_SIZEOF_LONG_LONG      (__SIZEOF_LONG_LONG__)
2119 #endif
2120 #endif
2121 #ifndef LZO_SIZEOF___INT16
2122 #if defined(SIZEOF___INT16)
2123 #  define LZO_SIZEOF___INT16        (SIZEOF___INT16)
2124 #endif
2125 #endif
2126 #ifndef LZO_SIZEOF___INT32
2127 #if defined(SIZEOF___INT32)
2128 #  define LZO_SIZEOF___INT32        (SIZEOF___INT32)
2129 #endif
2130 #endif
2131 #ifndef LZO_SIZEOF___INT64
2132 #if defined(SIZEOF___INT64)
2133 #  define LZO_SIZEOF___INT64        (SIZEOF___INT64)
2134 #endif
2135 #endif
2136 #ifndef LZO_SIZEOF_VOID_P
2137 #if defined(SIZEOF_VOID_P)
2138 #  define LZO_SIZEOF_VOID_P         (SIZEOF_VOID_P)
2139 #elif defined(__SIZEOF_POINTER__)
2140 #  define LZO_SIZEOF_VOID_P         (__SIZEOF_POINTER__)
2141 #endif
2142 #endif
2143 #ifndef LZO_SIZEOF_SIZE_T
2144 #if defined(SIZEOF_SIZE_T)
2145 #  define LZO_SIZEOF_SIZE_T         (SIZEOF_SIZE_T)
2146 #elif defined(__SIZEOF_SIZE_T__)
2147 #  define LZO_SIZEOF_SIZE_T         (__SIZEOF_SIZE_T__)
2148 #endif
2149 #endif
2150 #ifndef LZO_SIZEOF_PTRDIFF_T
2151 #if defined(SIZEOF_PTRDIFF_T)
2152 #  define LZO_SIZEOF_PTRDIFF_T      (SIZEOF_PTRDIFF_T)
2153 #elif defined(__SIZEOF_PTRDIFF_T__)
2154 #  define LZO_SIZEOF_PTRDIFF_T      (__SIZEOF_PTRDIFF_T__)
2155 #endif
2156 #endif
2157 #define __LZO_LSR(x,b)    (((x)+0ul) >> (b))
2158 #if !defined(LZO_SIZEOF_SHORT)
2159 #  if (LZO_ARCH_CRAY_PVP)
2160 #    define LZO_SIZEOF_SHORT        8
2161 #  elif (USHRT_MAX == LZO_0xffffL)
2162 #    define LZO_SIZEOF_SHORT        2
2163 #  elif (__LZO_LSR(USHRT_MAX,7) == 1)
2164 #    define LZO_SIZEOF_SHORT        1
2165 #  elif (__LZO_LSR(USHRT_MAX,15) == 1)
2166 #    define LZO_SIZEOF_SHORT        2
2167 #  elif (__LZO_LSR(USHRT_MAX,31) == 1)
2168 #    define LZO_SIZEOF_SHORT        4
2169 #  elif (__LZO_LSR(USHRT_MAX,63) == 1)
2170 #    define LZO_SIZEOF_SHORT        8
2171 #  elif (__LZO_LSR(USHRT_MAX,127) == 1)
2172 #    define LZO_SIZEOF_SHORT        16
2173 #  else
2174 #    error "LZO_SIZEOF_SHORT"
2175 #  endif
2176 #endif
2177 LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SHORT == sizeof(short))
2178 #if !defined(LZO_SIZEOF_INT)
2179 #  if (LZO_ARCH_CRAY_PVP)
2180 #    define LZO_SIZEOF_INT          8
2181 #  elif (UINT_MAX == LZO_0xffffL)
2182 #    define LZO_SIZEOF_INT          2
2183 #  elif (UINT_MAX == LZO_0xffffffffL)
2184 #    define LZO_SIZEOF_INT          4
2185 #  elif (__LZO_LSR(UINT_MAX,7) == 1)
2186 #    define LZO_SIZEOF_INT          1
2187 #  elif (__LZO_LSR(UINT_MAX,15) == 1)
2188 #    define LZO_SIZEOF_INT          2
2189 #  elif (__LZO_LSR(UINT_MAX,31) == 1)
2190 #    define LZO_SIZEOF_INT          4
2191 #  elif (__LZO_LSR(UINT_MAX,63) == 1)
2192 #    define LZO_SIZEOF_INT          8
2193 #  elif (__LZO_LSR(UINT_MAX,127) == 1)
2194 #    define LZO_SIZEOF_INT          16
2195 #  else
2196 #    error "LZO_SIZEOF_INT"
2197 #  endif
2198 #endif
2199 LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_INT == sizeof(int))
2200 #if !defined(LZO_SIZEOF_LONG)
2201 #  if (ULONG_MAX == LZO_0xffffffffL)
2202 #    define LZO_SIZEOF_LONG         4
2203 #  elif (__LZO_LSR(ULONG_MAX,7) == 1)
2204 #    define LZO_SIZEOF_LONG         1
2205 #  elif (__LZO_LSR(ULONG_MAX,15) == 1)
2206 #    define LZO_SIZEOF_LONG         2
2207 #  elif (__LZO_LSR(ULONG_MAX,31) == 1)
2208 #    define LZO_SIZEOF_LONG         4
2209 #  elif (__LZO_LSR(ULONG_MAX,39) == 1)
2210 #    define LZO_SIZEOF_LONG         5
2211 #  elif (__LZO_LSR(ULONG_MAX,63) == 1)
2212 #    define LZO_SIZEOF_LONG         8
2213 #  elif (__LZO_LSR(ULONG_MAX,127) == 1)
2214 #    define LZO_SIZEOF_LONG         16
2215 #  else
2216 #    error "LZO_SIZEOF_LONG"
2217 #  endif
2218 #endif
2219 LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long))
2220 #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64)
2221 #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8)
2222 #  if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__)
2223 #    if (LZO_CC_GNUC >= 0x030300ul)
2224 #      if ((__LONG_MAX__-0) == (__LONG_LONG_MAX__-0))
2225 #        define LZO_SIZEOF_LONG_LONG      LZO_SIZEOF_LONG
2226 #      elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1)
2227 #        define LZO_SIZEOF_LONG_LONG      4
2228 #      endif
2229 #    endif
2230 #  endif
2231 #endif
2232 #endif
2233 #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64)
2234 #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8)
2235 #if (LZO_ARCH_I086 && LZO_CC_DMC)
2236 #elif (LZO_CC_CILLY) && defined(__GNUC__)
2237 #  define LZO_SIZEOF_LONG_LONG      8
2238 #elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE)
2239 #  define LZO_SIZEOF_LONG_LONG      8
2240 #elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400))
2241 #  define LZO_SIZEOF_LONG_LONG      8
2242 #elif (LZO_OS_WIN64 || defined(_WIN64))
2243 #  define LZO_SIZEOF___INT64        8
2244 #elif (LZO_ARCH_I386 && (LZO_CC_DMC))
2245 #  define LZO_SIZEOF_LONG_LONG      8
2246 #elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700)))
2247 #  define LZO_SIZEOF_LONG_LONG      8
2248 #elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__)))
2249 #  define LZO_SIZEOF_LONG_LONG      8
2250 #elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC))
2251 #  define LZO_SIZEOF_LONG_LONG      8
2252 #elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC))
2253 #  define LZO_SIZEOF___INT64        8
2254 #elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC))
2255 #  define LZO_SIZEOF___INT64        8
2256 #elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520)))
2257 #  define LZO_SIZEOF___INT64        8
2258 #elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100)))
2259 #  define LZO_SIZEOF___INT64        8
2260 #elif (LZO_CC_GHS && defined(__LLONG_BIT) && ((__LLONG_BIT-0) == 64))
2261 #  define LZO_SIZEOF_LONG_LONG      8
2262 #elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && ((_INTEGRAL_MAX_BITS-0) == 64))
2263 #  define LZO_SIZEOF___INT64        8
2264 #elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
2265 #  define LZO_SIZEOF_LONG_LONG      8
2266 #elif (defined(__vms) || defined(__VMS)) && ((__INITIAL_POINTER_SIZE-0) == 64)
2267 #  define LZO_SIZEOF_LONG_LONG      8
2268 #elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2)
2269 #elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
2270 #  define LZO_SIZEOF_LONG_LONG      8
2271 #endif
2272 #endif
2273 #endif
2274 #if defined(__cplusplus) && (LZO_CC_GNUC)
2275 #  if (LZO_CC_GNUC < 0x020800ul)
2276 #    undef LZO_SIZEOF_LONG_LONG
2277 #  endif
2278 #endif
2279 #if (LZO_CFG_NO_LONG_LONG)
2280 #  undef LZO_SIZEOF_LONG_LONG
2281 #elif defined(__NO_LONG_LONG)
2282 #  undef LZO_SIZEOF_LONG_LONG
2283 #elif defined(_NO_LONGLONG)
2284 #  undef LZO_SIZEOF_LONG_LONG
2285 #endif
2286 #if !defined(LZO_WORDSIZE)
2287 #if (LZO_ARCH_ALPHA)
2288 #  define LZO_WORDSIZE              8
2289 #elif (LZO_ARCH_AMD64)
2290 #  define LZO_WORDSIZE              8
2291 #elif (LZO_ARCH_ARM64)
2292 #  define LZO_WORDSIZE              8
2293 #elif (LZO_ARCH_AVR)
2294 #  define LZO_WORDSIZE              1
2295 #elif (LZO_ARCH_H8300)
2296 #  if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
2297 #    define LZO_WORDSIZE            4
2298 #  else
2299 #    define LZO_WORDSIZE            2
2300 #  endif
2301 #elif (LZO_ARCH_I086)
2302 #  define LZO_WORDSIZE              2
2303 #elif (LZO_ARCH_IA64)
2304 #  define LZO_WORDSIZE              8
2305 #elif (LZO_ARCH_M16C)
2306 #  define LZO_WORDSIZE              2
2307 #elif (LZO_ARCH_SPU)
2308 #  define LZO_WORDSIZE              4
2309 #elif (LZO_ARCH_Z80)
2310 #  define LZO_WORDSIZE              1
2311 #elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
2312 #  define LZO_WORDSIZE              8
2313 #elif (LZO_OS_OS400 || defined(__OS400__))
2314 #  define LZO_WORDSIZE              8
2315 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
2316 #  define LZO_WORDSIZE              8
2317 #endif
2318 #endif
2319 #if !defined(LZO_SIZEOF_VOID_P)
2320 #if defined(__ILP32__) || defined(__ILP32) || defined(_ILP32)
2321 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int)  == 4)
2322 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4)
2323 #  define LZO_SIZEOF_VOID_P         4
2324 #elif defined(__ILP64__) || defined(__ILP64) || defined(_ILP64)
2325 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int)  == 8)
2326 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
2327 #  define LZO_SIZEOF_VOID_P         8
2328 #elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
2329 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4)
2330 #  define LZO_SIZEOF_VOID_P         8
2331 #elif defined(__LP64__) || defined(__LP64) || defined(_LP64)
2332 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
2333 #  define LZO_SIZEOF_VOID_P         8
2334 #elif (LZO_ARCH_AVR)
2335 #  define LZO_SIZEOF_VOID_P         2
2336 #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430)
2337 #  define LZO_SIZEOF_VOID_P         2
2338 #elif (LZO_ARCH_H8300)
2339 #  if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
2340      LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 4)
2341 #    if defined(__NORMAL_MODE__)
2342 #      define LZO_SIZEOF_VOID_P     2
2343 #    else
2344 #      define LZO_SIZEOF_VOID_P     4
2345 #    endif
2346 #  else
2347      LZO_COMPILE_TIME_ASSERT_HEADER(LZO_WORDSIZE == 2)
2348 #    define LZO_SIZEOF_VOID_P       2
2349 #  endif
2350 #  if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4)
2351 #    define LZO_SIZEOF_SIZE_T       LZO_SIZEOF_INT
2352 #    define LZO_SIZEOF_PTRDIFF_T    LZO_SIZEOF_INT
2353 #  endif
2354 #elif (LZO_ARCH_I086)
2355 #  if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM)
2356 #    define LZO_SIZEOF_VOID_P       2
2357 #  elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE)
2358 #    define LZO_SIZEOF_VOID_P       4
2359 #  else
2360 #    error "invalid LZO_ARCH_I086 memory model"
2361 #  endif
2362 #elif (LZO_ARCH_M16C)
2363 #  if defined(__m32c_cpu__) || defined(__m32cm_cpu__)
2364 #    define LZO_SIZEOF_VOID_P       4
2365 #  else
2366 #    define LZO_SIZEOF_VOID_P       2
2367 #  endif
2368 #elif (LZO_ARCH_SPU)
2369 #  define LZO_SIZEOF_VOID_P         4
2370 #elif (LZO_ARCH_Z80)
2371 #  define LZO_SIZEOF_VOID_P         2
2372 #elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
2373 #  define LZO_SIZEOF_VOID_P         4
2374 #elif (LZO_OS_OS400 || defined(__OS400__))
2375 #  if defined(__LLP64_IFC__)
2376 #    define LZO_SIZEOF_VOID_P       8
2377 #    define LZO_SIZEOF_SIZE_T       LZO_SIZEOF_LONG
2378 #    define LZO_SIZEOF_PTRDIFF_T    LZO_SIZEOF_LONG
2379 #  else
2380 #    define LZO_SIZEOF_VOID_P       16
2381 #    define LZO_SIZEOF_SIZE_T       LZO_SIZEOF_LONG
2382 #    define LZO_SIZEOF_PTRDIFF_T    LZO_SIZEOF_LONG
2383 #  endif
2384 #elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
2385 #  define LZO_SIZEOF_VOID_P         8
2386 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_LONG
2387 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_LONG
2388 #endif
2389 #endif
2390 #if !defined(LZO_SIZEOF_VOID_P)
2391 #  define LZO_SIZEOF_VOID_P         LZO_SIZEOF_LONG
2392 #endif
2393 LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_VOID_P == sizeof(void *))
2394 #if !defined(LZO_SIZEOF_SIZE_T)
2395 #if (LZO_ARCH_I086 || LZO_ARCH_M16C)
2396 #  define LZO_SIZEOF_SIZE_T         2
2397 #endif
2398 #endif
2399 #if !defined(LZO_SIZEOF_SIZE_T)
2400 #  define LZO_SIZEOF_SIZE_T         LZO_SIZEOF_VOID_P
2401 #endif
2402 #if defined(offsetof)
2403 LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SIZE_T == sizeof(size_t))
2404 #endif
2405 #if !defined(LZO_SIZEOF_PTRDIFF_T)
2406 #if (LZO_ARCH_I086)
2407 #  if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE)
2408 #    define LZO_SIZEOF_PTRDIFF_T    LZO_SIZEOF_VOID_P
2409 #  elif (LZO_MM_COMPACT || LZO_MM_LARGE)
2410 #    if (LZO_CC_BORLANDC || LZO_CC_TURBOC)
2411 #      define LZO_SIZEOF_PTRDIFF_T  4
2412 #    else
2413 #      define LZO_SIZEOF_PTRDIFF_T  2
2414 #    endif
2415 #  else
2416 #    error "invalid LZO_ARCH_I086 memory model"
2417 #  endif
2418 #endif
2419 #endif
2420 #if !defined(LZO_SIZEOF_PTRDIFF_T)
2421 #  define LZO_SIZEOF_PTRDIFF_T      LZO_SIZEOF_SIZE_T
2422 #endif
2423 #if defined(offsetof)
2424 LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
2425 #endif
2426 #if !defined(LZO_WORDSIZE)
2427 #  define LZO_WORDSIZE              LZO_SIZEOF_VOID_P
2428 #endif
2429 #if (LZO_ABI_NEUTRAL_ENDIAN)
2430 #  undef LZO_ABI_BIG_ENDIAN
2431 #  undef LZO_ABI_LITTLE_ENDIAN
2432 #elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN)
2433 #if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP)
2434 #  define LZO_ABI_BIG_ENDIAN        1
2435 #elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64)
2436 #  define LZO_ABI_LITTLE_ENDIAN     1
2437 #elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430 || LZO_ARCH_RISCV)
2438 #  define LZO_ABI_LITTLE_ENDIAN     1
2439 #elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU)
2440 #  define LZO_ABI_BIG_ENDIAN        1
2441 #elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__)
2442 #  if (__LITTLE_ENDIAN__ == 1)
2443 #    define LZO_ABI_LITTLE_ENDIAN   1
2444 #  else
2445 #    define LZO_ABI_BIG_ENDIAN      1
2446 #  endif
2447 #elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
2448 #  define LZO_ABI_BIG_ENDIAN        1
2449 #elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
2450 #  define LZO_ABI_LITTLE_ENDIAN     1
2451 #elif 1 && (LZO_ARCH_ARM) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
2452 #  define LZO_ABI_BIG_ENDIAN        1
2453 #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
2454 #  define LZO_ABI_BIG_ENDIAN        1
2455 #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
2456 #  define LZO_ABI_LITTLE_ENDIAN     1
2457 #elif 1 && (LZO_ARCH_ARM) && defined(_MSC_VER) && defined(_WIN32)
2458 #  define LZO_ABI_LITTLE_ENDIAN     1
2459 #elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC)
2460 #  if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
2461 #    error "unexpected configuration - check your compiler defines"
2462 #  elif defined(__BIG_ENDIAN)
2463 #    define LZO_ABI_BIG_ENDIAN      1
2464 #  else
2465 #    define LZO_ABI_LITTLE_ENDIAN   1
2466 #  endif
2467 #  define LZO_ABI_LITTLE_ENDIAN     1
2468 #elif 1 && (LZO_ARCH_ARM64) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
2469 #  define LZO_ABI_BIG_ENDIAN        1
2470 #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__)
2471 #  define LZO_ABI_BIG_ENDIAN        1
2472 #elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__)
2473 #  define LZO_ABI_LITTLE_ENDIAN     1
2474 #elif 1 && (LZO_ARCH_ARM64) && defined(_MSC_VER) && defined(_WIN32)
2475 #  define LZO_ABI_LITTLE_ENDIAN     1
2476 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
2477 #  define LZO_ABI_BIG_ENDIAN        1
2478 #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
2479 #  define LZO_ABI_LITTLE_ENDIAN     1
2480 #endif
2481 #endif
2482 #if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN)
2483 #  error "unexpected configuration - check your compiler defines"
2484 #endif
2485 #if (LZO_ABI_BIG_ENDIAN)
2486 #  define LZO_INFO_ABI_ENDIAN       "be"
2487 #elif (LZO_ABI_LITTLE_ENDIAN)
2488 #  define LZO_INFO_ABI_ENDIAN       "le"
2489 #elif (LZO_ABI_NEUTRAL_ENDIAN)
2490 #  define LZO_INFO_ABI_ENDIAN       "neutral"
2491 #endif
2492 #if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2)
2493 #  define LZO_ABI_I8LP16         1
2494 #  define LZO_INFO_ABI_PM       "i8lp16"
2495 #elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2)
2496 #  define LZO_ABI_ILP16         1
2497 #  define LZO_INFO_ABI_PM       "ilp16"
2498 #elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4)
2499 #  define LZO_ABI_LP32          1
2500 #  define LZO_INFO_ABI_PM       "lp32"
2501 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4)
2502 #  define LZO_ABI_ILP32         1
2503 #  define LZO_INFO_ABI_PM       "ilp32"
2504 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8)
2505 #  define LZO_ABI_LLP64         1
2506 #  define LZO_INFO_ABI_PM       "llp64"
2507 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8)
2508 #  define LZO_ABI_LP64          1
2509 #  define LZO_INFO_ABI_PM       "lp64"
2510 #elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8)
2511 #  define LZO_ABI_ILP64         1
2512 #  define LZO_INFO_ABI_PM       "ilp64"
2513 #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4)
2514 #  define LZO_ABI_IP32L64       1
2515 #  define LZO_INFO_ABI_PM       "ip32l64"
2516 #endif
2517 #if (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_VOID_P == 4 && LZO_WORDSIZE == 8)
2518 #  define LZO_ABI_IP32W64       1
2519 #  ifndef LZO_INFO_ABI_PM
2520 #  define LZO_INFO_ABI_PM       "ip32w64"
2521 #  endif
2522 #endif
2523 #if 0
2524 #elif !defined(__LZO_LIBC_OVERRIDE)
2525 #if (LZO_LIBC_NAKED)
2526 #  define LZO_INFO_LIBC         "naked"
2527 #elif (LZO_LIBC_FREESTANDING)
2528 #  define LZO_INFO_LIBC         "freestanding"
2529 #elif (LZO_LIBC_MOSTLY_FREESTANDING)
2530 #  define LZO_INFO_LIBC         "mfreestanding"
2531 #elif (LZO_LIBC_ISOC90)
2532 #  define LZO_INFO_LIBC         "isoc90"
2533 #elif (LZO_LIBC_ISOC99)
2534 #  define LZO_INFO_LIBC         "isoc99"
2535 #elif (LZO_CC_ARMCC_ARMCC) && defined(__ARMCLIB_VERSION)
2536 #  define LZO_LIBC_ISOC90       1
2537 #  define LZO_INFO_LIBC         "isoc90"
2538 #elif defined(__dietlibc__)
2539 #  define LZO_LIBC_DIETLIBC     1
2540 #  define LZO_INFO_LIBC         "dietlibc"
2541 #elif defined(_NEWLIB_VERSION)
2542 #  define LZO_LIBC_NEWLIB       1
2543 #  define LZO_INFO_LIBC         "newlib"
2544 #elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__)
2545 #  if defined(__UCLIBC_SUBLEVEL__)
2546 #    define LZO_LIBC_UCLIBC     (__UCLIBC_MAJOR__ * 0x10000L + (__UCLIBC_MINOR__-0) * 0x100 + (__UCLIBC_SUBLEVEL__-0))
2547 #  else
2548 #    define LZO_LIBC_UCLIBC     0x00090bL
2549 #  endif
2550 #  define LZO_INFO_LIBC         "uc" "libc"
2551 #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__)
2552 #  define LZO_LIBC_GLIBC        (__GLIBC__ * 0x10000L + (__GLIBC_MINOR__-0) * 0x100)
2553 #  define LZO_INFO_LIBC         "glibc"
2554 #elif (LZO_CC_MWERKS) && defined(__MSL__)
2555 #  define LZO_LIBC_MSL          __MSL__
2556 #  define LZO_INFO_LIBC         "msl"
2557 #elif 1 && defined(__IAR_SYSTEMS_ICC__)
2558 #  define LZO_LIBC_ISOC90       1
2559 #  define LZO_INFO_LIBC         "isoc90"
2560 #else
2561 #  define LZO_LIBC_DEFAULT      1
2562 #  define LZO_INFO_LIBC         "default"
2563 #endif
2564 #endif
2565 #if (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC))
2566 #  define LZO_ASM_SYNTAX_MSC 1
2567 #elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC))
2568 #elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul))
2569 #elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE))
2570 #  define LZO_ASM_SYNTAX_GNUC 1
2571 #elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE))
2572 #  define LZO_ASM_SYNTAX_GNUC 1
2573 #elif (LZO_CC_GNUC)
2574 #  define LZO_ASM_SYNTAX_GNUC 1
2575 #endif
2576 #if (LZO_ASM_SYNTAX_GNUC)
2577 #if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul))
2578 #  define __LZO_ASM_CLOBBER                     "ax"
2579 #  define __LZO_ASM_CLOBBER_LIST_CC             /*empty*/
2580 #  define __LZO_ASM_CLOBBER_LIST_CC_MEMORY      /*empty*/
2581 #  define __LZO_ASM_CLOBBER_LIST_EMPTY          /*empty*/
2582 #elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1000))
2583 #  define __LZO_ASM_CLOBBER                     "memory"
2584 #  define __LZO_ASM_CLOBBER_LIST_CC             /*empty*/
2585 #  define __LZO_ASM_CLOBBER_LIST_CC_MEMORY      : "memory"
2586 #  define __LZO_ASM_CLOBBER_LIST_EMPTY          /*empty*/
2587 #else
2588 #  define __LZO_ASM_CLOBBER                     "cc", "memory"
2589 #  define __LZO_ASM_CLOBBER_LIST_CC             : "cc"
2590 #  define __LZO_ASM_CLOBBER_LIST_CC_MEMORY      : "cc", "memory"
2591 #  define __LZO_ASM_CLOBBER_LIST_EMPTY          /*empty*/
2592 #endif
2593 #endif
2594 #if (LZO_ARCH_ALPHA)
2595 #  define LZO_OPT_AVOID_UINT_INDEX          1
2596 #elif (LZO_ARCH_AMD64)
2597 #  define LZO_OPT_AVOID_INT_INDEX           1
2598 #  define LZO_OPT_AVOID_UINT_INDEX          1
2599 #  ifndef LZO_OPT_UNALIGNED16
2600 #  define LZO_OPT_UNALIGNED16               1
2601 #  endif
2602 #  ifndef LZO_OPT_UNALIGNED32
2603 #  define LZO_OPT_UNALIGNED32               1
2604 #  endif
2605 #  ifndef LZO_OPT_UNALIGNED64
2606 #  define LZO_OPT_UNALIGNED64               1
2607 #  endif
2608 #elif (LZO_ARCH_ARM)
2609 #  if defined(__ARM_FEATURE_UNALIGNED)
2610 #   if ((__ARM_FEATURE_UNALIGNED)+0)
2611 #    ifndef LZO_OPT_UNALIGNED16
2612 #    define LZO_OPT_UNALIGNED16             1
2613 #    endif
2614 #    ifndef LZO_OPT_UNALIGNED32
2615 #    define LZO_OPT_UNALIGNED32             1
2616 #    endif
2617 #   endif
2618 #  elif 1 && (LZO_ARCH_ARM_THUMB2)
2619 #    ifndef LZO_OPT_UNALIGNED16
2620 #    define LZO_OPT_UNALIGNED16             1
2621 #    endif
2622 #    ifndef LZO_OPT_UNALIGNED32
2623 #    define LZO_OPT_UNALIGNED32             1
2624 #    endif
2625 #  elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7)
2626 #    ifndef LZO_OPT_UNALIGNED16
2627 #    define LZO_OPT_UNALIGNED16             1
2628 #    endif
2629 #    ifndef LZO_OPT_UNALIGNED32
2630 #    define LZO_OPT_UNALIGNED32             1
2631 #    endif
2632 #  elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 7)
2633 #    ifndef LZO_OPT_UNALIGNED16
2634 #    define LZO_OPT_UNALIGNED16             1
2635 #    endif
2636 #    ifndef LZO_OPT_UNALIGNED32
2637 #    define LZO_OPT_UNALIGNED32             1
2638 #    endif
2639 #  elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 6) && (defined(__TARGET_PROFILE_A) || defined(__TARGET_PROFILE_R))
2640 #    ifndef LZO_OPT_UNALIGNED16
2641 #    define LZO_OPT_UNALIGNED16             1
2642 #    endif
2643 #    ifndef LZO_OPT_UNALIGNED32
2644 #    define LZO_OPT_UNALIGNED32             1
2645 #    endif
2646 #  elif 1 && defined(_MSC_VER) && defined(_M_ARM) && ((_M_ARM)+0 >= 7)
2647 #    ifndef LZO_OPT_UNALIGNED16
2648 #    define LZO_OPT_UNALIGNED16             1
2649 #    endif
2650 #    ifndef LZO_OPT_UNALIGNED32
2651 #    define LZO_OPT_UNALIGNED32             1
2652 #    endif
2653 #  endif
2654 #elif (LZO_ARCH_ARM64)
2655 #  ifndef LZO_OPT_UNALIGNED16
2656 #  define LZO_OPT_UNALIGNED16               1
2657 #  endif
2658 #  ifndef LZO_OPT_UNALIGNED32
2659 #  define LZO_OPT_UNALIGNED32               1
2660 #  endif
2661 #  ifndef LZO_OPT_UNALIGNED64
2662 #  define LZO_OPT_UNALIGNED64               1
2663 #  endif
2664 #elif (LZO_ARCH_CRIS)
2665 #  ifndef LZO_OPT_UNALIGNED16
2666 #  define LZO_OPT_UNALIGNED16               1
2667 #  endif
2668 #  ifndef LZO_OPT_UNALIGNED32
2669 #  define LZO_OPT_UNALIGNED32               1
2670 #  endif
2671 #elif (LZO_ARCH_I386)
2672 #  ifndef LZO_OPT_UNALIGNED16
2673 #  define LZO_OPT_UNALIGNED16               1
2674 #  endif
2675 #  ifndef LZO_OPT_UNALIGNED32
2676 #  define LZO_OPT_UNALIGNED32               1
2677 #  endif
2678 #elif (LZO_ARCH_IA64)
2679 #  define LZO_OPT_AVOID_INT_INDEX           1
2680 #  define LZO_OPT_AVOID_UINT_INDEX          1
2681 #  define LZO_OPT_PREFER_POSTINC            1
2682 #elif (LZO_ARCH_M68K)
2683 #  define LZO_OPT_PREFER_POSTINC            1
2684 #  define LZO_OPT_PREFER_PREDEC             1
2685 #  if defined(__mc68020__) && !defined(__mcoldfire__)
2686 #    ifndef LZO_OPT_UNALIGNED16
2687 #    define LZO_OPT_UNALIGNED16             1
2688 #    endif
2689 #    ifndef LZO_OPT_UNALIGNED32
2690 #    define LZO_OPT_UNALIGNED32             1
2691 #    endif
2692 #  endif
2693 #elif (LZO_ARCH_MIPS)
2694 #  define LZO_OPT_AVOID_UINT_INDEX          1
2695 #elif (LZO_ARCH_POWERPC)
2696 #  define LZO_OPT_PREFER_PREINC             1
2697 #  define LZO_OPT_PREFER_PREDEC             1
2698 #  if (LZO_ABI_BIG_ENDIAN) || (LZO_WORDSIZE == 8)
2699 #    ifndef LZO_OPT_UNALIGNED16
2700 #    define LZO_OPT_UNALIGNED16             1
2701 #    endif
2702 #    ifndef LZO_OPT_UNALIGNED32
2703 #    define LZO_OPT_UNALIGNED32             1
2704 #    endif
2705 #    if (LZO_WORDSIZE == 8)
2706 #      ifndef LZO_OPT_UNALIGNED64
2707 #      define LZO_OPT_UNALIGNED64           1
2708 #      endif
2709 #    endif
2710 #  endif
2711 #elif (LZO_ARCH_RISCV)
2712 #  define LZO_OPT_AVOID_UINT_INDEX          1
2713 #  ifndef LZO_OPT_UNALIGNED16
2714 #  define LZO_OPT_UNALIGNED16               1
2715 #  endif
2716 #  ifndef LZO_OPT_UNALIGNED32
2717 #  define LZO_OPT_UNALIGNED32               1
2718 #  endif
2719 #  if (LZO_WORDSIZE == 8)
2720 #    ifndef LZO_OPT_UNALIGNED64
2721 #    define LZO_OPT_UNALIGNED64             1
2722 #    endif
2723 #  endif
2724 #elif (LZO_ARCH_S390)
2725 #  ifndef LZO_OPT_UNALIGNED16
2726 #  define LZO_OPT_UNALIGNED16               1
2727 #  endif
2728 #  ifndef LZO_OPT_UNALIGNED32
2729 #  define LZO_OPT_UNALIGNED32               1
2730 #  endif
2731 #  if (LZO_WORDSIZE == 8)
2732 #    ifndef LZO_OPT_UNALIGNED64
2733 #    define LZO_OPT_UNALIGNED64             1
2734 #    endif
2735 #  endif
2736 #elif (LZO_ARCH_SH)
2737 #  define LZO_OPT_PREFER_POSTINC            1
2738 #  define LZO_OPT_PREFER_PREDEC             1
2739 #endif
2740 #ifndef LZO_CFG_NO_INLINE_ASM
2741 #if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC)
2742 #  define LZO_CFG_NO_INLINE_ASM 1
2743 #elif (LZO_CC_LLVM)
2744 #  define LZO_CFG_NO_INLINE_ASM 1
2745 #endif
2746 #endif
2747 #if (LZO_CFG_NO_INLINE_ASM)
2748 #  undef LZO_ASM_SYNTAX_MSC
2749 #  undef LZO_ASM_SYNTAX_GNUC
2750 #  undef __LZO_ASM_CLOBBER
2751 #  undef __LZO_ASM_CLOBBER_LIST_CC
2752 #  undef __LZO_ASM_CLOBBER_LIST_CC_MEMORY
2753 #  undef __LZO_ASM_CLOBBER_LIST_EMPTY
2754 #endif
2755 #ifndef LZO_CFG_NO_UNALIGNED
2756 #if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC)
2757 #  define LZO_CFG_NO_UNALIGNED 1
2758 #endif
2759 #endif
2760 #if (LZO_CFG_NO_UNALIGNED)
2761 #  undef LZO_OPT_UNALIGNED16
2762 #  undef LZO_OPT_UNALIGNED32
2763 #  undef LZO_OPT_UNALIGNED64
2764 #endif
2765 #if defined(__LZO_INFOSTR_MM)
2766 #elif (LZO_MM_FLAT) && (defined(__LZO_INFOSTR_PM) || defined(LZO_INFO_ABI_PM))
2767 #  define __LZO_INFOSTR_MM          ""
2768 #elif defined(LZO_INFO_MM)
2769 #  define __LZO_INFOSTR_MM          "." LZO_INFO_MM
2770 #else
2771 #  define __LZO_INFOSTR_MM          ""
2772 #endif
2773 #if defined(__LZO_INFOSTR_PM)
2774 #elif defined(LZO_INFO_ABI_PM)
2775 #  define __LZO_INFOSTR_PM          "." LZO_INFO_ABI_PM
2776 #else
2777 #  define __LZO_INFOSTR_PM          ""
2778 #endif
2779 #if defined(__LZO_INFOSTR_ENDIAN)
2780 #elif defined(LZO_INFO_ABI_ENDIAN)
2781 #  define __LZO_INFOSTR_ENDIAN      "." LZO_INFO_ABI_ENDIAN
2782 #else
2783 #  define __LZO_INFOSTR_ENDIAN      ""
2784 #endif
2785 #if defined(__LZO_INFOSTR_OSNAME)
2786 #elif defined(LZO_INFO_OS_CONSOLE)
2787 #  define __LZO_INFOSTR_OSNAME      LZO_INFO_OS "." LZO_INFO_OS_CONSOLE
2788 #elif defined(LZO_INFO_OS_POSIX)
2789 #  define __LZO_INFOSTR_OSNAME      LZO_INFO_OS "." LZO_INFO_OS_POSIX
2790 #else
2791 #  define __LZO_INFOSTR_OSNAME      LZO_INFO_OS
2792 #endif
2793 #if defined(__LZO_INFOSTR_LIBC)
2794 #elif defined(LZO_INFO_LIBC)
2795 #  define __LZO_INFOSTR_LIBC        "." LZO_INFO_LIBC
2796 #else
2797 #  define __LZO_INFOSTR_LIBC        ""
2798 #endif
2799 #if defined(__LZO_INFOSTR_CCVER)
2800 #elif defined(LZO_INFO_CCVER)
2801 #  define __LZO_INFOSTR_CCVER       " " LZO_INFO_CCVER
2802 #else
2803 #  define __LZO_INFOSTR_CCVER       ""
2804 #endif
2805 #define LZO_INFO_STRING \
2806     LZO_INFO_ARCH __LZO_INFOSTR_MM __LZO_INFOSTR_PM __LZO_INFOSTR_ENDIAN \
2807     " " __LZO_INFOSTR_OSNAME __LZO_INFOSTR_LIBC " " LZO_INFO_CC __LZO_INFOSTR_CCVER
2808 #if !(LZO_CFG_SKIP_LZO_TYPES)
2809 #if (!(LZO_SIZEOF_SHORT+0 > 0 && LZO_SIZEOF_INT+0 > 0 && LZO_SIZEOF_LONG+0 > 0))
2810 #  error "missing defines for sizes"
2811 #endif
2812 #if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_P+0 > 0))
2813 #  error "missing defines for sizes"
2814 #endif
2815 #define LZO_TYPEOF_CHAR             1u
2816 #define LZO_TYPEOF_SHORT            2u
2817 #define LZO_TYPEOF_INT              3u
2818 #define LZO_TYPEOF_LONG             4u
2819 #define LZO_TYPEOF_LONG_LONG        5u
2820 #define LZO_TYPEOF___INT8           17u
2821 #define LZO_TYPEOF___INT16          18u
2822 #define LZO_TYPEOF___INT32          19u
2823 #define LZO_TYPEOF___INT64          20u
2824 #define LZO_TYPEOF___INT128         21u
2825 #define LZO_TYPEOF___INT256         22u
2826 #define LZO_TYPEOF___MODE_QI        33u
2827 #define LZO_TYPEOF___MODE_HI        34u
2828 #define LZO_TYPEOF___MODE_SI        35u
2829 #define LZO_TYPEOF___MODE_DI        36u
2830 #define LZO_TYPEOF___MODE_TI        37u
2831 #define LZO_TYPEOF_CHAR_P           129u
2832 #if !defined(lzo_llong_t)
2833 #if (LZO_SIZEOF_LONG_LONG+0 > 0)
2834 #  if !(LZO_LANG_ASSEMBLER)
2835    __lzo_gnuc_extension__ typedef long long lzo_llong_t__;
2836    __lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__;
2837 #  endif
2838 #  define lzo_llong_t               lzo_llong_t__
2839 #  define lzo_ullong_t              lzo_ullong_t__
2840 #endif
2841 #endif
2842 #if !defined(lzo_int16e_t)
2843 #if (LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT) && (LZO_SIZEOF_SHORT != 2)
2844 #  undef LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T
2845 #endif
2846 #if (LZO_SIZEOF_LONG == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
2847 #  define lzo_int16e_t              long
2848 #  define lzo_uint16e_t             unsigned long
2849 #  define LZO_TYPEOF_LZO_INT16E_T   LZO_TYPEOF_LONG
2850 #elif (LZO_SIZEOF_INT == 2) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT16E_T == LZO_TYPEOF_SHORT)
2851 #  define lzo_int16e_t              int
2852 #  define lzo_uint16e_t             unsigned int
2853 #  define LZO_TYPEOF_LZO_INT16E_T   LZO_TYPEOF_INT
2854 #elif (LZO_SIZEOF_SHORT == 2)
2855 #  define lzo_int16e_t              short int
2856 #  define lzo_uint16e_t             unsigned short int
2857 #  define LZO_TYPEOF_LZO_INT16E_T   LZO_TYPEOF_SHORT
2858 #elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM)
2859 #  if !(LZO_LANG_ASSEMBLER)
2860    typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__)));
2861    typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__)));
2862 #  endif
2863 #  define lzo_int16e_t              lzo_int16e_hi_t__
2864 #  define lzo_uint16e_t             lzo_uint16e_hi_t__
2865 #  define LZO_TYPEOF_LZO_INT16E_T   LZO_TYPEOF___MODE_HI
2866 #elif (LZO_SIZEOF___INT16 == 2)
2867 #  define lzo_int16e_t              __int16
2868 #  define lzo_uint16e_t             unsigned __int16
2869 #  define LZO_TYPEOF_LZO_INT16E_T   LZO_TYPEOF___INT16
2870 #else
2871 #endif
2872 #endif
2873 #if defined(lzo_int16e_t)
2874 #  define LZO_SIZEOF_LZO_INT16E_T   2
2875    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == 2)
2876    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T)
2877 #endif
2878 #if !defined(lzo_int32e_t)
2879 #if (LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT) && (LZO_SIZEOF_INT != 4)
2880 #  undef LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T
2881 #endif
2882 #if (LZO_SIZEOF_LONG == 4) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT32E_T == LZO_TYPEOF_INT)
2883 #  define lzo_int32e_t              long int
2884 #  define lzo_uint32e_t             unsigned long int
2885 #  define LZO_TYPEOF_LZO_INT32E_T   LZO_TYPEOF_LONG
2886 #elif (LZO_SIZEOF_INT == 4)
2887 #  define lzo_int32e_t              int
2888 #  define lzo_uint32e_t             unsigned int
2889 #  define LZO_TYPEOF_LZO_INT32E_T   LZO_TYPEOF_INT
2890 #elif (LZO_SIZEOF_SHORT == 4)
2891 #  define lzo_int32e_t              short int
2892 #  define lzo_uint32e_t             unsigned short int
2893 #  define LZO_TYPEOF_LZO_INT32E_T   LZO_TYPEOF_SHORT
2894 #elif (LZO_SIZEOF_LONG_LONG == 4)
2895 #  define lzo_int32e_t              lzo_llong_t
2896 #  define lzo_uint32e_t             lzo_ullong_t
2897 #  define LZO_TYPEOF_LZO_INT32E_T   LZO_TYPEOF_LONG_LONG
2898 #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
2899 #  if !(LZO_LANG_ASSEMBLER)
2900    typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
2901    typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
2902 #  endif
2903 #  define lzo_int32e_t              lzo_int32e_si_t__
2904 #  define lzo_uint32e_t             lzo_uint32e_si_t__
2905 #  define LZO_TYPEOF_LZO_INT32E_T   LZO_TYPEOF___MODE_SI
2906 #elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
2907 #  if !(LZO_LANG_ASSEMBLER)
2908    typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__)));
2909    typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__)));
2910 #  endif
2911 #  define lzo_int32e_t              lzo_int32e_si_t__
2912 #  define lzo_uint32e_t             lzo_uint32e_si_t__
2913 #  define LZO_INT32_C(c)            (c##LL)
2914 #  define LZO_UINT32_C(c)           (c##ULL)
2915 #  define LZO_TYPEOF_LZO_INT32E_T   LZO_TYPEOF___MODE_SI
2916 #elif (LZO_SIZEOF___INT32 == 4)
2917 #  define lzo_int32e_t              __int32
2918 #  define lzo_uint32e_t             unsigned __int32
2919 #  define LZO_TYPEOF_LZO_INT32E_T   LZO_TYPEOF___INT32
2920 #else
2921 #endif
2922 #endif
2923 #if defined(lzo_int32e_t)
2924 #  define LZO_SIZEOF_LZO_INT32E_T   4
2925    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == 4)
2926    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == LZO_SIZEOF_LZO_INT32E_T)
2927 #endif
2928 #if !defined(lzo_int64e_t)
2929 #if (LZO_SIZEOF___INT64 == 8)
2930 #  if (LZO_CC_BORLANDC) && !defined(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T)
2931 #    define LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T  LZO_TYPEOF___INT64
2932 #  endif
2933 #endif
2934 #if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF_LONG_LONG) && (LZO_SIZEOF_LONG_LONG != 8)
2935 #  undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
2936 #endif
2937 #if (LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64) && (LZO_SIZEOF___INT64 != 8)
2938 #  undef LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T
2939 #endif
2940 #if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
2941 #  define lzo_int64e_t              int
2942 #  define lzo_uint64e_t             unsigned int
2943 #  define LZO_TYPEOF_LZO_INT64E_T   LZO_TYPEOF_INT
2944 #elif (LZO_SIZEOF_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF_LONG_LONG) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64)
2945 #  define lzo_int64e_t              long int
2946 #  define lzo_uint64e_t             unsigned long int
2947 #  define LZO_TYPEOF_LZO_INT64E_T   LZO_TYPEOF_LONG
2948 #elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_PREFER_TYPEOF_ACC_INT64E_T == LZO_TYPEOF___INT64)
2949 #  define lzo_int64e_t              lzo_llong_t
2950 #  define lzo_uint64e_t             lzo_ullong_t
2951 #  define LZO_TYPEOF_LZO_INT64E_T   LZO_TYPEOF_LONG_LONG
2952 #  if (LZO_CC_BORLANDC)
2953 #    define LZO_INT64_C(c)          ((c) + 0ll)
2954 #    define LZO_UINT64_C(c)         ((c) + 0ull)
2955 #  elif 0
2956 #    define LZO_INT64_C(c)          (__lzo_gnuc_extension__ (c##LL))
2957 #    define LZO_UINT64_C(c)         (__lzo_gnuc_extension__ (c##ULL))
2958 #  else
2959 #    define LZO_INT64_C(c)          (c##LL)
2960 #    define LZO_UINT64_C(c)         (c##ULL)
2961 #  endif
2962 #elif (LZO_SIZEOF___INT64 == 8)
2963 #  define lzo_int64e_t              __int64
2964 #  define lzo_uint64e_t             unsigned __int64
2965 #  define LZO_TYPEOF_LZO_INT64E_T   LZO_TYPEOF___INT64
2966 #  if (LZO_CC_BORLANDC)
2967 #    define LZO_INT64_C(c)          ((c) + 0i64)
2968 #    define LZO_UINT64_C(c)         ((c) + 0ui64)
2969 #  else
2970 #    define LZO_INT64_C(c)          (c##i64)
2971 #    define LZO_UINT64_C(c)         (c##ui64)
2972 #  endif
2973 #else
2974 #endif
2975 #endif
2976 #if defined(lzo_int64e_t)
2977 #  define LZO_SIZEOF_LZO_INT64E_T   8
2978    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8)
2979    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T)
2980 #endif
2981 #if !defined(lzo_int32l_t)
2982 #if defined(lzo_int32e_t)
2983 #  define lzo_int32l_t              lzo_int32e_t
2984 #  define lzo_uint32l_t             lzo_uint32e_t
2985 #  define LZO_SIZEOF_LZO_INT32L_T   LZO_SIZEOF_LZO_INT32E_T
2986 #  define LZO_TYPEOF_LZO_INT32L_T   LZO_TYPEOF_LZO_INT32E_T
2987 #elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
2988 #  define lzo_int32l_t              int
2989 #  define lzo_uint32l_t             unsigned int
2990 #  define LZO_SIZEOF_LZO_INT32L_T   LZO_SIZEOF_INT
2991 #  define LZO_TYPEOF_LZO_INT32L_T   LZO_SIZEOF_INT
2992 #elif (LZO_SIZEOF_LONG >= 4)
2993 #  define lzo_int32l_t              long int
2994 #  define lzo_uint32l_t             unsigned long int
2995 #  define LZO_SIZEOF_LZO_INT32L_T   LZO_SIZEOF_LONG
2996 #  define LZO_TYPEOF_LZO_INT32L_T   LZO_SIZEOF_LONG
2997 #else
2998 #  error "lzo_int32l_t"
2999 #endif
3000 #endif
3001 #if 1
3002    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) >= 4)
3003    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) == LZO_SIZEOF_LZO_INT32L_T)
3004 #endif
3005 #if !defined(lzo_int64l_t)
3006 #if defined(lzo_int64e_t)
3007 #  define lzo_int64l_t              lzo_int64e_t
3008 #  define lzo_uint64l_t             lzo_uint64e_t
3009 #  define LZO_SIZEOF_LZO_INT64L_T   LZO_SIZEOF_LZO_INT64E_T
3010 #  define LZO_TYPEOF_LZO_INT64L_T   LZO_TYPEOF_LZO_INT64E_T
3011 #else
3012 #endif
3013 #endif
3014 #if defined(lzo_int64l_t)
3015    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) >= 8)
3016    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) == LZO_SIZEOF_LZO_INT64L_T)
3017 #endif
3018 #if !defined(lzo_int32f_t)
3019 #if (LZO_SIZEOF_SIZE_T >= 8)
3020 #  define lzo_int32f_t              lzo_int64l_t
3021 #  define lzo_uint32f_t             lzo_uint64l_t
3022 #  define LZO_SIZEOF_LZO_INT32F_T   LZO_SIZEOF_LZO_INT64L_T
3023 #  define LZO_TYPEOF_LZO_INT32F_T   LZO_TYPEOF_LZO_INT64L_T
3024 #else
3025 #  define lzo_int32f_t              lzo_int32l_t
3026 #  define lzo_uint32f_t             lzo_uint32l_t
3027 #  define LZO_SIZEOF_LZO_INT32F_T   LZO_SIZEOF_LZO_INT32L_T
3028 #  define LZO_TYPEOF_LZO_INT32F_T   LZO_TYPEOF_LZO_INT32L_T
3029 #endif
3030 #endif
3031 #if 1
3032    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) >= 4)
3033    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) == LZO_SIZEOF_LZO_INT32F_T)
3034 #endif
3035 #if !defined(lzo_int64f_t)
3036 #if defined(lzo_int64l_t)
3037 #  define lzo_int64f_t              lzo_int64l_t
3038 #  define lzo_uint64f_t             lzo_uint64l_t
3039 #  define LZO_SIZEOF_LZO_INT64F_T   LZO_SIZEOF_LZO_INT64L_T
3040 #  define LZO_TYPEOF_LZO_INT64F_T   LZO_TYPEOF_LZO_INT64L_T
3041 #else
3042 #endif
3043 #endif
3044 #if defined(lzo_int64f_t)
3045    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) >= 8)
3046    LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) == LZO_SIZEOF_LZO_INT64F_T)
3047 #endif
3048 #if !defined(lzo_intptr_t)
3049 #if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16))
3050 #  define __LZO_INTPTR_T_IS_POINTER 1
3051 #  if !(LZO_LANG_ASSEMBLER)
3052    typedef char *                   lzo_intptr_t;
3053    typedef char *                   lzo_uintptr_t;
3054 #  endif
3055 #  define lzo_intptr_t              lzo_intptr_t
3056 #  define lzo_uintptr_t             lzo_uintptr_t
3057 #  define LZO_SIZEOF_LZO_INTPTR_T   LZO_SIZEOF_VOID_P
3058 #  define LZO_TYPEOF_LZO_INTPTR_T   LZO_TYPEOF_CHAR_P
3059 #elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZEOF_INT == 4))
3060 #  if !(LZO_LANG_ASSEMBLER)
3061    typedef __w64 int                lzo_intptr_t;
3062    typedef __w64 unsigned int       lzo_uintptr_t;
3063 #  endif
3064 #  define lzo_intptr_t              lzo_intptr_t
3065 #  define lzo_uintptr_t             lzo_uintptr_t
3066 #  define LZO_SIZEOF_LZO_INTPTR_T   LZO_SIZEOF_INT
3067 #  define LZO_TYPEOF_LZO_INTPTR_T   LZO_TYPEOF_INT
3068 #elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VOID_P)
3069 #  define lzo_intptr_t              short
3070 #  define lzo_uintptr_t             unsigned short
3071 #  define LZO_SIZEOF_LZO_INTPTR_T   LZO_SIZEOF_SHORT
3072 #  define LZO_TYPEOF_LZO_INTPTR_T   LZO_TYPEOF_SHORT
3073 #elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG)
3074 #  define lzo_intptr_t              int
3075 #  define lzo_uintptr_t             unsigned int
3076 #  define LZO_SIZEOF_LZO_INTPTR_T   LZO_SIZEOF_INT
3077 #  define LZO_TYPEOF_LZO_INTPTR_T   LZO_TYPEOF_INT
3078 #elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P)
3079 #  define lzo_intptr_t              long
3080 #  define lzo_uintptr_t             unsigned long
3081 #  define LZO_SIZEOF_LZO_INTPTR_T   LZO_SIZEOF_LONG
3082 #  define LZO_TYPEOF_LZO_INTPTR_T   LZO_TYPEOF_LONG
3083 #elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P)
3084 #  define lzo_intptr_t              lzo_int64l_t
3085 #  define lzo_uintptr_t             lzo_uint64l_t
3086 #  define LZO_SIZEOF_LZO_INTPTR_T   LZO_SIZEOF_LZO_INT64L_T
3087 #  define LZO_TYPEOF_LZO_INTPTR_T   LZO_TYPEOF_LZO_INT64L_T
3088 #else
3089 #  error "lzo_intptr_t"
3090 #endif
3091 #endif
3092 #if 1
3093     LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) >= sizeof(void *))
3094     LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) == sizeof(lzo_uintptr_t))
3095 #endif
3096 #if !defined(lzo_word_t)
3097 #if defined(LZO_WORDSIZE) && (LZO_WORDSIZE+0 > 0)
3098 #if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER)
3099 #  define lzo_word_t                lzo_uintptr_t
3100 #  define lzo_sword_t               lzo_intptr_t
3101 #  define LZO_SIZEOF_LZO_WORD_T     LZO_SIZEOF_LZO_INTPTR_T
3102 #  define LZO_TYPEOF_LZO_WORD_T     LZO_TYPEOF_LZO_INTPTR_T
3103 #elif (LZO_WORDSIZE == LZO_SIZEOF_LONG)
3104 #  define lzo_word_t                unsigned long
3105 #  define lzo_sword_t               long
3106 #  define LZO_SIZEOF_LZO_WORD_T     LZO_SIZEOF_LONG
3107 #  define LZO_TYPEOF_LZO_WORD_T     LZO_TYPEOF_LONG
3108 #elif (LZO_WORDSIZE == LZO_SIZEOF_INT)
3109 #  define lzo_word_t                unsigned int
3110 #  define lzo_sword_t               int
3111 #  define LZO_SIZEOF_LZO_WORD_T     LZO_SIZEOF_INT
3112 #  define LZO_TYPEOF_LZO_WORD_T     LZO_TYPEOF_INT
3113 #elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT)
3114 #  define lzo_word_t                unsigned short
3115 #  define lzo_sword_t               short
3116 #  define LZO_SIZEOF_LZO_WORD_T     LZO_SIZEOF_SHORT
3117 #  define LZO_TYPEOF_LZO_WORD_T     LZO_TYPEOF_SHORT
3118 #elif (LZO_WORDSIZE == 1)
3119 #  define lzo_word_t                unsigned char
3120 #  define lzo_sword_t               signed char
3121 #  define LZO_SIZEOF_LZO_WORD_T     1
3122 #  define LZO_TYPEOF_LZO_WORD_T     LZO_TYPEOF_CHAR
3123 #elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T)
3124 #  define lzo_word_t                lzo_uint64l_t
3125 #  define lzo_sword_t               lzo_int64l_t
3126 #  define LZO_SIZEOF_LZO_WORD_T     LZO_SIZEOF_LZO_INT64L_T
3127 #  define LZO_TYPEOF_LZO_WORD_T     LZO_SIZEOF_LZO_INT64L_T
3128 #elif (LZO_ARCH_SPU) && (LZO_CC_GNUC)
3129 #if 0
3130 #  if !(LZO_LANG_ASSEMBLER)
3131    typedef unsigned lzo_word_t  __attribute__((__mode__(__V16QI__)));
3132    typedef int      lzo_sword_t __attribute__((__mode__(__V16QI__)));
3133 #  endif
3134 #  define lzo_word_t                lzo_word_t
3135 #  define lzo_sword_t               lzo_sword_t
3136 #  define LZO_SIZEOF_LZO_WORD_T     16
3137 #  define LZO_TYPEOF_LZO_WORD_T     LZO_TYPEOF___MODE_V16QI
3138 #endif
3139 #else
3140 #  error "lzo_word_t"
3141 #endif
3142 #endif
3143 #endif
3144 #if 1 && defined(lzo_word_t)
3145     LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_word_t)  == LZO_WORDSIZE)
3146     LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_sword_t) == LZO_WORDSIZE)
3147 #endif
3148 #if 1
3149 #define lzo_int8_t                  signed char
3150 #define lzo_uint8_t                 unsigned char
3151 #define LZO_SIZEOF_LZO_INT8_T       1
3152 #define LZO_TYPEOF_LZO_INT8_T       LZO_TYPEOF_CHAR
3153 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1)
3154 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t))
3155 #endif
3156 #if defined(lzo_int16e_t)
3157 #define lzo_int16_t                 lzo_int16e_t
3158 #define lzo_uint16_t                lzo_uint16e_t
3159 #define LZO_SIZEOF_LZO_INT16_T      LZO_SIZEOF_LZO_INT16E_T
3160 #define LZO_TYPEOF_LZO_INT16_T      LZO_TYPEOF_LZO_INT16E_T
3161 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2)
3162 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t))
3163 #endif
3164 #if defined(lzo_int32e_t)
3165 #define lzo_int32_t                 lzo_int32e_t
3166 #define lzo_uint32_t                lzo_uint32e_t
3167 #define LZO_SIZEOF_LZO_INT32_T      LZO_SIZEOF_LZO_INT32E_T
3168 #define LZO_TYPEOF_LZO_INT32_T      LZO_TYPEOF_LZO_INT32E_T
3169 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4)
3170 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t))
3171 #endif
3172 #if defined(lzo_int64e_t)
3173 #define lzo_int64_t                 lzo_int64e_t
3174 #define lzo_uint64_t                lzo_uint64e_t
3175 #define LZO_SIZEOF_LZO_INT64_T      LZO_SIZEOF_LZO_INT64E_T
3176 #define LZO_TYPEOF_LZO_INT64_T      LZO_TYPEOF_LZO_INT64E_T
3177 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8)
3178 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t))
3179 #endif
3180 #if 1
3181 #define lzo_int_least32_t           lzo_int32l_t
3182 #define lzo_uint_least32_t          lzo_uint32l_t
3183 #define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T
3184 #define LZO_TYPEOF_LZO_INT_LEAST32_T LZO_TYPEOF_LZO_INT32L_T
3185 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4)
3186 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_least32_t))
3187 #endif
3188 #if defined(lzo_int64l_t)
3189 #define lzo_int_least64_t           lzo_int64l_t
3190 #define lzo_uint_least64_t          lzo_uint64l_t
3191 #define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T
3192 #define LZO_TYPEOF_LZO_INT_LEAST64_T LZO_TYPEOF_LZO_INT64L_T
3193 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8)
3194 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_least64_t))
3195 #endif
3196 #if 1
3197 #define lzo_int_fast32_t           lzo_int32f_t
3198 #define lzo_uint_fast32_t          lzo_uint32f_t
3199 #define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T
3200 #define LZO_TYPEOF_LZO_INT_FAST32_T LZO_TYPEOF_LZO_INT32F_T
3201 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4)
3202 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast32_t))
3203 #endif
3204 #if defined(lzo_int64f_t)
3205 #define lzo_int_fast64_t           lzo_int64f_t
3206 #define lzo_uint_fast64_t          lzo_uint64f_t
3207 #define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T
3208 #define LZO_TYPEOF_LZO_INT_FAST64_T LZO_TYPEOF_LZO_INT64F_T
3209 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8)
3210 LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast64_t))
3211 #endif
3212 #if !defined(LZO_INT16_C)
3213 #  if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 2)
3214 #    define LZO_INT16_C(c)          ((c) + 0)
3215 #    define LZO_UINT16_C(c)         ((c) + 0U)
3216 #  elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 2)
3217 #    define LZO_INT16_C(c)          ((c) + 0L)
3218 #    define LZO_UINT16_C(c)         ((c) + 0UL)
3219 #  elif (LZO_SIZEOF_INT >= 2)
3220 #    define LZO_INT16_C(c)          (c)
3221 #    define LZO_UINT16_C(c)         (c##U)
3222 #  elif (LZO_SIZEOF_LONG >= 2)
3223 #    define LZO_INT16_C(c)          (c##L)
3224 #    define LZO_UINT16_C(c)         (c##UL)
3225 #  else
3226 #    error "LZO_INT16_C"
3227 #  endif
3228 #endif
3229 #if !defined(LZO_INT32_C)
3230 #  if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 4)
3231 #    define LZO_INT32_C(c)          ((c) + 0)
3232 #    define LZO_UINT32_C(c)         ((c) + 0U)
3233 #  elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 4)
3234 #    define LZO_INT32_C(c)          ((c) + 0L)
3235 #    define LZO_UINT32_C(c)         ((c) + 0UL)
3236 #  elif (LZO_SIZEOF_INT >= 4)
3237 #    define LZO_INT32_C(c)          (c)
3238 #    define LZO_UINT32_C(c)         (c##U)
3239 #  elif (LZO_SIZEOF_LONG >= 4)
3240 #    define LZO_INT32_C(c)          (c##L)
3241 #    define LZO_UINT32_C(c)         (c##UL)
3242 #  elif (LZO_SIZEOF_LONG_LONG >= 4)
3243 #    define LZO_INT32_C(c)          (c##LL)
3244 #    define LZO_UINT32_C(c)         (c##ULL)
3245 #  else
3246 #    error "LZO_INT32_C"
3247 #  endif
3248 #endif
3249 #if !defined(LZO_INT64_C) && defined(lzo_int64l_t)
3250 #  if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 8)
3251 #    define LZO_INT64_C(c)          ((c) + 0)
3252 #    define LZO_UINT64_C(c)         ((c) + 0U)
3253 #  elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 8)
3254 #    define LZO_INT64_C(c)          ((c) + 0L)
3255 #    define LZO_UINT64_C(c)         ((c) + 0UL)
3256 #  elif (LZO_SIZEOF_INT >= 8)
3257 #    define LZO_INT64_C(c)          (c)
3258 #    define LZO_UINT64_C(c)         (c##U)
3259 #  elif (LZO_SIZEOF_LONG >= 8)
3260 #    define LZO_INT64_C(c)          (c##L)
3261 #    define LZO_UINT64_C(c)         (c##UL)
3262 #  else
3263 #    error "LZO_INT64_C"
3264 #  endif
3265 #endif
3266 #endif
3267 
3268 #endif /* already included */
3269 
3270 /* vim:set ts=4 sw=4 et: */
3271