~ubuntu-branches/ubuntu/intrepid/gnutls26/intrepid-proposed

« back to all changes in this revision

Viewing changes to libextra/minilzo/lzodefs.h

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Metzler
  • Date: 2008-05-01 13:09:49 UTC
  • Revision ID: james.westby@ubuntu.com-20080501130949-qsbsi06stso6a0ij
Tags: upstream-2.2.3~rc
ImportĀ upstreamĀ versionĀ 2.2.3~rc

Show diffs side-by-side

added added

removed removed

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