1
0

lzodefs.h 67 KB

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