home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / lzo / lzodefs.h < prev    next >
Encoding:
C/C++ Source or Header  |  2007-06-09  |  55.3 KB  |  1,546 lines

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