zemu 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. checksums.yaml +7 -0
  2. data/lib/zemu/config.rb +312 -0
  3. data/lib/zemu/instance.rb +179 -0
  4. data/lib/zemu.rb +172 -0
  5. data/src/debug.c +118 -0
  6. data/src/debug.h +30 -0
  7. data/src/external/Z/API/Z/ABIs/generic/allocator.h +36 -0
  8. data/src/external/Z/API/Z/ABIs/generic/cipher.h +47 -0
  9. data/src/external/Z/API/Z/ABIs/generic/data codec.h +33 -0
  10. data/src/external/Z/API/Z/ABIs/generic/emulation.h +103 -0
  11. data/src/external/Z/API/Z/ABIs/generic/hash function.h +33 -0
  12. data/src/external/Z/API/Z/ABIs/generic/module.h +33 -0
  13. data/src/external/Z/API/Z/ABIs/generic/wave codec.h +40 -0
  14. data/src/external/Z/API/Z/classes/base/InitializerList.hpp +34 -0
  15. data/src/external/Z/API/Z/classes/base/OpaqueFunctionPointer.hpp +26 -0
  16. data/src/external/Z/API/Z/classes/base/OpaqueMemberFunctionPointer.hpp +26 -0
  17. data/src/external/Z/API/Z/classes/base/Pair.hpp +46 -0
  18. data/src/external/Z/API/Z/classes/base/Range.hpp +111 -0
  19. data/src/external/Z/API/Z/classes/base/SizedString.hpp +66 -0
  20. data/src/external/Z/API/Z/classes/base/Status.hpp +89 -0
  21. data/src/external/Z/API/Z/classes/base/Symbol.hpp +39 -0
  22. data/src/external/Z/API/Z/classes/base/Tuple.hpp +111 -0
  23. data/src/external/Z/API/Z/classes/base/Value2D.hpp +389 -0
  24. data/src/external/Z/API/Z/classes/base/Value3D.hpp +368 -0
  25. data/src/external/Z/API/Z/classes/buffering/RingBuffer.hpp +93 -0
  26. data/src/external/Z/API/Z/classes/buffering/TripleBuffer.hpp +68 -0
  27. data/src/external/Z/API/Z/classes/functional/Functor.hpp +265 -0
  28. data/src/external/Z/API/Z/classes/functional/MemberFunction.hpp +98 -0
  29. data/src/external/Z/API/Z/classes/functional/ObjectMemberFunction.hpp +172 -0
  30. data/src/external/Z/API/Z/classes/functional/ObjectSelector.hpp +219 -0
  31. data/src/external/Z/API/Z/classes/functional/Selector.hpp +146 -0
  32. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/AABB.hpp +81 -0
  33. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/AABR.hpp +685 -0
  34. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Box.hpp +219 -0
  35. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Circle.hpp +80 -0
  36. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Line2D.hpp +93 -0
  37. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Line3D.hpp +80 -0
  38. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Rectangle.hpp +675 -0
  39. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Sphere.hpp +0 -0
  40. data/src/external/Z/API/Z/classes/memory/Shared.hpp +90 -0
  41. data/src/external/Z/API/Z/constants/base.h +35 -0
  42. data/src/external/Z/API/Z/constants/chemical elements.h +6385 -0
  43. data/src/external/Z/API/Z/constants/numbers.h +963 -0
  44. data/src/external/Z/API/Z/constants/version.h +15 -0
  45. data/src/external/Z/API/Z/formats/character set/ASCII.h +158 -0
  46. data/src/external/Z/API/Z/formats/character set/DOS CP437.h +159 -0
  47. data/src/external/Z/API/Z/formats/character set/DOS CP737.h +159 -0
  48. data/src/external/Z/API/Z/formats/character set/DOS CP775.h +159 -0
  49. data/src/external/Z/API/Z/formats/character set/DOS CP850.h +159 -0
  50. data/src/external/Z/API/Z/formats/character set/DOS CP852.h +159 -0
  51. data/src/external/Z/API/Z/formats/character set/DOS CP855.h +159 -0
  52. data/src/external/Z/API/Z/formats/character set/DOS CP857.h +159 -0
  53. data/src/external/Z/API/Z/formats/character set/DOS CP858.h +159 -0
  54. data/src/external/Z/API/Z/formats/character set/DOS CP860.h +159 -0
  55. data/src/external/Z/API/Z/formats/character set/DOS CP861.h +159 -0
  56. data/src/external/Z/API/Z/formats/character set/DOS CP862.h +159 -0
  57. data/src/external/Z/API/Z/formats/character set/DOS CP863.h +159 -0
  58. data/src/external/Z/API/Z/formats/character set/DOS CP864.h +159 -0
  59. data/src/external/Z/API/Z/formats/character set/DOS CP865.h +159 -0
  60. data/src/external/Z/API/Z/formats/character set/DOS CP866.h +159 -0
  61. data/src/external/Z/API/Z/formats/character set/DOS CP869.h +159 -0
  62. data/src/external/Z/API/Z/formats/character set/DOS CP872.h +159 -0
  63. data/src/external/Z/API/Z/formats/character set/DOS CP874.h +159 -0
  64. data/src/external/Z/API/Z/formats/character set/Unicode.h +30119 -0
  65. data/src/external/Z/API/Z/formats/data model/I16LP32.h +19 -0
  66. data/src/external/Z/API/Z/formats/data model/ILP32.h +19 -0
  67. data/src/external/Z/API/Z/formats/data model/ILP64.h +19 -0
  68. data/src/external/Z/API/Z/formats/data model/IP16L32.h +19 -0
  69. data/src/external/Z/API/Z/formats/data model/LLP64.h +19 -0
  70. data/src/external/Z/API/Z/formats/data model/LP32.h +19 -0
  71. data/src/external/Z/API/Z/formats/data model/LP64.h +19 -0
  72. data/src/external/Z/API/Z/formats/data model/SILP64.h +19 -0
  73. data/src/external/Z/API/Z/formats/file system/FAT12.h +61 -0
  74. data/src/external/Z/API/Z/formats/floating-point/IEEE 754.h +141 -0
  75. data/src/external/Z/API/Z/formats/floating-point/x87.h +74 -0
  76. data/src/external/Z/API/Z/formats/image/ICNS.h +39 -0
  77. data/src/external/Z/API/Z/formats/keymap/Mac OS.h +284 -0
  78. data/src/external/Z/API/Z/formats/keymap/Z.h +141 -0
  79. data/src/external/Z/API/Z/formats/multimedia/Creative Voice.h +106 -0
  80. data/src/external/Z/API/Z/formats/multimedia/Microsoft Wave.h +49 -0
  81. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/ACH.h +44 -0
  82. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/FRZ.h +54 -0
  83. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/PRG.h +33 -0
  84. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SEM.h +46 -0
  85. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SIT.h +34 -0
  86. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SNA.h +117 -0
  87. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SNP.h +37 -0
  88. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SP.h +62 -0
  89. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/Z80.h +117 -0
  90. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/ZX.h +56 -0
  91. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/ZX82.h +70 -0
  92. data/src/external/Z/API/Z/formats/storage medium image/NES Game Pak/UNIF.h +26 -0
  93. data/src/external/Z/API/Z/formats/storage medium image/NES Game Pak/iNES.h +76 -0
  94. data/src/external/Z/API/Z/formats/storage medium image/audio/TAP.h +25 -0
  95. data/src/external/Z/API/Z/formats/storage medium image/audio/TZX.h +1185 -0
  96. data/src/external/Z/API/Z/formats/storage medium image/audio/Warajevo TAP.h +32 -0
  97. data/src/external/Z/API/Z/formats/storage medium image/floppy disk/FDI.h +45 -0
  98. data/src/external/Z/API/Z/functions/base/Z2D.h +583 -0
  99. data/src/external/Z/API/Z/functions/base/Z3D.h +712 -0
  100. data/src/external/Z/API/Z/functions/base/ZRange.h +137 -0
  101. data/src/external/Z/API/Z/functions/base/all.h +16 -0
  102. data/src/external/Z/API/Z/functions/base/casting.hpp +37 -0
  103. data/src/external/Z/API/Z/functions/base/character.h +38 -0
  104. data/src/external/Z/API/Z/functions/base/constructors.h +326 -0
  105. data/src/external/Z/API/Z/functions/base/structure.hpp +26 -0
  106. data/src/external/Z/API/Z/functions/base/type.hpp +60 -0
  107. data/src/external/Z/API/Z/functions/base/value.h +1901 -0
  108. data/src/external/Z/API/Z/functions/base/value.hpp +112 -0
  109. data/src/external/Z/API/Z/functions/buffering/ZRingBuffer.h +85 -0
  110. data/src/external/Z/API/Z/functions/buffering/ZTripleBuffer.h +65 -0
  111. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/Z2DLine.h +179 -0
  112. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/Z3DLine.h +168 -0
  113. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZAABB.h +361 -0
  114. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZAABR.h +1081 -0
  115. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZBox.h +340 -0
  116. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZCircle.h +142 -0
  117. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZRectangle.h +1267 -0
  118. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZSphere.h +156 -0
  119. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/all.h +18 -0
  120. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/constructors.h +620 -0
  121. data/src/external/Z/API/Z/functions/time/date.h +29 -0
  122. data/src/external/Z/API/Z/hardware/CPU/architecture/6502.h +90 -0
  123. data/src/external/Z/API/Z/hardware/CPU/architecture/Z80.h +245 -0
  124. data/src/external/Z/API/Z/hardware/CPU/architecture/i4004.h +37 -0
  125. data/src/external/Z/API/Z/hardware/PSG/General Instrument/AY-3-891x.h +180 -0
  126. data/src/external/Z/API/Z/hardware/VDC/Ricoh/RP2C0x.h +625 -0
  127. data/src/external/Z/API/Z/hardware/bus/AGP.h +24 -0
  128. data/src/external/Z/API/Z/hardware/bus/USB.h +510 -0
  129. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/Inves Spectrum +.h +47 -0
  130. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/Pentagon.h +13 -0
  131. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/Scorpion.h +13 -0
  132. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum + 128K.h +158 -0
  133. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +.h +82 -0
  134. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +2.h +13 -0
  135. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +2A.h +13 -0
  136. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +3.h +13 -0
  137. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum.h +109 -0
  138. data/src/external/Z/API/Z/hardware/machine/model/console/Nintendo Entertainment System/NES-001 (NTSC).h +29 -0
  139. data/src/external/Z/API/Z/hardware/machine/model/console/Nintendo Entertainment System/NES-001 (PAL).h +29 -0
  140. data/src/external/Z/API/Z/hardware/machine/platform/computer/ZX Spectrum.h +405 -0
  141. data/src/external/Z/API/Z/hardware/machine/platform/console/Game Boy.h +49 -0
  142. data/src/external/Z/API/Z/hardware/machine/platform/console/Nintendo Entertainment System.h +350 -0
  143. data/src/external/Z/API/Z/hardware/storage medium/ROM cartridge/SNES Game Pak.h +238 -0
  144. data/src/external/Z/API/Z/inspection/C/completion.h +178 -0
  145. data/src/external/Z/API/Z/inspection/C/modules/C11.h +41 -0
  146. data/src/external/Z/API/Z/inspection/C/modules/C18.h +13 -0
  147. data/src/external/Z/API/Z/inspection/C/modules/C89.h +19 -0
  148. data/src/external/Z/API/Z/inspection/C/modules/C90.h +13 -0
  149. data/src/external/Z/API/Z/inspection/C/modules/C94.h +15 -0
  150. data/src/external/Z/API/Z/inspection/C/modules/C99.h +29 -0
  151. data/src/external/Z/API/Z/inspection/C/modules/KR C.h +19 -0
  152. data/src/external/Z/API/Z/inspection/C++/completion.h +512 -0
  153. data/src/external/Z/API/Z/inspection/C++/modules/C++03.h +15 -0
  154. data/src/external/Z/API/Z/inspection/C++/modules/C++11.h +80 -0
  155. data/src/external/Z/API/Z/inspection/C++/modules/C++14.h +26 -0
  156. data/src/external/Z/API/Z/inspection/C++/modules/C++17.h +55 -0
  157. data/src/external/Z/API/Z/inspection/C++/modules/C++85.h +11 -0
  158. data/src/external/Z/API/Z/inspection/C++/modules/C++89.h +13 -0
  159. data/src/external/Z/API/Z/inspection/C++/modules/C++98.h +17 -0
  160. data/src/external/Z/API/Z/inspection/C++.h +78 -0
  161. data/src/external/Z/API/Z/inspection/C.h +79 -0
  162. data/src/external/Z/API/Z/inspection/CPU/completion.h +56 -0
  163. data/src/external/Z/API/Z/inspection/CPU/detection.h +714 -0
  164. data/src/external/Z/API/Z/inspection/CPU/modules/6502.h +25 -0
  165. data/src/external/Z/API/Z/inspection/CPU/modules/AArch32.h +32 -0
  166. data/src/external/Z/API/Z/inspection/CPU/modules/AArch64.h +32 -0
  167. data/src/external/Z/API/Z/inspection/CPU/modules/Z80.h +26 -0
  168. data/src/external/Z/API/Z/inspection/CPU/modules/x86-32.h +31 -0
  169. data/src/external/Z/API/Z/inspection/CPU/modules/x86-64.h +312 -0
  170. data/src/external/Z/API/Z/inspection/CPU.h +209 -0
  171. data/src/external/Z/API/Z/inspection/OS/completion.h +36 -0
  172. data/src/external/Z/API/Z/inspection/OS/detection.h +768 -0
  173. data/src/external/Z/API/Z/inspection/OS/modules/Linux.h +22 -0
  174. data/src/external/Z/API/Z/inspection/OS/modules/MS-DOS.h +16 -0
  175. data/src/external/Z/API/Z/inspection/OS/modules/Mac OS X.h +23 -0
  176. data/src/external/Z/API/Z/inspection/OS/modules/Windows.h +19 -0
  177. data/src/external/Z/API/Z/inspection/OS/modules/iPhone OS.h +23 -0
  178. data/src/external/Z/API/Z/inspection/OS.h +236 -0
  179. data/src/external/Z/API/Z/inspection/Objective-C/completion.h +8 -0
  180. data/src/external/Z/API/Z/inspection/Objective-C/modules/Objective-C v1.0.h +11 -0
  181. data/src/external/Z/API/Z/inspection/Objective-C/modules/Objective-C v2.0.h +15 -0
  182. data/src/external/Z/API/Z/inspection/Objective-C.h +51 -0
  183. data/src/external/Z/API/Z/inspection/Z.h +19 -0
  184. data/src/external/Z/API/Z/inspection/build.h +22 -0
  185. data/src/external/Z/API/Z/inspection/character set.h +66 -0
  186. data/src/external/Z/API/Z/inspection/compiler/completion.h +2885 -0
  187. data/src/external/Z/API/Z/inspection/compiler/modules/Apple LLVM.h +26 -0
  188. data/src/external/Z/API/Z/inspection/compiler/modules/Clang.h +1664 -0
  189. data/src/external/Z/API/Z/inspection/compiler/modules/GCC.h +1366 -0
  190. data/src/external/Z/API/Z/inspection/compiler/modules/SCCZ80.h +473 -0
  191. data/src/external/Z/API/Z/inspection/compiler/modules/Visual C++.h +606 -0
  192. data/src/external/Z/API/Z/inspection/compiler/modules/cc65.h +529 -0
  193. data/src/external/Z/API/Z/inspection/compiler/modules/generic.h +13 -0
  194. data/src/external/Z/API/Z/inspection/compiler/modules/template.h +650 -0
  195. data/src/external/Z/API/Z/inspection/compiler.h +299 -0
  196. data/src/external/Z/API/Z/inspection/data model/completion.h +128 -0
  197. data/src/external/Z/API/Z/inspection/data model/deduction.h +9 -0
  198. data/src/external/Z/API/Z/inspection/data model/detection.h +45 -0
  199. data/src/external/Z/API/Z/inspection/data model.h +362 -0
  200. data/src/external/Z/API/Z/inspection/floating-point/completion.h +50 -0
  201. data/src/external/Z/API/Z/inspection/floating-point.h +324 -0
  202. data/src/external/Z/API/Z/inspection/language.h +163 -0
  203. data/src/external/Z/API/Z/inspection/platform/detection.h +9 -0
  204. data/src/external/Z/API/Z/inspection/platform.h +29 -0
  205. data/src/external/Z/API/Z/keys/C++.h +27 -0
  206. data/src/external/Z/API/Z/keys/C.h +29 -0
  207. data/src/external/Z/API/Z/keys/CPU.h +80 -0
  208. data/src/external/Z/API/Z/keys/OS.h +182 -0
  209. data/src/external/Z/API/Z/keys/Objective-C.h +17 -0
  210. data/src/external/Z/API/Z/keys/chemistry.h +26 -0
  211. data/src/external/Z/API/Z/keys/compiler.h +178 -0
  212. data/src/external/Z/API/Z/keys/data model.h +32 -0
  213. data/src/external/Z/API/Z/keys/endianness.h +24 -0
  214. data/src/external/Z/API/Z/keys/language.h +21 -0
  215. data/src/external/Z/API/Z/keys/layout.h +20 -0
  216. data/src/external/Z/API/Z/keys/mathematics/geometry.h +29 -0
  217. data/src/external/Z/API/Z/keys/mathematics/number.h +21 -0
  218. data/src/external/Z/API/Z/keys/order.h +18 -0
  219. data/src/external/Z/API/Z/keys/platform.h +87 -0
  220. data/src/external/Z/API/Z/keys/program.h +39 -0
  221. data/src/external/Z/API/Z/keys/science/chemical elements.h +200 -0
  222. data/src/external/Z/API/Z/keys/science/electricity.h +18 -0
  223. data/src/external/Z/API/Z/keys/science/magnetism.h +19 -0
  224. data/src/external/Z/API/Z/keys/status.h +69 -0
  225. data/src/external/Z/API/Z/keys/text.h +27 -0
  226. data/src/external/Z/API/Z/keys/value.h +88 -0
  227. data/src/external/Z/API/Z/macros/arguments.h +25 -0
  228. data/src/external/Z/API/Z/macros/casting.h +22 -0
  229. data/src/external/Z/API/Z/macros/character.h +159 -0
  230. data/src/external/Z/API/Z/macros/date.h +14 -0
  231. data/src/external/Z/API/Z/macros/key.h +20 -0
  232. data/src/external/Z/API/Z/macros/language.h +126 -0
  233. data/src/external/Z/API/Z/macros/language.hpp +81 -0
  234. data/src/external/Z/API/Z/macros/members.h +86 -0
  235. data/src/external/Z/API/Z/macros/pasting.h +308 -0
  236. data/src/external/Z/API/Z/macros/pointer.h +33 -0
  237. data/src/external/Z/API/Z/macros/repetition.h +283 -0
  238. data/src/external/Z/API/Z/macros/structure.h +104 -0
  239. data/src/external/Z/API/Z/macros/templating.h +407 -0
  240. data/src/external/Z/API/Z/macros/tokens.h +14 -0
  241. data/src/external/Z/API/Z/macros/type enumeration.h +43 -0
  242. data/src/external/Z/API/Z/macros/type selection.hpp +76 -0
  243. data/src/external/Z/API/Z/macros/value.h +489 -0
  244. data/src/external/Z/API/Z/macros/variadic pasting.h +21 -0
  245. data/src/external/Z/API/Z/macros/variadic selection.h +56 -0
  246. data/src/external/Z/API/Z/macros/variadic.h +46 -0
  247. data/src/external/Z/API/Z/macros/version.h +17 -0
  248. data/src/external/Z/API/Z/network/3/IP.h +36 -0
  249. data/src/external/Z/API/Z/network/4/TCP.h +24 -0
  250. data/src/external/Z/API/Z/network/4/UDP.h +26 -0
  251. data/src/external/Z/API/Z/network/7/ED2K.h +104 -0
  252. data/src/external/Z/API/Z/network/7/HTTP.h +100 -0
  253. data/src/external/Z/API/Z/traits/SelectType.hpp +71 -0
  254. data/src/external/Z/API/Z/traits/TernaryType.hpp +20 -0
  255. data/src/external/Z/API/Z/traits/Type.hpp +4516 -0
  256. data/src/external/Z/API/Z/traits/TypeCount.hpp +52 -0
  257. data/src/external/Z/API/Z/traits/TypeList.hpp +376 -0
  258. data/src/external/Z/API/Z/traits/base.hpp +19 -0
  259. data/src/external/Z/API/Z/traits/filtering.hpp +30 -0
  260. data/src/external/Z/API/Z/traits/mathematics.hpp +48 -0
  261. data/src/external/Z/API/Z/types/arguments.h +19 -0
  262. data/src/external/Z/API/Z/types/base.h +1655 -0
  263. data/src/external/Z/API/Z/types/base.hpp +169 -0
  264. data/src/external/Z/API/Z/types/buffering.h +27 -0
  265. data/src/external/Z/API/Z/types/mathematics.h +135 -0
  266. data/src/external/Z/API/Z/types/time.h +23 -0
  267. data/src/external/Z/COPYING.LESSER +165 -0
  268. data/src/external/Z/development/Qt Creator/Z.pro +253 -0
  269. data/src/external/Z/distribution/CocoaPods/Zeta.podspec +18 -0
  270. data/src/external/Z/distribution/Gentoo Linux/Zeta-0.1.ebuild +22 -0
  271. data/src/external/Z/distribution/Gentoo Linux/metadata.xml +8 -0
  272. data/src/external/Z/distribution/Homebrew/Zeta.rb +11 -0
  273. data/src/external/z80/API/emulation/CPU/Z80.h +201 -0
  274. data/src/external/z80/README.md +229 -0
  275. data/src/external/z80/building/premake4.lua +33 -0
  276. data/src/external/z80/development/Xcode/Z80.xcodeproj/project.pbxproj +520 -0
  277. data/src/external/z80/sources/Z80.c +1660 -0
  278. data/src/interrupt.c +6 -0
  279. data/src/interrupt.h +3 -0
  280. data/src/io.c.erb +115 -0
  281. data/src/io.h.erb +18 -0
  282. data/src/main.c +69 -0
  283. data/src/memory.c.erb +43 -0
  284. data/src/memory.h.erb +9 -0
  285. metadata +329 -0
@@ -0,0 +1,2885 @@
1
+ /* Z Kit - inspection/compiler/completion.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Copyright (C) 2018 Ortega Sosa, Sofía.
7
+ Released under the terms of the GNU Lesser General Public License v3. */
8
+
9
+ /* MARK: - CPU endianness */
10
+
11
+ #ifdef Z_COMPILER_CPU_INTEGER_ENDIANNESS
12
+
13
+ # define Z_COMPILER_CPU_INTEGER_ENDIANNESS_8BIT Z_COMPILER_CPU_INTEGER_ENDIANNESS
14
+ # define Z_COMPILER_CPU_INTEGER_ENDIANNESS_16BIT Z_COMPILER_CPU_INTEGER_ENDIANNESS
15
+ # define Z_COMPILER_CPU_INTEGER_ENDIANNESS_32BIT Z_COMPILER_CPU_INTEGER_ENDIANNESS
16
+ # define Z_COMPILER_CPU_INTEGER_ENDIANNESS_64BIT Z_COMPILER_CPU_INTEGER_ENDIANNESS
17
+ # define Z_COMPILER_CPU_INTEGER_ENDIANNESS_128BIT Z_COMPILER_CPU_INTEGER_ENDIANNESS
18
+
19
+ #endif
20
+
21
+ /* MARK: - Bit field order */
22
+
23
+ #ifdef Z_COMPILER_BIT_FIELD_ORDER
24
+
25
+ # define Z_COMPILER_BIT_FIELD_ORDER_8BIT Z_COMPILER_BIT_FIELD_ORDER
26
+ # define Z_COMPILER_BIT_FIELD_ORDER_16BIT Z_COMPILER_BIT_FIELD_ORDER
27
+ # define Z_COMPILER_BIT_FIELD_ORDER_32BIT Z_COMPILER_BIT_FIELD_ORDER
28
+ # define Z_COMPILER_BIT_FIELD_ORDER_64BIT Z_COMPILER_BIT_FIELD_ORDER
29
+ # define Z_COMPILER_BIT_FIELD_ORDER_128BIT Z_COMPILER_BIT_FIELD_ORDER
30
+
31
+ #endif
32
+
33
+ /* MARK: - K&R C support */
34
+
35
+ #ifndef Z_COMPILER_C_HAS_OPERATOR_SIZE_OF
36
+ # define Z_COMPILER_C_HAS_OPERATOR_SIZE_OF FALSE
37
+ #endif
38
+
39
+ #ifndef Z_COMPILER_C_HAS_STORAGE_CLASS_AUTO
40
+ # define Z_COMPILER_C_HAS_STORAGE_CLASS_AUTO FALSE
41
+ #endif
42
+
43
+ #ifndef Z_COMPILER_C_HAS_STORAGE_CLASS_EXTERN
44
+ # define Z_COMPILER_C_HAS_STORAGE_CLASS_EXTERN FALSE
45
+ #endif
46
+
47
+ #ifndef Z_COMPILER_C_HAS_STORAGE_CLASS_REGISTER
48
+ # define Z_COMPILER_C_HAS_STORAGE_CLASS_REGISTER FALSE
49
+ #endif
50
+
51
+ #ifndef Z_COMPILER_C_HAS_STORAGE_CLASS_STATIC
52
+ # define Z_COMPILER_C_HAS_STORAGE_CLASS_STATIC FALSE
53
+ #endif
54
+
55
+ #ifndef Z_COMPILER_C_HAS_TYPE_FLOAT
56
+ # define Z_COMPILER_C_HAS_TYPE_FLOAT FALSE
57
+ #endif
58
+
59
+ #ifndef Z_COMPILER_C_HAS_TYPE_DOUBLE
60
+ # define Z_COMPILER_C_HAS_TYPE_DOUBLE FALSE
61
+ #endif
62
+
63
+ /* MARK: - C89 support */
64
+
65
+ #ifndef Z_COMPILER_C_HAS_ENUMERATION
66
+ # define Z_COMPILER_C_HAS_ENUMERATION FALSE
67
+ #endif
68
+
69
+ #ifndef Z_COMPILER_C_HAS_VOID_POINTER
70
+ # define Z_COMPILER_C_HAS_VOID_POINTER FALSE
71
+ #endif
72
+
73
+ #ifndef Z_COMPILER_C_HAS_TYPE_LDOUBLE
74
+ # define Z_COMPILER_C_HAS_TYPE_LDOUBLE FALSE
75
+ #endif
76
+
77
+ #ifndef Z_COMPILER_C_HAS_TYPE_QUALIFIER_CONSTANT
78
+ # define Z_COMPILER_C_HAS_TYPE_QUALIFIER_CONSTANT FALSE
79
+ #endif
80
+
81
+ #ifndef Z_COMPILER_C_HAS_TYPE_QUALIFIER_VOLATILE
82
+ # define Z_COMPILER_C_HAS_TYPE_QUALIFIER_VOLATILE FALSE
83
+ #endif
84
+
85
+ /* MARK: - C90 support */
86
+
87
+ /* MARK: - C94 support */
88
+
89
+ #ifndef Z_COMPILER_C_HAS_DIGRAPHS
90
+ # define Z_COMPILER_C_HAS_DIGRAPHS FALSE
91
+ #endif
92
+
93
+ /* MARK: - C99 support */
94
+
95
+ #ifndef Z_COMPILER_C_HAS_COMPOUND_LITERAL
96
+ # define Z_COMPILER_C_HAS_COMPOUND_LITERAL FALSE
97
+ #endif
98
+
99
+ #ifndef Z_COMPILER_C_HAS_CPP_STYLE_COMMENT
100
+ # define Z_COMPILER_C_HAS_CPP_STYLE_COMMENT FALSE
101
+ #endif
102
+
103
+ #ifndef Z_COMPILER_C_HAS_DESIGNATED_INITIALIZER
104
+ # define Z_COMPILER_C_HAS_DESIGNATED_INITIALIZER FALSE
105
+ #endif
106
+
107
+ #ifndef Z_COMPILER_C_HAS_FLEXIBLE_ARRAY_MEMBER
108
+ # define Z_COMPILER_C_HAS_FLEXIBLE_ARRAY_MEMBER FALSE
109
+ #endif
110
+
111
+ #ifndef Z_COMPILER_C_HAS_INLINE_FUNCION
112
+ # define Z_COMPILER_C_HAS_INLINE_FUNCION FALSE
113
+ #endif
114
+
115
+ #ifndef Z_COMPILER_C_HAS_MIXED_DECLARATIONS_AND_CODE
116
+ # define Z_COMPILER_C_HAS_MIXED_DECLARATIONS_AND_CODE FALSE
117
+ #endif
118
+
119
+ #ifndef Z_COMPILER_C_HAS_NON_CONSTANT_AGGREGATE_INITIALIZER
120
+ # define Z_COMPILER_C_HAS_NON_CONSTANT_AGGREGATE_INITIALIZER FALSE
121
+ #endif
122
+
123
+ #ifndef Z_COMPILER_C_HAS_PREPROCESSOR_ARITHMETIC_DONE_IN_MAXIMUM_INTEGRAL
124
+ # define Z_COMPILER_C_HAS_PREPROCESSOR_ARITHMETIC_DONE_IN_MAXIMUM_INTEGRAL FALSE
125
+ #endif
126
+
127
+ #ifndef Z_COMPILER_C_HAS_VARIADIC_MACRO
128
+ # define Z_COMPILER_C_HAS_VARIADIC_MACRO FALSE
129
+ #endif
130
+
131
+ #ifndef Z_COMPILER_C_HAS_VLA
132
+ # define Z_COMPILER_C_HAS_VLA FALSE
133
+ #endif
134
+
135
+ #ifndef Z_COMPILER_C_HAS_MAGIC_CONSTANT_FUNCTION_NAME
136
+ # define Z_COMPILER_C_HAS_MAGIC_CONSTANT_FUNCTION_NAME FALSE
137
+ #endif
138
+
139
+ #ifndef Z_COMPILER_C_HAS_SPECIFIER_INLINE
140
+ # define Z_COMPILER_C_HAS_SPECIFIER_INLINE FALSE
141
+ #endif
142
+
143
+ #ifndef Z_COMPILER_C_HAS_TYPE_BOOLEAN
144
+ # define Z_COMPILER_C_HAS_TYPE_BOOLEAN FALSE
145
+ #endif
146
+
147
+ #ifndef Z_COMPILER_C_HAS_TYPE_LLONG
148
+ # define Z_COMPILER_C_HAS_TYPE_LLONG FALSE
149
+ #endif
150
+
151
+ #ifndef Z_COMPILER_C_HAS_TYPE_QUALIFIER_RESTRICT
152
+ # define Z_COMPILER_C_HAS_TYPE_QUALIFIER_RESTRICT FALSE
153
+ #endif
154
+
155
+ /* MARK: - C11 support */
156
+
157
+ #ifndef Z_COMPILER_C_HAS_ANONYMOUS_STRUCTURE
158
+ # define Z_COMPILER_C_HAS_ANONYMOUS_STRUCTURE FALSE
159
+ #endif
160
+
161
+ #ifndef Z_COMPILER_C_HAS_ANONYMOUS_UNION
162
+ # define Z_COMPILER_C_HAS_ANONYMOUS_UNION FALSE
163
+ #endif
164
+
165
+ #ifndef Z_COMPILER_C_HAS_ATOMIC_OPERATIONS
166
+ # define Z_COMPILER_C_HAS_ATOMIC_OPERATIONS FALSE
167
+ #endif
168
+
169
+ #ifndef Z_COMPILER_C_HAS_GENERIC_SELECTION
170
+ # define Z_COMPILER_C_HAS_GENERIC_SELECTION FALSE
171
+ #endif
172
+
173
+ #ifndef Z_COMPILER_C_HAS_STATIC_ASSERTION
174
+ # define Z_COMPILER_C_HAS_STATIC_ASSERTION FALSE
175
+ #endif
176
+
177
+ #ifndef Z_COMPILER_C_HAS_OPERATOR_ALIGN_OF
178
+ # define Z_COMPILER_C_HAS_OPERATOR_ALIGN_OF FALSE
179
+ #endif
180
+
181
+ #ifndef Z_COMPILER_C_HAS_SPECIFIER_ALIGN_AS
182
+ # define Z_COMPILER_C_HAS_SPECIFIER_ALIGN_AS FALSE
183
+ #endif
184
+
185
+ #ifndef Z_COMPILER_C_HAS_SPECIFIER_ATOMIC
186
+ # define Z_COMPILER_C_HAS_SPECIFIER_ATOMIC FALSE
187
+ #endif
188
+
189
+ #ifndef Z_COMPILER_C_HAS_SPECIFIER_NO_RETURN
190
+ # define Z_COMPILER_C_HAS_SPECIFIER_NO_RETURN FALSE
191
+ #endif
192
+
193
+ #ifndef Z_COMPILER_C_HAS_STORATE_CLASS_THREAD_LOCAL
194
+ # define Z_COMPILER_C_HAS_STORATE_CLASS_THREAD_LOCAL FALSE
195
+ #endif
196
+
197
+ #ifndef Z_COMPILER_C_HAS_TYPE_QUALIFIER_ATOMIC
198
+ # define Z_COMPILER_C_HAS_TYPE_QUALIFIER_ATOMIC FALSE
199
+ #endif
200
+
201
+ /* MARK: - C18 support */
202
+
203
+ /* MARK: - Apple C extensions support */
204
+
205
+ #ifndef Z_COMPILER_C_HAS_CLOSURE
206
+ # define Z_COMPILER_C_HAS_CLOSURE FALSE
207
+ #endif
208
+
209
+ #ifdef __cplusplus
210
+
211
+ /* MARK: - C++98 support */
212
+
213
+ # ifndef Z_COMPILER_CPP_HAS_SFINAE
214
+ # define Z_COMPILER_CPP_HAS_SFINAE FALSE
215
+ # endif
216
+
217
+ # ifndef Z_COMPILER_CPP_HAS_TYPE_BOOLEAN
218
+ # define Z_COMPILER_CPP_HAS_TYPE_BOOLEAN FALSE
219
+ # endif
220
+
221
+ # ifndef Z_COMPILER_CPP_HAS_TYPE_WCHAR
222
+ # define Z_COMPILER_CPP_HAS_TYPE_WCHAR FALSE
223
+ # endif
224
+
225
+ /* MARK: - C++03 support */
226
+
227
+ # ifndef Z_COMPILER_CPP_HAS_VALUE_INITIALIZATION
228
+ # define Z_COMPILER_CPP_HAS_VALUE_INITIALIZATION FALSE
229
+ # endif
230
+
231
+ /* MARK: - C++11 support */
232
+
233
+ # ifndef Z_COMPILER_CPP_HAS_C99_PREPROCESSOR
234
+ # define Z_COMPILER_CPP_HAS_C99_PREPROCESSOR FALSE
235
+ # endif
236
+
237
+ # ifndef Z_COMPILER_CPP_HAS_CONCURRENT_STATIC_LOCAL_VARIABLE
238
+ # define Z_COMPILER_CPP_HAS_CONCURRENT_STATIC_LOCAL_VARIABLE FALSE
239
+ # endif
240
+
241
+ # ifndef Z_COMPILER_CPP_HAS_CONDITIONALLY_SUPPORTED_BEHAVIOR
242
+ # define Z_COMPILER_CPP_HAS_CONDITIONALLY_SUPPORTED_BEHAVIOR FALSE
243
+ # endif
244
+
245
+ # ifndef Z_COMPILER_CPP_HAS_COPY_LIST_INITIALIZATION
246
+ # define Z_COMPILER_CPP_HAS_COPY_LIST_INITIALIZATION FALSE
247
+ # endif
248
+
249
+ # ifndef Z_COMPILER_CPP_HAS_CPP11_RULES_ON_UNIVERSAL_CHARACTER_NAME
250
+ # define Z_COMPILER_CPP_HAS_CPP11_RULES_ON_UNIVERSAL_CHARACTER_NAME FALSE
251
+ # endif
252
+
253
+ # ifndef Z_COMPILER_CPP_HAS_DEFAULT_MEMBER_INITIALIZER
254
+ # define Z_COMPILER_CPP_HAS_DEFAULT_MEMBER_INITIALIZER FALSE
255
+ # endif
256
+
257
+ # ifndef Z_COMPILER_CPP_HAS_DEFAULT_TEMPLATE_ARGUMENTS_FOR_FUNCTION_TEMPLATE
258
+ # define Z_COMPILER_CPP_HAS_DEFAULT_TEMPLATE_ARGUMENTS_FOR_FUNCTION_TEMPLATE FALSE
259
+ # endif
260
+
261
+ # ifndef Z_COMPILER_CPP_HAS_DEFAULTED_FUNCTION
262
+ # define Z_COMPILER_CPP_HAS_DEFAULTED_FUNCTION FALSE
263
+ # endif
264
+
265
+ # ifndef Z_COMPILER_CPP_HAS_DELEGATING_CONSTRUCTORS
266
+ # define Z_COMPILER_CPP_HAS_DELEGATING_CONSTRUCTORS FALSE
267
+ # endif
268
+
269
+ # ifndef Z_COMPILER_CPP_HAS_DELETED_FUNCTION
270
+ # define Z_COMPILER_CPP_HAS_DELETED_FUNCTION FALSE
271
+ # endif
272
+
273
+ # ifndef Z_COMPILER_CPP_HAS_DIRECT_LIST_INITIALIZATION
274
+ # define Z_COMPILER_CPP_HAS_DIRECT_LIST_INITIALIZATION FALSE
275
+ # endif
276
+
277
+ # ifndef Z_COMPILER_CPP_HAS_EXPLICIT_CONVERSION_FUNCTION
278
+ # define Z_COMPILER_CPP_HAS_EXPLICIT_CONVERSION_FUNCTION FALSE
279
+ # endif
280
+
281
+ # ifndef Z_COMPILER_CPP_HAS_EXPRESSION_SFINAE
282
+ # define Z_COMPILER_CPP_HAS_EXPRESSION_SFINAE FALSE
283
+ # endif
284
+
285
+ # ifndef Z_COMPILER_CPP_HAS_EXTENDED_FRIEND_DECLARATION
286
+ # define Z_COMPILER_CPP_HAS_EXTENDED_FRIEND_DECLARATION FALSE
287
+ # endif
288
+
289
+ # ifndef Z_COMPILER_CPP_HAS_EXTERN_TEMPLATE
290
+ # define Z_COMPILER_CPP_HAS_EXTERN_TEMPLATE FALSE
291
+ # endif
292
+
293
+ # ifndef Z_COMPILER_CPP_HAS_FORWARD_DECLARATION_OF_ENUMERATION
294
+ # define Z_COMPILER_CPP_HAS_FORWARD_DECLARATION_OF_ENUMERATION FALSE
295
+ # endif
296
+
297
+ # ifndef Z_COMPILER_CPP_HAS_INHERITING_CONSTRUCTORS
298
+ # define Z_COMPILER_CPP_HAS_INHERITING_CONSTRUCTORS FALSE
299
+ # endif
300
+
301
+ # ifndef Z_COMPILER_CPP_HAS_INITIALIZATION_OF_CLASS_OBJECT_BY_RVALUE
302
+ # define Z_COMPILER_CPP_HAS_INITIALIZATION_OF_CLASS_OBJECT_BY_RVALUE FALSE
303
+ # endif
304
+
305
+ # ifndef Z_COMPILER_CPP_HAS_INITIALIZER_LIST
306
+ # define Z_COMPILER_CPP_HAS_INITIALIZER_LIST FALSE
307
+ # endif
308
+
309
+ # ifndef Z_COMPILER_CPP_HAS_INLINE_NAMESPACE
310
+ # define Z_COMPILER_CPP_HAS_INLINE_NAMESPACE FALSE
311
+ # endif
312
+
313
+ # ifndef Z_COMPILER_CPP_HAS_LAMBDA
314
+ # define Z_COMPILER_CPP_HAS_LAMBDA FALSE
315
+ # endif
316
+
317
+ # ifndef Z_COMPILER_CPP_HAS_LOCAL_TYPE_AS_TEMPLATE_ARGUMENT
318
+ # define Z_COMPILER_CPP_HAS_LOCAL_TYPE_AS_TEMPLATE_ARGUMENT FALSE
319
+ # endif
320
+
321
+ # ifndef Z_COMPILER_CPP_HAS_MOVE_SPECIAL_MEMBER_FUNCTIONS
322
+ # define Z_COMPILER_CPP_HAS_MOVE_SPECIAL_MEMBER_FUNCTIONS FALSE
323
+ # endif
324
+
325
+ # ifndef Z_COMPILER_CPP_HAS_MULTI_DECLARATOR_AUTO
326
+ # define Z_COMPILER_CPP_HAS_MULTI_DECLARATOR_AUTO FALSE
327
+ # endif
328
+
329
+ # ifndef Z_COMPILER_CPP_HAS_RANGE_BASED_FOR
330
+ # define Z_COMPILER_CPP_HAS_RANGE_BASED_FOR FALSE
331
+ # endif
332
+
333
+ # ifndef Z_COMPILER_CPP_HAS_REFERENCE_QUALIFIED_NON_STATIC_MEMBER_FUNCTION
334
+ # define Z_COMPILER_CPP_HAS_REFERENCE_QUALIFIED_NON_STATIC_MEMBER_FUNCTION FALSE
335
+ # endif
336
+
337
+ # ifndef Z_COMPILER_CPP_HAS_REMOVAL_OF_AUTO_AS_STORAGE_CLASS
338
+ # define Z_COMPILER_CPP_HAS_REMOVAL_OF_AUTO_AS_STORAGE_CLASS FALSE
339
+ # endif
340
+
341
+ # ifndef Z_COMPILER_CPP_HAS_RIGHT_ANGLE_BRACKETS
342
+ # define Z_COMPILER_CPP_HAS_RIGHT_ANGLE_BRACKETS FALSE
343
+ # endif
344
+
345
+ # ifndef Z_COMPILER_CPP_HAS_RVALUE_REFERENCE
346
+ # define Z_COMPILER_CPP_HAS_RVALUE_REFERENCE FALSE
347
+ # endif
348
+
349
+ # ifndef Z_COMPILER_CPP_HAS_STANDARD_LAYOUT
350
+ # define Z_COMPILER_CPP_HAS_STANDARD_LAYOUT FALSE
351
+ # endif
352
+
353
+ # ifndef Z_COMPILER_CPP_HAS_STANDARDIZED_ATTRIBUTE_SYNTAX
354
+ # define Z_COMPILER_CPP_HAS_STANDARDIZED_ATTRIBUTE_SYNTAX FALSE
355
+ # endif
356
+
357
+ # ifndef Z_COMPILER_CPP_HAS_STATIC_ASSERTION
358
+ # define Z_COMPILER_CPP_HAS_STATIC_ASSERTION FALSE
359
+ # endif
360
+
361
+ # ifndef Z_COMPILER_CPP_HAS_STRONGLY_TYPED_ENUMERATION
362
+ # define Z_COMPILER_CPP_HAS_STRONGLY_TYPED_ENUMERATION FALSE
363
+ # endif
364
+
365
+ # ifndef Z_COMPILER_CPP_HAS_TEMPLATE_ALIAS
366
+ # define Z_COMPILER_CPP_HAS_TEMPLATE_ALIAS FALSE
367
+ # endif
368
+
369
+ # ifndef Z_COMPILER_CPP_HAS_TRAILING_RETURN_TYPE
370
+ # define Z_COMPILER_CPP_HAS_TRAILING_RETURN_TYPE FALSE
371
+ # endif
372
+
373
+ # ifndef Z_COMPILER_CPP_HAS_UNNAMED_TYPE_AS_TEMPLATE_ARGUMENT
374
+ # define Z_COMPILER_CPP_HAS_UNNAMED_TYPE_AS_TEMPLATE_ARGUMENT FALSE
375
+ # endif
376
+
377
+ # ifndef Z_COMPILER_CPP_HAS_UNRESTRICTED_UNION
378
+ # define Z_COMPILER_CPP_HAS_UNRESTRICTED_UNION FALSE
379
+ # endif
380
+
381
+ # ifndef Z_COMPILER_CPP_HAS_VARIADIC_TEMPLATE
382
+ # define Z_COMPILER_CPP_HAS_VARIADIC_TEMPLATE FALSE
383
+ # endif
384
+
385
+ # ifndef Z_COMPILER_CPP_HAS_VARIADIC_TEMPLATE_EXTENDED_PARAMETERS
386
+ # define Z_COMPILER_CPP_HAS_VARIADIC_TEMPLATE_EXTENDED_PARAMETERS FALSE
387
+ # endif
388
+
389
+ # ifndef Z_COMPILER_CPP_HAS_ATTRIBUTE_CARRIES_DEPENDENCY
390
+ # define Z_COMPILER_CPP_HAS_ATTRIBUTE_CARRIES_DEPENDENCY FALSE
391
+ # endif
392
+
393
+ # ifndef Z_COMPILER_CPP_HAS_ATTRIBUTE_NO_RETURN
394
+ # define Z_COMPILER_CPP_HAS_ATTRIBUTE_NO_RETURN FALSE
395
+ # endif
396
+
397
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_CHAR16_CHARACTER
398
+ # define Z_COMPILER_CPP_HAS_LITERAL_CHAR16_CHARACTER FALSE
399
+ # endif
400
+
401
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_CHAR16_STRING
402
+ # define Z_COMPILER_CPP_HAS_LITERAL_CHAR16_STRING FALSE
403
+ # endif
404
+
405
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_CHAR32_CHARACTER
406
+ # define Z_COMPILER_CPP_HAS_LITERAL_CHAR32_CHARACTER FALSE
407
+ # endif
408
+
409
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_CHAR32_STRING
410
+ # define Z_COMPILER_CPP_HAS_LITERAL_CHAR32_STRING FALSE
411
+ # endif
412
+
413
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_NULL_POINTER
414
+ # define Z_COMPILER_CPP_HAS_LITERAL_NULL_POINTER FALSE
415
+ # endif
416
+
417
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_RAW_STRING
418
+ # define Z_COMPILER_CPP_HAS_LITERAL_RAW_STRING FALSE
419
+ # endif
420
+
421
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_UNICODE_STRING
422
+ # define Z_COMPILER_CPP_HAS_LITERAL_UNICODE_STRING FALSE
423
+ # endif
424
+
425
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_USER_DEFINED
426
+ # define Z_COMPILER_CPP_HAS_LITERAL_USER_DEFINED FALSE
427
+ # endif
428
+
429
+ # ifndef Z_COMPILER_CPP_HAS_MAGIC_CONSTANT_FUNCTION_NAME
430
+ # define Z_COMPILER_CPP_HAS_MAGIC_CONSTANT_FUNCTION_NAME FALSE
431
+ # endif
432
+
433
+ # ifndef Z_COMPILER_CPP_HAS_OPERATOR_ALIGN_OF
434
+ # define Z_COMPILER_CPP_HAS_OPERATOR_ALIGN_OF FALSE
435
+ # endif
436
+
437
+ # ifndef Z_COMPILER_CPP_HAS_OPERATOR_NO_EXCEPTION
438
+ # define Z_COMPILER_CPP_HAS_OPERATOR_NO_EXCEPTION FALSE
439
+ # endif
440
+
441
+ # ifndef Z_COMPILER_CPP_HAS_OPERATOR_SIZE_OF_NON_STATIC_DATA_MEMBER
442
+ # define Z_COMPILER_CPP_HAS_OPERATOR_SIZE_OF_NON_STATIC_DATA_MEMBER FALSE
443
+ # endif
444
+
445
+ # ifndef Z_COMPILER_CPP_HAS_OPERATOR_SIZE_OF_PARAMETER_PACK
446
+ # define Z_COMPILER_CPP_HAS_OPERATOR_SIZE_OF_PARAMETER_PACK FALSE
447
+ # endif
448
+
449
+ # ifndef Z_COMPILER_CPP_HAS_SPECIFIER_ALIGN_AS
450
+ # define Z_COMPILER_CPP_HAS_SPECIFIER_ALIGN_AS FALSE
451
+ # endif
452
+
453
+ # ifndef Z_COMPILER_CPP_HAS_SPECIFIER_AUTO
454
+ # define Z_COMPILER_CPP_HAS_SPECIFIER_AUTO FALSE
455
+ # endif
456
+
457
+ # ifndef Z_COMPILER_CPP_HAS_SPECIFIER_CONSTANT_EXPRESSION
458
+ # define Z_COMPILER_CPP_HAS_SPECIFIER_CONSTANT_EXPRESSION FALSE
459
+ # endif
460
+
461
+ # ifndef Z_COMPILER_CPP_HAS_SPECIFIER_DECLARED_TYPE
462
+ # define Z_COMPILER_CPP_HAS_SPECIFIER_DECLARED_TYPE FALSE
463
+ # endif
464
+
465
+ # ifndef Z_COMPILER_CPP_HAS_SPECIFIER_DECLARED_TYPE_OF_INCOMPLETE_RETURN
466
+ # define Z_COMPILER_CPP_HAS_SPECIFIER_DECLARED_TYPE_OF_INCOMPLETE_RETURN FALSE
467
+ # endif
468
+
469
+ # ifndef Z_COMPILER_CPP_HAS_SPECIFIER_FINAL
470
+ # define Z_COMPILER_CPP_HAS_SPECIFIER_FINAL FALSE
471
+ # endif
472
+
473
+ # ifndef Z_COMPILER_CPP_HAS_SPECIFIER_NO_EXCEPTION
474
+ # define Z_COMPILER_CPP_HAS_SPECIFIER_NO_EXCEPTION FALSE
475
+ # endif
476
+
477
+ # ifndef Z_COMPILER_CPP_HAS_SPECIFIER_OVERRIDE
478
+ # define Z_COMPILER_CPP_HAS_SPECIFIER_OVERRIDE FALSE
479
+ # endif
480
+
481
+ # ifndef Z_COMPILER_CPP_HAS_STORATE_CLASS_THREAD_LOCAL
482
+ # define Z_COMPILER_CPP_HAS_STORATE_CLASS_THREAD_LOCAL FALSE
483
+ # endif
484
+
485
+ # ifndef Z_COMPILER_CPP_HAS_TYPE_CHAR16
486
+ # define Z_COMPILER_CPP_HAS_TYPE_CHAR16 FALSE
487
+ # endif
488
+
489
+ # ifndef Z_COMPILER_CPP_HAS_TYPE_CHAR32
490
+ # define Z_COMPILER_CPP_HAS_TYPE_CHAR32 FALSE
491
+ # endif
492
+
493
+ # ifndef Z_COMPILER_CPP_HAS_TYPE_LLONG
494
+ # define Z_COMPILER_CPP_HAS_TYPE_LLONG FALSE
495
+ # endif
496
+
497
+ /* MARK: - C++14 support */
498
+
499
+ # ifndef Z_COMPILER_CPP_HAS_APOSTROPHE_AS_DIGIT_SEPARATOR
500
+ # define Z_COMPILER_CPP_HAS_APOSTROPHE_AS_DIGIT_SEPARATOR FALSE
501
+ # endif
502
+
503
+ # ifndef Z_COMPILER_CPP_HAS_CPP14_RULES_ON_CONSTANT_EXPRESSION_FUNCTION
504
+ # define Z_COMPILER_CPP_HAS_CPP14_RULES_ON_CONSTANT_EXPRESSION_FUNCTION FALSE
505
+ # endif
506
+
507
+ # ifndef Z_COMPILER_CPP_HAS_CPP14_RULES_ON_CONTEXTUAL_CONVERSION
508
+ # define Z_COMPILER_CPP_HAS_CPP14_RULES_ON_CONTEXTUAL_CONVERSION FALSE
509
+ # endif
510
+
511
+ # ifndef Z_COMPILER_CPP_HAS_DEFAULT_MEMBER_INITIALIZER_FOR_AGGREGATE
512
+ # define Z_COMPILER_CPP_HAS_DEFAULT_MEMBER_INITIALIZER_FOR_AGGREGATE FALSE
513
+ # endif
514
+
515
+ # ifndef Z_COMPILER_CPP_HAS_GENERIC_LAMBDA
516
+ # define Z_COMPILER_CPP_HAS_GENERIC_LAMBDA FALSE
517
+ # endif
518
+
519
+ # ifndef Z_COMPILER_CPP_HAS_INITIALIZED_LAMBDA_CAPTURE
520
+ # define Z_COMPILER_CPP_HAS_INITIALIZED_LAMBDA_CAPTURE FALSE
521
+ # endif
522
+
523
+ # ifndef Z_COMPILER_CPP_HAS_RETURN_TYPE_DEDUCTION_FOR_NORMAL_FUNCTION
524
+ # define Z_COMPILER_CPP_HAS_RETURN_TYPE_DEDUCTION_FOR_NORMAL_FUNCTION FALSE
525
+ # endif
526
+
527
+ # ifndef Z_COMPILER_CPP_HAS_SIZED_DEALLOCATION
528
+ # define Z_COMPILER_CPP_HAS_SIZED_DEALLOCATION FALSE
529
+ # endif
530
+
531
+ # ifndef Z_COMPILER_CPP_HAS_VARIABLE_TEMPLATE
532
+ # define Z_COMPILER_CPP_HAS_VARIABLE_TEMPLATE FALSE
533
+ # endif
534
+
535
+ # ifndef Z_COMPILER_CPP_HAS_ATTRIBUTE_DEPRECATED
536
+ # define Z_COMPILER_CPP_HAS_ATTRIBUTE_DEPRECATED FALSE
537
+ # endif
538
+
539
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_BINARY
540
+ # define Z_COMPILER_CPP_HAS_LITERAL_BINARY FALSE
541
+ # endif
542
+
543
+ # ifndef Z_COMPILER_CPP_HAS_SPECIFIER_DECLARED_TYPE_OF_AUTO
544
+ # define Z_COMPILER_CPP_HAS_SPECIFIER_DECLARED_TYPE_OF_AUTO FALSE
545
+ # endif
546
+
547
+ /* MARK: - C++17 support */
548
+
549
+ # ifndef Z_COMPILER_CPP_HAS_AGGREGATE_WITH_BASE_CLASSES
550
+ # define Z_COMPILER_CPP_HAS_AGGREGATE_WITH_BASE_CLASSES FALSE
551
+ # endif
552
+
553
+ # ifndef Z_COMPILER_CPP_HAS_ATTRIBUTES_FOR_ENUMERATION
554
+ # define Z_COMPILER_CPP_HAS_ATTRIBUTES_FOR_ENUMERATION FALSE
555
+ # endif
556
+
557
+ # ifndef Z_COMPILER_CPP_HAS_ATTRIBUTES_FOR_NAMESPACE
558
+ # define Z_COMPILER_CPP_HAS_ATTRIBUTES_FOR_NAMESPACE FALSE
559
+ # endif
560
+
561
+ # ifndef Z_COMPILER_CPP_HAS_ATTRIBUTE_USING_PREFIX
562
+ # define Z_COMPILER_CPP_HAS_ATTRIBUTE_USING_PREFIX FALSE
563
+ # endif
564
+
565
+ # ifndef Z_COMPILER_CPP_HAS_CONSTANT_EXPRESSION_IF
566
+ # define Z_COMPILER_CPP_HAS_CONSTANT_EXPRESSION_IF FALSE
567
+ # endif
568
+
569
+ # ifndef Z_COMPILER_CPP_HAS_CONSTANT_EXPRESSION_LAMBDA
570
+ # define Z_COMPILER_CPP_HAS_CONSTANT_EXPRESSION_LAMBDA FALSE
571
+ # endif
572
+
573
+ # ifndef Z_COMPILER_CPP_HAS_CPP17_RULES_ON_BRACED_INITIALIZATION
574
+ # define Z_COMPILER_CPP_HAS_CPP17_RULES_ON_BRACED_INITIALIZATION FALSE
575
+ # endif
576
+
577
+ # ifndef Z_COMPILER_CPP_HAS_CPP17_RULES_ON_EXPRESSION_EVALUATION_ORDER
578
+ # define Z_COMPILER_CPP_HAS_CPP17_RULES_ON_EXPRESSION_EVALUATION_ORDER FALSE
579
+ # endif
580
+
581
+ # ifndef Z_COMPILER_CPP_HAS_CPP17_RULES_ON_INHERITING_CONSTRUCTORS
582
+ # define Z_COMPILER_CPP_HAS_CPP17_RULES_ON_INHERITING_CONSTRUCTORS FALSE
583
+ # endif
584
+
585
+ # ifndef Z_COMPILER_CPP_HAS_CPP17_RULES_ON_NON_TYPE_TEMPLATE_ARGUMENTS
586
+ # define Z_COMPILER_CPP_HAS_CPP17_RULES_ON_NON_TYPE_TEMPLATE_ARGUMENTS FALSE
587
+ # endif
588
+
589
+ # ifndef Z_COMPILER_CPP_HAS_CPP17_RULES_ON_TEMPLATE_TEMPLATE_ARGUMENT_MATCHING
590
+ # define Z_COMPILER_CPP_HAS_CPP17_RULES_ON_TEMPLATE_TEMPLATE_ARGUMENT_MATCHING FALSE
591
+ # endif
592
+
593
+ # ifndef Z_COMPILER_CPP_HAS_DIFFERING_BEGIN_AND_END_TYPES_IN_RANGE_BASED_FOR
594
+ # define Z_COMPILER_CPP_HAS_DIFFERING_BEGIN_AND_END_TYPES_IN_RANGE_BASED_FOR FALSE
595
+ # endif
596
+
597
+ # ifndef Z_COMPILER_CPP_HAS_DIRECT_LIST_INITIALIZATION_OF_ENUMERATION
598
+ # define Z_COMPILER_CPP_HAS_DIRECT_LIST_INITIALIZATION_OF_ENUMERATION FALSE
599
+ # endif
600
+
601
+ # ifndef Z_COMPILER_CPP_HAS_EXCEPTION_SPECIFICATION_AS_PART_OF_THE_TYPE
602
+ # define Z_COMPILER_CPP_HAS_EXCEPTION_SPECIFICATION_AS_PART_OF_THE_TYPE FALSE
603
+ # endif
604
+
605
+ # ifndef Z_COMPILER_CPP_HAS_FOLD_EXPRESSION
606
+ # define Z_COMPILER_CPP_HAS_FOLD_EXPRESSION FALSE
607
+ # endif
608
+
609
+ # ifndef Z_COMPILER_CPP_HAS_FOLD_EXPRESSION_SAFETY_WITH_EMPTY_PARAMETER_PACK
610
+ # define Z_COMPILER_CPP_HAS_FOLD_EXPRESSION_SAFETY_WITH_EMPTY_PARAMETER_PACK FALSE
611
+ # endif
612
+
613
+ # ifndef Z_COMPILER_CPP_HAS_GUARANTEED_COPY_ELISION
614
+ # define Z_COMPILER_CPP_HAS_GUARANTEED_COPY_ELISION FALSE
615
+ # endif
616
+
617
+ # ifndef Z_COMPILER_CPP_HAS_IF_WITH_INITIALIZER
618
+ # define Z_COMPILER_CPP_HAS_IF_WITH_INITIALIZER FALSE
619
+ # endif
620
+
621
+ # ifndef Z_COMPILER_CPP_HAS_IGNORATION_OF_UNKNOWN_ATTRIBUTES
622
+ # define Z_COMPILER_CPP_HAS_IGNORATION_OF_UNKNOWN_ATTRIBUTES FALSE
623
+ # endif
624
+
625
+ # ifndef Z_COMPILER_CPP_HAS_INLINE_VARIABLE
626
+ # define Z_COMPILER_CPP_HAS_INLINE_VARIABLE FALSE
627
+ # endif
628
+
629
+ # ifndef Z_COMPILER_CPP_HAS_LAMBDA_CAPTURE_OF_THIS_OBJECT_BY_VALUE
630
+ # define Z_COMPILER_CPP_HAS_LAMBDA_CAPTURE_OF_THIS_OBJECT_BY_VALUE FALSE
631
+ # endif
632
+
633
+ # ifndef Z_COMPILER_CPP_HAS_LAUNDER
634
+ # define Z_COMPILER_CPP_HAS_LAUNDER FALSE
635
+ # endif
636
+
637
+ # ifndef Z_COMPILER_CPP_HAS_NESTED_NAMESPACE_DEFINITION
638
+ # define Z_COMPILER_CPP_HAS_NESTED_NAMESPACE_DEFINITION FALSE
639
+ # endif
640
+
641
+ # ifndef Z_COMPILER_CPP_HAS_NON_TYPE_TEMPLATE_PARAMETER_WITH_AUTO_TYPE
642
+ # define Z_COMPILER_CPP_HAS_NON_TYPE_TEMPLATE_PARAMETER_WITH_AUTO_TYPE FALSE
643
+ # endif
644
+
645
+ # ifndef Z_COMPILER_CPP_HAS_OVER_ALIGNED_DYNAMIC_ALLOCATION
646
+ # define Z_COMPILER_CPP_HAS_OVER_ALIGNED_DYNAMIC_ALLOCATION FALSE
647
+ # endif
648
+
649
+ # ifndef Z_COMPILER_CPP_HAS_REMOVAL_OF_DYNAMIC_EXCEPTION_SPECIFICATION
650
+ # define Z_COMPILER_CPP_HAS_REMOVAL_OF_DYNAMIC_EXCEPTION_SPECIFICATION FALSE
651
+ # endif
652
+
653
+ # ifndef Z_COMPILER_CPP_HAS_REMOVAL_OF_INCREMENT_BOOLEAN_OPERATOR
654
+ # define Z_COMPILER_CPP_HAS_REMOVAL_OF_INCREMENT_BOOLEAN_OPERATOR FALSE
655
+ # endif
656
+
657
+ # ifndef Z_COMPILER_CPP_HAS_REMOVAL_OF_REGISTER_AS_STORAGE_CLASS
658
+ # define Z_COMPILER_CPP_HAS_REMOVAL_OF_REGISTER_AS_STORAGE_CLASS FALSE
659
+ # endif
660
+
661
+ # ifndef Z_COMPILER_CPP_HAS_REMOVAL_OF_TRIGRAPHS
662
+ # define Z_COMPILER_CPP_HAS_REMOVAL_OF_TRIGRAPHS FALSE
663
+ # endif
664
+
665
+ # ifndef Z_COMPILER_CPP_HAS_STATIC_ASSERTION_WITH_NO_MESSAGE
666
+ # define Z_COMPILER_CPP_HAS_STATIC_ASSERTION_WITH_NO_MESSAGE FALSE
667
+ # endif
668
+
669
+ # ifndef Z_COMPILER_CPP_HAS_STRUCTURED_BINDING
670
+ # define Z_COMPILER_CPP_HAS_STRUCTURED_BINDING FALSE
671
+ # endif
672
+
673
+ # ifndef Z_COMPILER_CPP_HAS_SWITCH_WITH_INITIALIZER
674
+ # define Z_COMPILER_CPP_HAS_SWITCH_WITH_INITIALIZER FALSE
675
+ # endif
676
+
677
+ # ifndef Z_COMPILER_CPP_HAS_TEMPLATE_ARGUMENTS_DEDUCTION_FOR_CLASS_TEMPLATE
678
+ # define Z_COMPILER_CPP_HAS_TEMPLATE_ARGUMENTS_DEDUCTION_FOR_CLASS_TEMPLATE FALSE
679
+ # endif
680
+
681
+ # ifndef Z_COMPILER_CPP_HAS_TYPENAME_IN_TEMPLATE_TEMPLATE_PARAMETER
682
+ # define Z_COMPILER_CPP_HAS_TYPENAME_IN_TEMPLATE_TEMPLATE_PARAMETER FALSE
683
+ # endif
684
+
685
+ # ifndef Z_COMPILER_CPP_HAS_VARIADIC_USING
686
+ # define Z_COMPILER_CPP_HAS_VARIADIC_USING FALSE
687
+ # endif
688
+
689
+ # ifndef Z_COMPILER_CPP_HAS_ATTRIBUTE_FALL_THROUGH
690
+ # define Z_COMPILER_CPP_HAS_ATTRIBUTE_FALL_THROUGH FALSE
691
+ # endif
692
+
693
+ # ifndef Z_COMPILER_CPP_HAS_ATTRIBUTE_MAYBE_UNUSED
694
+ # define Z_COMPILER_CPP_HAS_ATTRIBUTE_MAYBE_UNUSED FALSE
695
+ # endif
696
+
697
+ # ifndef Z_COMPILER_CPP_HAS_ATTRIBUTE_NO_DISCARD
698
+ # define Z_COMPILER_CPP_HAS_ATTRIBUTE_NO_DISCARD FALSE
699
+ # endif
700
+
701
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_HEXADECIMAL_FLOATING_POINT
702
+ # define Z_COMPILER_CPP_HAS_LITERAL_HEXADECIMAL_FLOATING_POINT FALSE
703
+ # endif
704
+
705
+ # ifndef Z_COMPILER_CPP_HAS_LITERAL_UTF8_CHARACTER
706
+ # define Z_COMPILER_CPP_HAS_LITERAL_UTF8_CHARACTER FALSE
707
+ # endif
708
+
709
+ # ifndef Z_COMPILER_CPP_HAS_PREPROCESSOR_OPERATOR_HAS_INCLUDE
710
+ # define Z_COMPILER_CPP_HAS_PREPROCESSOR_OPERATOR_HAS_INCLUDE FALSE
711
+ # endif
712
+
713
+ #endif
714
+
715
+ /* MARK: - Attributes */
716
+
717
+ #ifdef Z_COMPILER_ATTRIBUTE_ALIAS
718
+ # define Z_COMPILER_HAS_ATTRIBUTE_ALIAS TRUE
719
+ #else
720
+ # define Z_COMPILER_HAS_ATTRIBUTE_ALIAS FALSE
721
+ #endif
722
+
723
+ #ifdef Z_COMPILER_ATTRIBUTE_API
724
+ # define Z_COMPILER_HAS_ATTRIBUTE_API TRUE
725
+ #else
726
+ # define Z_COMPILER_HAS_ATTRIBUTE_API FALSE
727
+ #endif
728
+
729
+ #ifdef Z_COMPILER_ATTRIBUTE_API_ALIAS
730
+ # define Z_COMPILER_HAS_ATTRIBUTE_API_ALIAS TRUE
731
+ #else
732
+ # define Z_COMPILER_HAS_ATTRIBUTE_API_ALIAS FALSE
733
+ #endif
734
+
735
+ #ifdef Z_COMPILER_ATTRIBUTE_API_EXPORT
736
+ # define Z_COMPILER_HAS_ATTRIBUTE_API_EXPORT TRUE
737
+ #else
738
+ # define Z_COMPILER_HAS_ATTRIBUTE_API_EXPORT FALSE
739
+ #endif
740
+
741
+ #ifdef Z_COMPILER_ATTRIBUTE_API_EXPORT_ALIAS
742
+ # define Z_COMPILER_HAS_ATTRIBUTE_API_EXPORT_ALIAS TRUE
743
+ #else
744
+ # define Z_COMPILER_HAS_ATTRIBUTE_API_EXPORT_ALIAS FALSE
745
+ #endif
746
+
747
+ #ifdef Z_COMPILER_ATTRIBUTE_API_WEAK_EXPORT
748
+ # define Z_COMPILER_HAS_ATTRIBUTE_API_WEAK_EXPORT TRUE
749
+ #else
750
+ # define Z_COMPILER_HAS_ATTRIBUTE_API_WEAK_EXPORT FALSE
751
+ #endif
752
+
753
+ #ifdef Z_COMPILER_ATTRIBUTE_EBCO
754
+ # define Z_COMPILER_HAS_ATTRIBUTE_EBCO TRUE
755
+ #else
756
+ # define Z_COMPILER_HAS_ATTRIBUTE_EBCO FALSE
757
+ #endif
758
+
759
+ #ifdef Z_COMPILER_ATTRIBUTE_INLINE
760
+ # define Z_COMPILER_HAS_ATTRIBUTE_INLINE TRUE
761
+ #else
762
+ # define Z_COMPILER_HAS_ATTRIBUTE_INLINE FALSE
763
+ #endif
764
+
765
+ #ifdef Z_COMPILER_ATTRIBUTE_NO_RETURN
766
+ # define Z_COMPILER_HAS_ATTRIBUTE_NO_RETURN TRUE
767
+ #else
768
+ # define Z_COMPILER_HAS_ATTRIBUTE_NO_RETURN FALSE
769
+ #endif
770
+
771
+ #ifdef Z_COMPILER_ATTRIBUTE_NULL_TERMINATED
772
+ # define Z_COMPILER_HAS_ATTRIBUTE_NULL_TERMINATED TRUE
773
+ #else
774
+ # define Z_COMPILER_HAS_ATTRIBUTE_NULL_TERMINATED FALSE
775
+ #endif
776
+
777
+ #ifdef Z_COMPILER_ATTRIBUTE_PRIVATE
778
+ # define Z_COMPILER_HAS_ATTRIBUTE_PRIVATE TRUE
779
+ #else
780
+ # define Z_COMPILER_HAS_ATTRIBUTE_PRIVATE FALSE
781
+ #endif
782
+
783
+ #ifdef Z_COMPILER_ATTRIBUTE_PUBLIC
784
+ # define Z_COMPILER_HAS_ATTRIBUTE_PUBLIC TRUE
785
+ #else
786
+ # define Z_COMPILER_HAS_ATTRIBUTE_PUBLIC FALSE
787
+ #endif
788
+
789
+ #ifdef Z_COMPILER_ATTRIBUTE_STRICT_SIZE_BEGIN
790
+ # define Z_COMPILER_HAS_ATTRIBUTE_STRICT_SIZE_BEGIN TRUE
791
+ #else
792
+ # define Z_COMPILER_HAS_ATTRIBUTE_STRICT_SIZE_BEGIN FALSE
793
+ #endif
794
+
795
+ #ifdef Z_COMPILER_ATTRIBUTE_STRICT_SIZE_END
796
+ # define Z_COMPILER_HAS_ATTRIBUTE_STRICT_SIZE_END TRUE
797
+ #else
798
+ # define Z_COMPILER_HAS_ATTRIBUTE_STRICT_SIZE_END FALSE
799
+ #endif
800
+
801
+ #ifdef Z_COMPILER_ATTRIBUTE_THREAD_LOCAL
802
+ # define Z_COMPILER_HAS_ATTRIBUTE_THREAD_LOCAL TRUE
803
+ #else
804
+ # define Z_COMPILER_HAS_ATTRIBUTE_THREAD_LOCAL FALSE
805
+ #endif
806
+
807
+ #ifdef Z_COMPILER_ATTRIBUTE_WEAK
808
+ # define Z_COMPILER_HAS_ATTRIBUTE_WEAK TRUE
809
+ #else
810
+ # define Z_COMPILER_HAS_ATTRIBUTE_WEAK FALSE
811
+ #endif
812
+
813
+ /* MARK: - Built-in constants */
814
+
815
+ #ifdef Z_COMPILER_CONSTANT_FLOAT16_INFINITY
816
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT16_INFINITY TRUE
817
+ #else
818
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT16_INFINITY FALSE
819
+ #endif
820
+
821
+ #ifdef Z_COMPILER_CONSTANT_FLOAT16_NAN
822
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT16_NAN TRUE
823
+ #else
824
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT16_NAN FALSE
825
+ #endif
826
+
827
+ #ifdef Z_COMPILER_CONSTANT_FLOAT32_INFINITY
828
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT32_INFINITY TRUE
829
+ #else
830
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT32_INFINITY FALSE
831
+ #endif
832
+
833
+ #ifdef Z_COMPILER_CONSTANT_FLOAT32_NAN
834
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT32_NAN TRUE
835
+ #else
836
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT32_NAN FALSE
837
+ #endif
838
+
839
+ #ifdef Z_COMPILER_CONSTANT_FLOAT64_INFINITY
840
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT64_INFINITY TRUE
841
+ #else
842
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT64_INFINITY FALSE
843
+ #endif
844
+
845
+ #ifdef Z_COMPILER_CONSTANT_FLOAT64_NAN
846
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT64_NAN TRUE
847
+ #else
848
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT64_NAN FALSE
849
+ #endif
850
+
851
+ #ifdef Z_COMPILER_CONSTANT_FLOAT128_INFINITY
852
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT128_INFINITY TRUE
853
+ #else
854
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT128_INFINITY FALSE
855
+ #endif
856
+
857
+ #ifdef Z_COMPILER_CONSTANT_FLOAT128_NAN
858
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT128_NAN TRUE
859
+ #else
860
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT128_NAN FALSE
861
+ #endif
862
+
863
+ #ifdef Z_COMPILER_CONSTANT_FLOAT80_X87_INFINITY
864
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT80_X87_INFINITY TRUE
865
+ #else
866
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT80_X87_INFINITY FALSE
867
+ #endif
868
+
869
+ #ifdef Z_COMPILER_CONSTANT_FLOAT80_X87_NAN
870
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT80_X87_NAN TRUE
871
+ #else
872
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT80_X87_NAN FALSE
873
+ #endif
874
+
875
+ #ifdef Z_COMPILER_CONSTANT_FLOAT96_X87_INFINITY
876
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT96_X87_INFINITY TRUE
877
+ #else
878
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT96_X87_INFINITY FALSE
879
+ #endif
880
+
881
+ #ifdef Z_COMPILER_CONSTANT_FLOAT96_X87_NAN
882
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT96_X87_NAN TRUE
883
+ #else
884
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT96_X87_NAN FALSE
885
+ #endif
886
+
887
+ #ifdef Z_COMPILER_CONSTANT_FLOAT128_X87_INFINITY
888
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT128_X87_INFINITY TRUE
889
+ #else
890
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT128_X87_INFINITY FALSE
891
+ #endif
892
+
893
+ #ifdef Z_COMPILER_CONSTANT_FLOAT128_X87_NAN
894
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT128_X87_NAN TRUE
895
+ #else
896
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT128_X87_NAN FALSE
897
+ #endif
898
+
899
+ #ifdef Z_COMPILER_CONSTANT_UCHAR_BITS
900
+ # define Z_COMPILER_HAS_CONSTANT_UCHAR_BITS TRUE
901
+ #else
902
+ # define Z_COMPILER_HAS_CONSTANT_UCHAR_BITS FALSE
903
+ #endif
904
+
905
+ #ifdef Z_COMPILER_CONSTANT_UCHAR_SIZE
906
+ # define Z_COMPILER_HAS_CONSTANT_UCHAR_SIZE TRUE
907
+ #else
908
+ # define Z_COMPILER_HAS_CONSTANT_UCHAR_SIZE FALSE
909
+ #endif
910
+
911
+ #ifdef Z_COMPILER_CONSTANT_UCHAR_MAXIMUM
912
+ # define Z_COMPILER_HAS_CONSTANT_UCHAR_MAXIMUM TRUE
913
+ #else
914
+ # define Z_COMPILER_HAS_CONSTANT_UCHAR_MAXIMUM FALSE
915
+ #endif
916
+
917
+ #ifdef Z_COMPILER_CONSTANT_USHORT_BITS
918
+ # define Z_COMPILER_HAS_CONSTANT_USHORT_BITS TRUE
919
+ #else
920
+ # define Z_COMPILER_HAS_CONSTANT_USHORT_BITS FALSE
921
+ #endif
922
+
923
+ #ifdef Z_COMPILER_CONSTANT_USHORT_SIZE
924
+ # define Z_COMPILER_HAS_CONSTANT_USHORT_SIZE TRUE
925
+ #else
926
+ # define Z_COMPILER_HAS_CONSTANT_USHORT_SIZE FALSE
927
+ #endif
928
+
929
+ #ifdef Z_COMPILER_CONSTANT_USHORT_MAXIMUM
930
+ # define Z_COMPILER_HAS_CONSTANT_USHORT_MAXIMUM TRUE
931
+ #else
932
+ # define Z_COMPILER_HAS_CONSTANT_USHORT_MAXIMUM FALSE
933
+ #endif
934
+
935
+ #ifdef Z_COMPILER_CONSTANT_UINT_BITS
936
+ # define Z_COMPILER_HAS_CONSTANT_UINT_BITS TRUE
937
+ #else
938
+ # define Z_COMPILER_HAS_CONSTANT_UINT_BITS FALSE
939
+ #endif
940
+
941
+ #ifdef Z_COMPILER_CONSTANT_UINT_SIZE
942
+ # define Z_COMPILER_HAS_CONSTANT_UINT_SIZE TRUE
943
+ #else
944
+ # define Z_COMPILER_HAS_CONSTANT_UINT_SIZE FALSE
945
+ #endif
946
+
947
+ #ifdef Z_COMPILER_CONSTANT_UINT_MAXIMUM
948
+ # define Z_COMPILER_HAS_CONSTANT_UINT_MAXIMUM TRUE
949
+ #else
950
+ # define Z_COMPILER_HAS_CONSTANT_UINT_MAXIMUM FALSE
951
+ #endif
952
+
953
+ #ifdef Z_COMPILER_CONSTANT_ULONG_BITS
954
+ # define Z_COMPILER_HAS_CONSTANT_ULONG_BITS TRUE
955
+ #else
956
+ # define Z_COMPILER_HAS_CONSTANT_ULONG_BITS FALSE
957
+ #endif
958
+
959
+ #ifdef Z_COMPILER_CONSTANT_ULONG_SIZE
960
+ # define Z_COMPILER_HAS_CONSTANT_ULONG_SIZE TRUE
961
+ #else
962
+ # define Z_COMPILER_HAS_CONSTANT_ULONG_SIZE FALSE
963
+ #endif
964
+
965
+ #ifdef Z_COMPILER_CONSTANT_ULONG_MAXIMUM
966
+ # define Z_COMPILER_HAS_CONSTANT_ULONG_MAXIMUM TRUE
967
+ #else
968
+ # define Z_COMPILER_HAS_CONSTANT_ULONG_MAXIMUM FALSE
969
+ #endif
970
+
971
+ #ifdef Z_COMPILER_CONSTANT_ULLONG_BITS
972
+ # define Z_COMPILER_HAS_CONSTANT_ULLONG_BITS TRUE
973
+ #else
974
+ # define Z_COMPILER_HAS_CONSTANT_ULLONG_BITS FALSE
975
+ #endif
976
+
977
+ #ifdef Z_COMPILER_CONSTANT_ULLONG_SIZE
978
+ # define Z_COMPILER_HAS_CONSTANT_ULLONG_SIZE TRUE
979
+ #else
980
+ # define Z_COMPILER_HAS_CONSTANT_ULLONG_SIZE FALSE
981
+ #endif
982
+
983
+ #ifdef Z_COMPILER_CONSTANT_ULLONG_MAXIMUM
984
+ # define Z_COMPILER_HAS_CONSTANT_ULLONG_MAXIMUM TRUE
985
+ #else
986
+ # define Z_COMPILER_HAS_CONSTANT_ULLONG_MAXIMUM FALSE
987
+ #endif
988
+
989
+ #ifdef Z_COMPILER_CONSTANT_SCHAR_BITS
990
+ # define Z_COMPILER_HAS_CONSTANT_SCHAR_BITS TRUE
991
+ #else
992
+ # define Z_COMPILER_HAS_CONSTANT_SCHAR_BITS FALSE
993
+ #endif
994
+
995
+ #ifdef Z_COMPILER_CONSTANT_SCHAR_SIZE
996
+ # define Z_COMPILER_HAS_CONSTANT_SCHAR_SIZE TRUE
997
+ #else
998
+ # define Z_COMPILER_HAS_CONSTANT_SCHAR_SIZE FALSE
999
+ #endif
1000
+
1001
+ #ifdef Z_COMPILER_CONSTANT_SCHAR_MINIMUM
1002
+ # define Z_COMPILER_HAS_CONSTANT_SCHAR_MINIMUM TRUE
1003
+ #else
1004
+ # define Z_COMPILER_HAS_CONSTANT_SCHAR_MINIMUM FALSE
1005
+ #endif
1006
+
1007
+ #ifdef Z_COMPILER_CONSTANT_SCHAR_MAXIMUM
1008
+ # define Z_COMPILER_HAS_CONSTANT_SCHAR_MAXIMUM TRUE
1009
+ #else
1010
+ # define Z_COMPILER_HAS_CONSTANT_SCHAR_MAXIMUM FALSE
1011
+ #endif
1012
+
1013
+ #ifdef Z_COMPILER_CONSTANT_SSHORT_BITS
1014
+ # define Z_COMPILER_HAS_CONSTANT_SSHORT_BITS TRUE
1015
+ #else
1016
+ # define Z_COMPILER_HAS_CONSTANT_SSHORT_BITS FALSE
1017
+ #endif
1018
+
1019
+ #ifdef Z_COMPILER_CONSTANT_SSHORT_SIZE
1020
+ # define Z_COMPILER_HAS_CONSTANT_SSHORT_SIZE TRUE
1021
+ #else
1022
+ # define Z_COMPILER_HAS_CONSTANT_SSHORT_SIZE FALSE
1023
+ #endif
1024
+
1025
+ #ifdef Z_COMPILER_CONSTANT_SSHORT_MINIMUM
1026
+ # define Z_COMPILER_HAS_CONSTANT_SSHORT_MINIMUM TRUE
1027
+ #else
1028
+ # define Z_COMPILER_HAS_CONSTANT_SSHORT_MINIMUM FALSE
1029
+ #endif
1030
+
1031
+ #ifdef Z_COMPILER_CONSTANT_SSHORT_MAXIMUM
1032
+ # define Z_COMPILER_HAS_CONSTANT_SSHORT_MAXIMUM TRUE
1033
+ #else
1034
+ # define Z_COMPILER_HAS_CONSTANT_SSHORT_MAXIMUM FALSE
1035
+ #endif
1036
+
1037
+ #ifdef Z_COMPILER_CONSTANT_SINT_BITS
1038
+ # define Z_COMPILER_HAS_CONSTANT_SINT_BITS TRUE
1039
+ #else
1040
+ # define Z_COMPILER_HAS_CONSTANT_SINT_BITS FALSE
1041
+ #endif
1042
+
1043
+ #ifdef Z_COMPILER_CONSTANT_SINT_SIZE
1044
+ # define Z_COMPILER_HAS_CONSTANT_SINT_SIZE TRUE
1045
+ #else
1046
+ # define Z_COMPILER_HAS_CONSTANT_SINT_SIZE FALSE
1047
+ #endif
1048
+
1049
+ #ifdef Z_COMPILER_CONSTANT_SINT_MINIMUM
1050
+ # define Z_COMPILER_HAS_CONSTANT_SINT_MINIMUM TRUE
1051
+ #else
1052
+ # define Z_COMPILER_HAS_CONSTANT_SINT_MINIMUM FALSE
1053
+ #endif
1054
+
1055
+ #ifdef Z_COMPILER_CONSTANT_SINT_MAXIMUM
1056
+ # define Z_COMPILER_HAS_CONSTANT_SINT_MAXIMUM TRUE
1057
+ #else
1058
+ # define Z_COMPILER_HAS_CONSTANT_SINT_MAXIMUM FALSE
1059
+ #endif
1060
+
1061
+ #ifdef Z_COMPILER_CONSTANT_SLONG_BITS
1062
+ # define Z_COMPILER_HAS_CONSTANT_SLONG_BITS TRUE
1063
+ #else
1064
+ # define Z_COMPILER_HAS_CONSTANT_SLONG_BITS FALSE
1065
+ #endif
1066
+
1067
+ #ifdef Z_COMPILER_CONSTANT_SLONG_SIZE
1068
+ # define Z_COMPILER_HAS_CONSTANT_SLONG_SIZE TRUE
1069
+ #else
1070
+ # define Z_COMPILER_HAS_CONSTANT_SLONG_SIZE FALSE
1071
+ #endif
1072
+
1073
+ #ifdef Z_COMPILER_CONSTANT_SLONG_MINIMUM
1074
+ # define Z_COMPILER_HAS_CONSTANT_SLONG_MINIMUM TRUE
1075
+ #else
1076
+ # define Z_COMPILER_HAS_CONSTANT_SLONG_MINIMUM FALSE
1077
+ #endif
1078
+
1079
+ #ifdef Z_COMPILER_CONSTANT_SLONG_MAXIMUM
1080
+ # define Z_COMPILER_HAS_CONSTANT_SLONG_MAXIMUM TRUE
1081
+ #else
1082
+ # define Z_COMPILER_HAS_CONSTANT_SLONG_MAXIMUM FALSE
1083
+ #endif
1084
+
1085
+ #ifdef Z_COMPILER_CONSTANT_SLLONG_BITS
1086
+ # define Z_COMPILER_HAS_CONSTANT_SLLONG_BITS TRUE
1087
+ #else
1088
+ # define Z_COMPILER_HAS_CONSTANT_SLLONG_BITS FALSE
1089
+ #endif
1090
+
1091
+ #ifdef Z_COMPILER_CONSTANT_SLLONG_SIZE
1092
+ # define Z_COMPILER_HAS_CONSTANT_SLLONG_SIZE TRUE
1093
+ #else
1094
+ # define Z_COMPILER_HAS_CONSTANT_SLLONG_SIZE FALSE
1095
+ #endif
1096
+
1097
+ #ifdef Z_COMPILER_CONSTANT_SLLONG_MINIMUM
1098
+ # define Z_COMPILER_HAS_CONSTANT_SLLONG_MINIMUM TRUE
1099
+ #else
1100
+ # define Z_COMPILER_HAS_CONSTANT_SLLONG_MINIMUM FALSE
1101
+ #endif
1102
+
1103
+ #ifdef Z_COMPILER_CONSTANT_SLLONG_MAXIMUM
1104
+ # define Z_COMPILER_HAS_CONSTANT_SLLONG_MAXIMUM TRUE
1105
+ #else
1106
+ # define Z_COMPILER_HAS_CONSTANT_SLLONG_MAXIMUM FALSE
1107
+ #endif
1108
+
1109
+ #ifdef Z_COMPILER_CONSTANT_FLOAT_BITS
1110
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT_BITS TRUE
1111
+ #else
1112
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT_BITS FALSE
1113
+ #endif
1114
+
1115
+ #ifdef Z_COMPILER_CONSTANT_FLOAT_SIZE
1116
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT_SIZE TRUE
1117
+ #else
1118
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT_SIZE FALSE
1119
+ #endif
1120
+
1121
+ #ifdef Z_COMPILER_CONSTANT_FLOAT_INFINITY
1122
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT_INFINITY TRUE
1123
+ #else
1124
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT_INFINITY FALSE
1125
+ #endif
1126
+
1127
+ #ifdef Z_COMPILER_CONSTANT_FLOAT_NAN
1128
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT_NAN TRUE
1129
+ #else
1130
+ # define Z_COMPILER_HAS_CONSTANT_FLOAT_NAN FALSE
1131
+ #endif
1132
+
1133
+ #ifdef Z_COMPILER_CONSTANT_DOUBLE_BITS
1134
+ # define Z_COMPILER_HAS_CONSTANT_DOUBLE_BITS TRUE
1135
+ #else
1136
+ # define Z_COMPILER_HAS_CONSTANT_DOUBLE_BITS FALSE
1137
+ #endif
1138
+
1139
+ #ifdef Z_COMPILER_CONSTANT_DOUBLE_SIZE
1140
+ # define Z_COMPILER_HAS_CONSTANT_DOUBLE_SIZE TRUE
1141
+ #else
1142
+ # define Z_COMPILER_HAS_CONSTANT_DOUBLE_SIZE FALSE
1143
+ #endif
1144
+
1145
+ #ifdef Z_COMPILER_CONSTANT_DOUBLE_INFINITY
1146
+ # define Z_COMPILER_HAS_CONSTANT_DOUBLE_INFINITY TRUE
1147
+ #else
1148
+ # define Z_COMPILER_HAS_CONSTANT_DOUBLE_INFINITY FALSE
1149
+ #endif
1150
+
1151
+ #ifdef Z_COMPILER_CONSTANT_DOUBLE_NAN
1152
+ # define Z_COMPILER_HAS_CONSTANT_DOUBLE_NAN TRUE
1153
+ #else
1154
+ # define Z_COMPILER_HAS_CONSTANT_DOUBLE_NAN FALSE
1155
+ #endif
1156
+
1157
+ #ifdef Z_COMPILER_CONSTANT_LDOUBLE_BITS
1158
+ # define Z_COMPILER_HAS_CONSTANT_LDOUBLE_BITS TRUE
1159
+ #else
1160
+ # define Z_COMPILER_HAS_CONSTANT_LDOUBLE_BITS FALSE
1161
+ #endif
1162
+
1163
+ #ifdef Z_COMPILER_CONSTANT_LDOUBLE_SIZE
1164
+ # define Z_COMPILER_HAS_CONSTANT_LDOUBLE_SIZE TRUE
1165
+ #else
1166
+ # define Z_COMPILER_HAS_CONSTANT_LDOUBLE_SIZE FALSE
1167
+ #endif
1168
+
1169
+ #ifdef Z_COMPILER_CONSTANT_LDOUBLE_INFINITY
1170
+ # define Z_COMPILER_HAS_CONSTANT_LDOUBLE_INFINITY TRUE
1171
+ #else
1172
+ # define Z_COMPILER_HAS_CONSTANT_LDOUBLE_INFINITY FALSE
1173
+ #endif
1174
+
1175
+ #ifdef Z_COMPILER_CONSTANT_LDOUBLE_NAN
1176
+ # define Z_COMPILER_HAS_CONSTANT_LDOUBLE_NAN TRUE
1177
+ #else
1178
+ # define Z_COMPILER_HAS_CONSTANT_LDOUBLE_NAN FALSE
1179
+ #endif
1180
+
1181
+ #ifdef Z_COMPILER_CONSTANT_SIZE_BITS
1182
+ # define Z_COMPILER_HAS_CONSTANT_SIZE_BITS TRUE
1183
+ #else
1184
+ # define Z_COMPILER_HAS_CONSTANT_SIZE_BITS FALSE
1185
+ #endif
1186
+
1187
+ #ifdef Z_COMPILER_CONSTANT_SIZE_SIZE
1188
+ # define Z_COMPILER_HAS_CONSTANT_SIZE_SIZE TRUE
1189
+ #else
1190
+ # define Z_COMPILER_HAS_CONSTANT_SIZE_SIZE FALSE
1191
+ #endif
1192
+
1193
+ #ifdef Z_COMPILER_CONSTANT_SSIZE_BITS
1194
+ # define Z_COMPILER_HAS_CONSTANT_SSIZE_BITS TRUE
1195
+ #else
1196
+ # define Z_COMPILER_HAS_CONSTANT_SSIZE_BITS FALSE
1197
+ #endif
1198
+
1199
+ #ifdef Z_COMPILER_CONSTANT_SSIZE_SIZE
1200
+ # define Z_COMPILER_HAS_CONSTANT_SSIZE_SIZE TRUE
1201
+ #else
1202
+ # define Z_COMPILER_HAS_CONSTANT_SSIZE_SIZE FALSE
1203
+ #endif
1204
+
1205
+ #ifdef Z_COMPILER_CONSTANT_POINTER_BITS
1206
+ # define Z_COMPILER_HAS_CONSTANT_POINTER_BITS TRUE
1207
+ #else
1208
+ # define Z_COMPILER_HAS_CONSTANT_POINTER_BITS FALSE
1209
+ #endif
1210
+
1211
+ #ifdef Z_COMPILER_CONSTANT_POINTER_SIZE
1212
+ # define Z_COMPILER_HAS_CONSTANT_POINTER_SIZE TRUE
1213
+ #else
1214
+ # define Z_COMPILER_HAS_CONSTANT_POINTER_SIZE FALSE
1215
+ #endif
1216
+
1217
+ /* MARK: - Built-in magic constants */
1218
+
1219
+ #ifdef Z_COMPILER_MAGIC_CONSTANT_MANGLED_FUNCTION_NAME
1220
+ # define Z_COMPILER_HAS_MAGIC_CONSTANT_MANGLED_FUNCTION_NAME TRUE
1221
+ #else
1222
+ # define Z_COMPILER_HAS_MAGIC_CONSTANT_MANGLED_FUNCTION_NAME FALSE
1223
+ #endif
1224
+
1225
+ /* MARK: - Built-in macros: Struture */
1226
+
1227
+ #ifdef Z_COMPILER_MACRO_OFFSET_OF
1228
+ # define Z_COMPILER_HAS_MACRO_OFFSET_OF TRUE
1229
+ #else
1230
+ # define Z_COMPILER_HAS_MACRO_OFFSET_OF FALSE
1231
+ #endif
1232
+
1233
+ /* MARK: - Built-in macros: VAL */
1234
+
1235
+ #ifdef Z_COMPILER_MACRO_VAL_INITIALIZE
1236
+ # define Z_COMPILER_HAS_MACRO_VAL_INITIALIZE TRUE
1237
+ #else
1238
+ # define Z_COMPILER_HAS_MACRO_VAL_INITIALIZE FALSE
1239
+ #endif
1240
+
1241
+ #ifdef Z_COMPILER_MACRO_VAL_FINALIZE
1242
+ # define Z_COMPILER_HAS_MACRO_VAL_FINALIZE TRUE
1243
+ #else
1244
+ # define Z_COMPILER_HAS_MACRO_VAL_FINALIZE FALSE
1245
+ #endif
1246
+
1247
+ #ifdef Z_COMPILER_MACRO_VAL_READ
1248
+ # define Z_COMPILER_HAS_MACRO_VAL_READ TRUE
1249
+ #else
1250
+ # define Z_COMPILER_HAS_MACRO_VAL_READ FALSE
1251
+ #endif
1252
+
1253
+ #ifdef Z_COMPILER_MACRO_VAL_COPY
1254
+ # define Z_COMPILER_HAS_MACRO_VAL_COPY TRUE
1255
+ #else
1256
+ # define Z_COMPILER_HAS_MACRO_VAL_COPY FALSE
1257
+ #endif
1258
+
1259
+ /* MARK: - Built-in types */
1260
+
1261
+ #ifdef Z_COMPILER_TYPE_UINT8
1262
+ # define Z_COMPILER_HAS_TYPE_UINT8 TRUE
1263
+ #else
1264
+ # define Z_COMPILER_HAS_TYPE_UINT8 FALSE
1265
+ #endif
1266
+
1267
+ #ifdef Z_COMPILER_TYPE_UINT16
1268
+ # define Z_COMPILER_HAS_TYPE_UINT16 TRUE
1269
+ #else
1270
+ # define Z_COMPILER_HAS_TYPE_UINT16 FALSE
1271
+ #endif
1272
+
1273
+ #ifdef Z_COMPILER_TYPE_UINT32
1274
+ # define Z_COMPILER_HAS_TYPE_UINT32 TRUE
1275
+ #else
1276
+ # define Z_COMPILER_HAS_TYPE_UINT32 FALSE
1277
+ #endif
1278
+
1279
+ #ifdef Z_COMPILER_TYPE_UINT64
1280
+ # define Z_COMPILER_HAS_TYPE_UINT64 TRUE
1281
+ #else
1282
+ # define Z_COMPILER_HAS_TYPE_UINT64 FALSE
1283
+ #endif
1284
+
1285
+ #ifdef Z_COMPILER_TYPE_UINT128
1286
+ # define Z_COMPILER_HAS_TYPE_UINT128 TRUE
1287
+ #else
1288
+ # define Z_COMPILER_HAS_TYPE_UINT128 FALSE
1289
+ #endif
1290
+
1291
+ #ifdef Z_COMPILER_TYPE_SINT8
1292
+ # define Z_COMPILER_HAS_TYPE_SINT8 TRUE
1293
+ #else
1294
+ # define Z_COMPILER_HAS_TYPE_SINT8 FALSE
1295
+ #endif
1296
+
1297
+ #ifdef Z_COMPILER_TYPE_SINT16
1298
+ # define Z_COMPILER_HAS_TYPE_SINT16 TRUE
1299
+ #else
1300
+ # define Z_COMPILER_HAS_TYPE_SINT16 FALSE
1301
+ #endif
1302
+
1303
+ #ifdef Z_COMPILER_TYPE_SINT32
1304
+ # define Z_COMPILER_HAS_TYPE_SINT32 TRUE
1305
+ #else
1306
+ # define Z_COMPILER_HAS_TYPE_SINT32 FALSE
1307
+ #endif
1308
+
1309
+ #ifdef Z_COMPILER_TYPE_SINT64
1310
+ # define Z_COMPILER_HAS_TYPE_SINT64 TRUE
1311
+ #else
1312
+ # define Z_COMPILER_HAS_TYPE_SINT64 FALSE
1313
+ #endif
1314
+
1315
+ #ifdef Z_COMPILER_TYPE_SINT128
1316
+ # define Z_COMPILER_HAS_TYPE_SINT128 TRUE
1317
+ #else
1318
+ # define Z_COMPILER_HAS_TYPE_SINT128 FALSE
1319
+ #endif
1320
+
1321
+ #ifdef Z_COMPILER_TYPE_FLOAT16
1322
+ # define Z_COMPILER_HAS_TYPE_FLOAT16 TRUE
1323
+ #else
1324
+ # define Z_COMPILER_HAS_TYPE_FLOAT16 FALSE
1325
+ #endif
1326
+
1327
+ #ifdef Z_COMPILER_TYPE_FLOAT32
1328
+ # define Z_COMPILER_HAS_TYPE_FLOAT32 TRUE
1329
+ #else
1330
+ # define Z_COMPILER_HAS_TYPE_FLOAT32 FALSE
1331
+ #endif
1332
+
1333
+ #ifdef Z_COMPILER_TYPE_FLOAT64
1334
+ # define Z_COMPILER_HAS_TYPE_FLOAT64 TRUE
1335
+ #else
1336
+ # define Z_COMPILER_HAS_TYPE_FLOAT64 FALSE
1337
+ #endif
1338
+
1339
+ #ifdef Z_COMPILER_TYPE_FLOAT128
1340
+ # define Z_COMPILER_HAS_TYPE_FLOAT128 TRUE
1341
+ #else
1342
+ # define Z_COMPILER_HAS_TYPE_FLOAT128 FALSE
1343
+ #endif
1344
+
1345
+ #ifdef Z_COMPILER_TYPE_FLOAT80_X87
1346
+ # define Z_COMPILER_HAS_TYPE_FLOAT80_X87 TRUE
1347
+ #else
1348
+ # define Z_COMPILER_HAS_TYPE_FLOAT80_X87 FALSE
1349
+ #endif
1350
+
1351
+ #ifdef Z_COMPILER_TYPE_FLOAT96_X87
1352
+ # define Z_COMPILER_HAS_TYPE_FLOAT96_X87 TRUE
1353
+ #else
1354
+ # define Z_COMPILER_HAS_TYPE_FLOAT96_X87 FALSE
1355
+ #endif
1356
+
1357
+ #ifdef Z_COMPILER_TYPE_FLOAT128_X87
1358
+ # define Z_COMPILER_HAS_TYPE_FLOAT128_X87 TRUE
1359
+ #else
1360
+ # define Z_COMPILER_HAS_TYPE_FLOAT128_X87 FALSE
1361
+ #endif
1362
+
1363
+ #ifdef Z_COMPILER_TYPE_VAL
1364
+ # define Z_COMPILER_HAS_TYPE_VAL TRUE
1365
+ #else
1366
+ # define Z_COMPILER_HAS_TYPE_VAL FALSE
1367
+ #endif
1368
+
1369
+ /* MARK: - Suffix macros for built-in types */
1370
+
1371
+ #ifdef Z_COMPILER_LITERAL_UINT8
1372
+ # define Z_COMPILER_HAS_LITERAL_UINT8 TRUE
1373
+ #else
1374
+ # define Z_COMPILER_HAS_LITERAL_UINT8 FALSE
1375
+ #endif
1376
+
1377
+ #ifdef Z_COMPILER_LITERAL_UINT16
1378
+ # define Z_COMPILER_HAS_LITERAL_UINT16 TRUE
1379
+ #else
1380
+ # define Z_COMPILER_HAS_LITERAL_UINT16 FALSE
1381
+ #endif
1382
+
1383
+ #ifdef Z_COMPILER_LITERAL_UINT32
1384
+ # define Z_COMPILER_HAS_LITERAL_UINT32 TRUE
1385
+ #else
1386
+ # define Z_COMPILER_HAS_LITERAL_UINT32 FALSE
1387
+ #endif
1388
+
1389
+ #ifdef Z_COMPILER_LITERAL_UINT64
1390
+ # define Z_COMPILER_HAS_LITERAL_UINT64 TRUE
1391
+ #else
1392
+ # define Z_COMPILER_HAS_LITERAL_UINT64 FALSE
1393
+ #endif
1394
+
1395
+ #ifdef Z_COMPILER_LITERAL_UINT128
1396
+ # define Z_COMPILER_HAS_LITERAL_UINT128 TRUE
1397
+ #else
1398
+ # define Z_COMPILER_HAS_LITERAL_UINT128 FALSE
1399
+ #endif
1400
+
1401
+ #ifdef Z_COMPILER_LITERAL_SINT8
1402
+ # define Z_COMPILER_HAS_LITERAL_SINT8 TRUE
1403
+ #else
1404
+ # define Z_COMPILER_HAS_LITERAL_SINT8 FALSE
1405
+ #endif
1406
+
1407
+ #ifdef Z_COMPILER_LITERAL_SINT16
1408
+ # define Z_COMPILER_HAS_LITERAL_SINT16 TRUE
1409
+ #else
1410
+ # define Z_COMPILER_HAS_LITERAL_SINT16 FALSE
1411
+ #endif
1412
+
1413
+ #ifdef Z_COMPILER_LITERAL_SINT32
1414
+ # define Z_COMPILER_HAS_LITERAL_SINT32 TRUE
1415
+ #else
1416
+ # define Z_COMPILER_HAS_LITERAL_SINT32 FALSE
1417
+ #endif
1418
+
1419
+ #ifdef Z_COMPILER_LITERAL_SINT64
1420
+ # define Z_COMPILER_HAS_LITERAL_SINT64 TRUE
1421
+ #else
1422
+ # define Z_COMPILER_HAS_LITERAL_SINT64 FALSE
1423
+ #endif
1424
+
1425
+ #ifdef Z_COMPILER_LITERAL_SINT128
1426
+ # define Z_COMPILER_HAS_LITERAL_SINT128 TRUE
1427
+ #else
1428
+ # define Z_COMPILER_HAS_LITERAL_SINT128 FALSE
1429
+ #endif
1430
+
1431
+ #ifdef Z_COMPILER_LITERAL_FLOAT16
1432
+ # define Z_COMPILER_HAS_LITERAL_FLOAT16 TRUE
1433
+ #else
1434
+ # define Z_COMPILER_HAS_LITERAL_FLOAT16 FALSE
1435
+ #endif
1436
+
1437
+ #ifdef Z_COMPILER_LITERAL_FLOAT32
1438
+ # define Z_COMPILER_HAS_LITERAL_FLOAT32 TRUE
1439
+ #else
1440
+ # define Z_COMPILER_HAS_LITERAL_FLOAT32 FALSE
1441
+ #endif
1442
+
1443
+ #ifdef Z_COMPILER_LITERAL_FLOAT64
1444
+ # define Z_COMPILER_HAS_LITERAL_FLOAT64 TRUE
1445
+ #else
1446
+ # define Z_COMPILER_HAS_LITERAL_FLOAT64 FALSE
1447
+ #endif
1448
+
1449
+ #ifdef Z_COMPILER_LITERAL_FLOAT128
1450
+ # define Z_COMPILER_HAS_LITERAL_FLOAT128 TRUE
1451
+ #else
1452
+ # define Z_COMPILER_HAS_LITERAL_FLOAT128 FALSE
1453
+ #endif
1454
+
1455
+ #ifdef Z_COMPILER_LITERAL_FLOAT80_X87
1456
+ # define Z_COMPILER_HAS_LITERAL_FLOAT80_X87 TRUE
1457
+ #else
1458
+ # define Z_COMPILER_HAS_LITERAL_FLOAT80_X87 FALSE
1459
+ #endif
1460
+
1461
+ #ifdef Z_COMPILER_LITERAL_FLOAT96_X87
1462
+ # define Z_COMPILER_HAS_LITERAL_FLOAT96_X87 TRUE
1463
+ #else
1464
+ # define Z_COMPILER_HAS_LITERAL_FLOAT96_X87 FALSE
1465
+ #endif
1466
+
1467
+ #ifdef Z_COMPILER_LITERAL_FLOAT128_X87
1468
+ # define Z_COMPILER_HAS_LITERAL_FLOAT128_X87 TRUE
1469
+ #else
1470
+ # define Z_COMPILER_HAS_LITERAL_FLOAT128_X87 FALSE
1471
+ #endif
1472
+
1473
+ /* MARK: - Built-in functions: Atomic operations */
1474
+
1475
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_SET_IF_EQUAL
1476
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_SET_IF_EQUAL TRUE
1477
+ #else
1478
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_SET_IF_EQUAL FALSE
1479
+ #endif
1480
+
1481
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_SET
1482
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_SET TRUE
1483
+ #else
1484
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_SET FALSE
1485
+ #endif
1486
+
1487
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_INCREMENT
1488
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_INCREMENT TRUE
1489
+ #else
1490
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_INCREMENT FALSE
1491
+ #endif
1492
+
1493
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_ADD
1494
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_ADD TRUE
1495
+ #else
1496
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_ADD FALSE
1497
+ #endif
1498
+
1499
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_DECREMENT
1500
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_DECREMENT TRUE
1501
+ #else
1502
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_DECREMENT FALSE
1503
+ #endif
1504
+
1505
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_SUBTRACT
1506
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_SUBTRACT TRUE
1507
+ #else
1508
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_SUBTRACT FALSE
1509
+ #endif
1510
+
1511
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_AND
1512
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_AND TRUE
1513
+ #else
1514
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_AND FALSE
1515
+ #endif
1516
+
1517
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_OR
1518
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_OR TRUE
1519
+ #else
1520
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_OR FALSE
1521
+ #endif
1522
+
1523
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_XOR
1524
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_XOR TRUE
1525
+ #else
1526
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_XOR FALSE
1527
+ #endif
1528
+
1529
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_NAND
1530
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_NAND TRUE
1531
+ #else
1532
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_NAND FALSE
1533
+ #endif
1534
+
1535
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_NOT
1536
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_NOT TRUE
1537
+ #else
1538
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_NOT FALSE
1539
+ #endif
1540
+
1541
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_INCREMENT_THEN_GET
1542
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_INCREMENT_THEN_GET TRUE
1543
+ #else
1544
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_INCREMENT_THEN_GET FALSE
1545
+ #endif
1546
+
1547
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_ADD_THEN_GET
1548
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_ADD_THEN_GET TRUE
1549
+ #else
1550
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_ADD_THEN_GET FALSE
1551
+ #endif
1552
+
1553
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_DECREMENT_THEN_GET
1554
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_DECREMENT_THEN_GET TRUE
1555
+ #else
1556
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_DECREMENT_THEN_GET FALSE
1557
+ #endif
1558
+
1559
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_SUBTRACT_THEN_GET
1560
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_SUBTRACT_THEN_GET TRUE
1561
+ #else
1562
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_SUBTRACT_THEN_GET FALSE
1563
+ #endif
1564
+
1565
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_AND_THEN_GET
1566
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_AND_THEN_GET TRUE
1567
+ #else
1568
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_AND_THEN_GET FALSE
1569
+ #endif
1570
+
1571
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_OR_THEN_GET
1572
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_OR_THEN_GET TRUE
1573
+ #else
1574
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_OR_THEN_GET FALSE
1575
+ #endif
1576
+
1577
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_XOR_THEN_GET
1578
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_XOR_THEN_GET TRUE
1579
+ #else
1580
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_XOR_THEN_GET FALSE
1581
+ #endif
1582
+
1583
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_NAND_THEN_GET
1584
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_NAND_THEN_GET TRUE
1585
+ #else
1586
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_NAND_THEN_GET FALSE
1587
+ #endif
1588
+
1589
+ #ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_NOT_THEN_GET
1590
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_NOT_THEN_GET TRUE
1591
+ #else
1592
+ # define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_NOT_THEN_GET FALSE
1593
+ #endif
1594
+
1595
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_SET_IF_EQUAL
1596
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_SET_IF_EQUAL TRUE
1597
+ #else
1598
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_SET_IF_EQUAL FALSE
1599
+ #endif
1600
+
1601
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_SET
1602
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_SET TRUE
1603
+ #else
1604
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_SET FALSE
1605
+ #endif
1606
+
1607
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_INCREMENT
1608
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_INCREMENT TRUE
1609
+ #else
1610
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_INCREMENT FALSE
1611
+ #endif
1612
+
1613
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_ADD
1614
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_ADD TRUE
1615
+ #else
1616
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_ADD FALSE
1617
+ #endif
1618
+
1619
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_DECREMENT
1620
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_DECREMENT TRUE
1621
+ #else
1622
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_DECREMENT FALSE
1623
+ #endif
1624
+
1625
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_SUBTRACT
1626
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_SUBTRACT TRUE
1627
+ #else
1628
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_SUBTRACT FALSE
1629
+ #endif
1630
+
1631
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_AND
1632
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_AND TRUE
1633
+ #else
1634
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_AND FALSE
1635
+ #endif
1636
+
1637
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_OR
1638
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_OR TRUE
1639
+ #else
1640
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_OR FALSE
1641
+ #endif
1642
+
1643
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_XOR
1644
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_XOR TRUE
1645
+ #else
1646
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_XOR FALSE
1647
+ #endif
1648
+
1649
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_NAND
1650
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_NAND TRUE
1651
+ #else
1652
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_NAND FALSE
1653
+ #endif
1654
+
1655
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_NOT
1656
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_NOT TRUE
1657
+ #else
1658
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_NOT FALSE
1659
+ #endif
1660
+
1661
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_INCREMENT_THEN_GET
1662
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_INCREMENT_THEN_GET TRUE
1663
+ #else
1664
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_INCREMENT_THEN_GET FALSE
1665
+ #endif
1666
+
1667
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_ADD_THEN_GET
1668
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_ADD_THEN_GET TRUE
1669
+ #else
1670
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_ADD_THEN_GET FALSE
1671
+ #endif
1672
+
1673
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_DECREMENT_THEN_GET
1674
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_DECREMENT_THEN_GET TRUE
1675
+ #else
1676
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_DECREMENT_THEN_GET FALSE
1677
+ #endif
1678
+
1679
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_SUBTRACT_THEN_GET
1680
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_SUBTRACT_THEN_GET TRUE
1681
+ #else
1682
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_SUBTRACT_THEN_GET FALSE
1683
+ #endif
1684
+
1685
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_AND_THEN_GET
1686
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_AND_THEN_GET TRUE
1687
+ #else
1688
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_AND_THEN_GET FALSE
1689
+ #endif
1690
+
1691
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_OR_THEN_GET
1692
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_OR_THEN_GET TRUE
1693
+ #else
1694
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_OR_THEN_GET FALSE
1695
+ #endif
1696
+
1697
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_XOR_THEN_GET
1698
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_XOR_THEN_GET TRUE
1699
+ #else
1700
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_XOR_THEN_GET FALSE
1701
+ #endif
1702
+
1703
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_NAND_THEN_GET
1704
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_NAND_THEN_GET TRUE
1705
+ #else
1706
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_NAND_THEN_GET FALSE
1707
+ #endif
1708
+
1709
+ #ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_NOT_THEN_GET
1710
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_NOT_THEN_GET TRUE
1711
+ #else
1712
+ # define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_NOT_THEN_GET FALSE
1713
+ #endif
1714
+
1715
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_SET_IF_EQUAL
1716
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_SET_IF_EQUAL TRUE
1717
+ #else
1718
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_SET_IF_EQUAL FALSE
1719
+ #endif
1720
+
1721
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_SET
1722
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_SET TRUE
1723
+ #else
1724
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_SET FALSE
1725
+ #endif
1726
+
1727
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_INCREMENT
1728
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_INCREMENT TRUE
1729
+ #else
1730
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_INCREMENT FALSE
1731
+ #endif
1732
+
1733
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_ADD
1734
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_ADD TRUE
1735
+ #else
1736
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_ADD FALSE
1737
+ #endif
1738
+
1739
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_DECREMENT
1740
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_DECREMENT TRUE
1741
+ #else
1742
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_DECREMENT FALSE
1743
+ #endif
1744
+
1745
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_SUBTRACT
1746
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_SUBTRACT TRUE
1747
+ #else
1748
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_SUBTRACT FALSE
1749
+ #endif
1750
+
1751
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_AND
1752
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_AND TRUE
1753
+ #else
1754
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_AND FALSE
1755
+ #endif
1756
+
1757
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_OR
1758
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_OR TRUE
1759
+ #else
1760
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_OR FALSE
1761
+ #endif
1762
+
1763
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_XOR
1764
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_XOR TRUE
1765
+ #else
1766
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_XOR FALSE
1767
+ #endif
1768
+
1769
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_NAND
1770
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_NAND TRUE
1771
+ #else
1772
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_NAND FALSE
1773
+ #endif
1774
+
1775
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_NOT
1776
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_NOT TRUE
1777
+ #else
1778
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_NOT FALSE
1779
+ #endif
1780
+
1781
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_INCREMENT_THEN_GET
1782
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_INCREMENT_THEN_GET TRUE
1783
+ #else
1784
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_INCREMENT_THEN_GET FALSE
1785
+ #endif
1786
+
1787
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_ADD_THEN_GET
1788
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_ADD_THEN_GET TRUE
1789
+ #else
1790
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_ADD_THEN_GET FALSE
1791
+ #endif
1792
+
1793
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_DECREMENT_THEN_GET
1794
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_DECREMENT_THEN_GET TRUE
1795
+ #else
1796
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_DECREMENT_THEN_GET FALSE
1797
+ #endif
1798
+
1799
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_SUBTRACT_THEN_GET
1800
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_SUBTRACT_THEN_GET TRUE
1801
+ #else
1802
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_SUBTRACT_THEN_GET FALSE
1803
+ #endif
1804
+
1805
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_AND_THEN_GET
1806
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_AND_THEN_GET TRUE
1807
+ #else
1808
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_AND_THEN_GET FALSE
1809
+ #endif
1810
+
1811
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_OR_THEN_GET
1812
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_OR_THEN_GET TRUE
1813
+ #else
1814
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_OR_THEN_GET FALSE
1815
+ #endif
1816
+
1817
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_XOR_THEN_GET
1818
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_XOR_THEN_GET TRUE
1819
+ #else
1820
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_XOR_THEN_GET FALSE
1821
+ #endif
1822
+
1823
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_NAND_THEN_GET
1824
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_NAND_THEN_GET TRUE
1825
+ #else
1826
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_NAND_THEN_GET FALSE
1827
+ #endif
1828
+
1829
+ #ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_NOT_THEN_GET
1830
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_NOT_THEN_GET TRUE
1831
+ #else
1832
+ # define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_NOT_THEN_GET FALSE
1833
+ #endif
1834
+
1835
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_SET_IF_EQUAL
1836
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_SET_IF_EQUAL TRUE
1837
+ #else
1838
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_SET_IF_EQUAL FALSE
1839
+ #endif
1840
+
1841
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_SET
1842
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_SET TRUE
1843
+ #else
1844
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_SET FALSE
1845
+ #endif
1846
+
1847
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_INCREMENT
1848
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_INCREMENT TRUE
1849
+ #else
1850
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_INCREMENT FALSE
1851
+ #endif
1852
+
1853
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_ADD
1854
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_ADD TRUE
1855
+ #else
1856
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_ADD FALSE
1857
+ #endif
1858
+
1859
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_DECREMENT
1860
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_DECREMENT TRUE
1861
+ #else
1862
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_DECREMENT FALSE
1863
+ #endif
1864
+
1865
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_SUBTRACT
1866
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_SUBTRACT TRUE
1867
+ #else
1868
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_SUBTRACT FALSE
1869
+ #endif
1870
+
1871
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_AND
1872
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_AND TRUE
1873
+ #else
1874
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_AND FALSE
1875
+ #endif
1876
+
1877
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_OR
1878
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_OR TRUE
1879
+ #else
1880
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_OR FALSE
1881
+ #endif
1882
+
1883
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_XOR
1884
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_XOR TRUE
1885
+ #else
1886
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_XOR FALSE
1887
+ #endif
1888
+
1889
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_NAND
1890
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_NAND TRUE
1891
+ #else
1892
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_NAND FALSE
1893
+ #endif
1894
+
1895
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_NOT
1896
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_NOT TRUE
1897
+ #else
1898
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_NOT FALSE
1899
+ #endif
1900
+
1901
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_INCREMENT_THEN_GET
1902
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_INCREMENT_THEN_GET TRUE
1903
+ #else
1904
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_INCREMENT_THEN_GET FALSE
1905
+ #endif
1906
+
1907
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_ADD_THEN_GET
1908
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_ADD_THEN_GET TRUE
1909
+ #else
1910
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_ADD_THEN_GET FALSE
1911
+ #endif
1912
+
1913
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_DECREMENT_THEN_GET
1914
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_DECREMENT_THEN_GET TRUE
1915
+ #else
1916
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_DECREMENT_THEN_GET FALSE
1917
+ #endif
1918
+
1919
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_SUBTRACT_THEN_GET
1920
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_SUBTRACT_THEN_GET TRUE
1921
+ #else
1922
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_SUBTRACT_THEN_GET FALSE
1923
+ #endif
1924
+
1925
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_AND_THEN_GET
1926
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_AND_THEN_GET TRUE
1927
+ #else
1928
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_AND_THEN_GET FALSE
1929
+ #endif
1930
+
1931
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_OR_THEN_GET
1932
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_OR_THEN_GET TRUE
1933
+ #else
1934
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_OR_THEN_GET FALSE
1935
+ #endif
1936
+
1937
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_XOR_THEN_GET
1938
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_XOR_THEN_GET TRUE
1939
+ #else
1940
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_XOR_THEN_GET FALSE
1941
+ #endif
1942
+
1943
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_NAND_THEN_GET
1944
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_NAND_THEN_GET TRUE
1945
+ #else
1946
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_NAND_THEN_GET FALSE
1947
+ #endif
1948
+
1949
+ #ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_NOT_THEN_GET
1950
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_NOT_THEN_GET TRUE
1951
+ #else
1952
+ # define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_NOT_THEN_GET FALSE
1953
+ #endif
1954
+
1955
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_SET_IF_EQUAL
1956
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_SET_IF_EQUAL TRUE
1957
+ #else
1958
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_SET_IF_EQUAL FALSE
1959
+ #endif
1960
+
1961
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_SET
1962
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_SET TRUE
1963
+ #else
1964
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_SET FALSE
1965
+ #endif
1966
+
1967
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_INCREMENT
1968
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_INCREMENT TRUE
1969
+ #else
1970
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_INCREMENT FALSE
1971
+ #endif
1972
+
1973
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_ADD
1974
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_ADD TRUE
1975
+ #else
1976
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_ADD FALSE
1977
+ #endif
1978
+
1979
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_DECREMENT
1980
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_DECREMENT TRUE
1981
+ #else
1982
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_DECREMENT FALSE
1983
+ #endif
1984
+
1985
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_SUBTRACT
1986
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_SUBTRACT TRUE
1987
+ #else
1988
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_SUBTRACT FALSE
1989
+ #endif
1990
+
1991
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_AND
1992
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_AND TRUE
1993
+ #else
1994
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_AND FALSE
1995
+ #endif
1996
+
1997
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_OR
1998
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_OR TRUE
1999
+ #else
2000
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_OR FALSE
2001
+ #endif
2002
+
2003
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_XOR
2004
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_XOR TRUE
2005
+ #else
2006
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_XOR FALSE
2007
+ #endif
2008
+
2009
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_NAND
2010
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_NAND TRUE
2011
+ #else
2012
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_NAND FALSE
2013
+ #endif
2014
+
2015
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_NOT
2016
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_NOT TRUE
2017
+ #else
2018
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_NOT FALSE
2019
+ #endif
2020
+
2021
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_INCREMENT_THEN_GET
2022
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_INCREMENT_THEN_GET TRUE
2023
+ #else
2024
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_INCREMENT_THEN_GET FALSE
2025
+ #endif
2026
+
2027
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_ADD_THEN_GET
2028
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_ADD_THEN_GET TRUE
2029
+ #else
2030
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_ADD_THEN_GET FALSE
2031
+ #endif
2032
+
2033
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_DECREMENT_THEN_GET
2034
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_DECREMENT_THEN_GET TRUE
2035
+ #else
2036
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_DECREMENT_THEN_GET FALSE
2037
+ #endif
2038
+
2039
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_SUBTRACT_THEN_GET
2040
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_SUBTRACT_THEN_GET TRUE
2041
+ #else
2042
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_SUBTRACT_THEN_GET FALSE
2043
+ #endif
2044
+
2045
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_AND_THEN_GET
2046
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_AND_THEN_GET TRUE
2047
+ #else
2048
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_AND_THEN_GET FALSE
2049
+ #endif
2050
+
2051
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_OR_THEN_GET
2052
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_OR_THEN_GET TRUE
2053
+ #else
2054
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_OR_THEN_GET FALSE
2055
+ #endif
2056
+
2057
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_XOR_THEN_GET
2058
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_XOR_THEN_GET TRUE
2059
+ #else
2060
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_XOR_THEN_GET FALSE
2061
+ #endif
2062
+
2063
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_NAND_THEN_GET
2064
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_NAND_THEN_GET TRUE
2065
+ #else
2066
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_NAND_THEN_GET FALSE
2067
+ #endif
2068
+
2069
+ #ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_NOT_THEN_GET
2070
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_NOT_THEN_GET TRUE
2071
+ #else
2072
+ # define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_NOT_THEN_GET FALSE
2073
+ #endif
2074
+
2075
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_SET_IF_EQUAL
2076
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_SET_IF_EQUAL TRUE
2077
+ #else
2078
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_SET_IF_EQUAL FALSE
2079
+ #endif
2080
+
2081
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_SET
2082
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_SET TRUE
2083
+ #else
2084
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_SET FALSE
2085
+ #endif
2086
+
2087
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_INCREMENT
2088
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_INCREMENT TRUE
2089
+ #else
2090
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_INCREMENT FALSE
2091
+ #endif
2092
+
2093
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_ADD
2094
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_ADD TRUE
2095
+ #else
2096
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_ADD FALSE
2097
+ #endif
2098
+
2099
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_DECREMENT
2100
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_DECREMENT TRUE
2101
+ #else
2102
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_DECREMENT FALSE
2103
+ #endif
2104
+
2105
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_SUBTRACT
2106
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_SUBTRACT TRUE
2107
+ #else
2108
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_SUBTRACT FALSE
2109
+ #endif
2110
+
2111
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_AND
2112
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_AND TRUE
2113
+ #else
2114
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_AND FALSE
2115
+ #endif
2116
+
2117
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_OR
2118
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_OR TRUE
2119
+ #else
2120
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_OR FALSE
2121
+ #endif
2122
+
2123
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_XOR
2124
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_XOR TRUE
2125
+ #else
2126
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_XOR FALSE
2127
+ #endif
2128
+
2129
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_NAND
2130
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_NAND TRUE
2131
+ #else
2132
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_NAND FALSE
2133
+ #endif
2134
+
2135
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_NOT
2136
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_NOT TRUE
2137
+ #else
2138
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_NOT FALSE
2139
+ #endif
2140
+
2141
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_INCREMENT_THEN_GET
2142
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_INCREMENT_THEN_GET TRUE
2143
+ #else
2144
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_INCREMENT_THEN_GET FALSE
2145
+ #endif
2146
+
2147
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_ADD_THEN_GET
2148
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_ADD_THEN_GET TRUE
2149
+ #else
2150
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_ADD_THEN_GET FALSE
2151
+ #endif
2152
+
2153
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_DECREMENT_THEN_GET
2154
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_DECREMENT_THEN_GET TRUE
2155
+ #else
2156
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_DECREMENT_THEN_GET FALSE
2157
+ #endif
2158
+
2159
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_SUBTRACT_THEN_GET
2160
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_SUBTRACT_THEN_GET TRUE
2161
+ #else
2162
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_SUBTRACT_THEN_GET FALSE
2163
+ #endif
2164
+
2165
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_AND_THEN_GET
2166
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_AND_THEN_GET TRUE
2167
+ #else
2168
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_AND_THEN_GET FALSE
2169
+ #endif
2170
+
2171
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_OR_THEN_GET
2172
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_OR_THEN_GET TRUE
2173
+ #else
2174
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_OR_THEN_GET FALSE
2175
+ #endif
2176
+
2177
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_XOR_THEN_GET
2178
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_XOR_THEN_GET TRUE
2179
+ #else
2180
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_XOR_THEN_GET FALSE
2181
+ #endif
2182
+
2183
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_NAND_THEN_GET
2184
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_NAND_THEN_GET TRUE
2185
+ #else
2186
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_NAND_THEN_GET FALSE
2187
+ #endif
2188
+
2189
+ #ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_NOT_THEN_GET
2190
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_NOT_THEN_GET TRUE
2191
+ #else
2192
+ # define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_NOT_THEN_GET FALSE
2193
+ #endif
2194
+
2195
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_SET_IF_EQUAL
2196
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_SET_IF_EQUAL TRUE
2197
+ #else
2198
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_SET_IF_EQUAL FALSE
2199
+ #endif
2200
+
2201
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_SET
2202
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_SET TRUE
2203
+ #else
2204
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_SET FALSE
2205
+ #endif
2206
+
2207
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_INCREMENT
2208
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_INCREMENT TRUE
2209
+ #else
2210
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_INCREMENT FALSE
2211
+ #endif
2212
+
2213
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_ADD
2214
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_ADD TRUE
2215
+ #else
2216
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_ADD FALSE
2217
+ #endif
2218
+
2219
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_DECREMENT
2220
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_DECREMENT TRUE
2221
+ #else
2222
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_DECREMENT FALSE
2223
+ #endif
2224
+
2225
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_SUBTRACT
2226
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_SUBTRACT TRUE
2227
+ #else
2228
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_SUBTRACT FALSE
2229
+ #endif
2230
+
2231
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_AND
2232
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_AND TRUE
2233
+ #else
2234
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_AND FALSE
2235
+ #endif
2236
+
2237
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_OR
2238
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_OR TRUE
2239
+ #else
2240
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_OR FALSE
2241
+ #endif
2242
+
2243
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_XOR
2244
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_XOR TRUE
2245
+ #else
2246
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_XOR FALSE
2247
+ #endif
2248
+
2249
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_NAND
2250
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_NAND TRUE
2251
+ #else
2252
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_NAND FALSE
2253
+ #endif
2254
+
2255
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_NOT
2256
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_NOT TRUE
2257
+ #else
2258
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_NOT FALSE
2259
+ #endif
2260
+
2261
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_INCREMENT_THEN_GET
2262
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_INCREMENT_THEN_GET TRUE
2263
+ #else
2264
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_INCREMENT_THEN_GET FALSE
2265
+ #endif
2266
+
2267
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_ADD_THEN_GET
2268
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_ADD_THEN_GET TRUE
2269
+ #else
2270
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_ADD_THEN_GET FALSE
2271
+ #endif
2272
+
2273
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_DECREMENT_THEN_GET
2274
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_DECREMENT_THEN_GET TRUE
2275
+ #else
2276
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_DECREMENT_THEN_GET FALSE
2277
+ #endif
2278
+
2279
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_SUBTRACT_THEN_GET
2280
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_SUBTRACT_THEN_GET TRUE
2281
+ #else
2282
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_SUBTRACT_THEN_GET FALSE
2283
+ #endif
2284
+
2285
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_AND_THEN_GET
2286
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_AND_THEN_GET TRUE
2287
+ #else
2288
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_AND_THEN_GET FALSE
2289
+ #endif
2290
+
2291
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_OR_THEN_GET
2292
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_OR_THEN_GET TRUE
2293
+ #else
2294
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_OR_THEN_GET FALSE
2295
+ #endif
2296
+
2297
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_XOR_THEN_GET
2298
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_XOR_THEN_GET TRUE
2299
+ #else
2300
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_XOR_THEN_GET FALSE
2301
+ #endif
2302
+
2303
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_NAND_THEN_GET
2304
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_NAND_THEN_GET TRUE
2305
+ #else
2306
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_NAND_THEN_GET FALSE
2307
+ #endif
2308
+
2309
+ #ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_NOT_THEN_GET
2310
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_NOT_THEN_GET TRUE
2311
+ #else
2312
+ # define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_NOT_THEN_GET FALSE
2313
+ #endif
2314
+
2315
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_SET_IF_EQUAL
2316
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_SET_IF_EQUAL TRUE
2317
+ #else
2318
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_SET_IF_EQUAL FALSE
2319
+ #endif
2320
+
2321
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_SET
2322
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_SET TRUE
2323
+ #else
2324
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_SET FALSE
2325
+ #endif
2326
+
2327
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_INCREMENT
2328
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_INCREMENT TRUE
2329
+ #else
2330
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_INCREMENT FALSE
2331
+ #endif
2332
+
2333
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_ADD
2334
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_ADD TRUE
2335
+ #else
2336
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_ADD FALSE
2337
+ #endif
2338
+
2339
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_DECREMENT
2340
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_DECREMENT TRUE
2341
+ #else
2342
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_DECREMENT FALSE
2343
+ #endif
2344
+
2345
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_SUBTRACT
2346
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_SUBTRACT TRUE
2347
+ #else
2348
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_SUBTRACT FALSE
2349
+ #endif
2350
+
2351
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_AND
2352
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_AND TRUE
2353
+ #else
2354
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_AND FALSE
2355
+ #endif
2356
+
2357
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_OR
2358
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_OR TRUE
2359
+ #else
2360
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_OR FALSE
2361
+ #endif
2362
+
2363
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_XOR
2364
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_XOR TRUE
2365
+ #else
2366
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_XOR FALSE
2367
+ #endif
2368
+
2369
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_NAND
2370
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_NAND TRUE
2371
+ #else
2372
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_NAND FALSE
2373
+ #endif
2374
+
2375
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_NOT
2376
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_NOT TRUE
2377
+ #else
2378
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_NOT FALSE
2379
+ #endif
2380
+
2381
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_INCREMENT_THEN_GET
2382
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_INCREMENT_THEN_GET TRUE
2383
+ #else
2384
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_INCREMENT_THEN_GET FALSE
2385
+ #endif
2386
+
2387
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_ADD_THEN_GET
2388
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_ADD_THEN_GET TRUE
2389
+ #else
2390
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_ADD_THEN_GET FALSE
2391
+ #endif
2392
+
2393
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_DECREMENT_THEN_GET
2394
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_DECREMENT_THEN_GET TRUE
2395
+ #else
2396
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_DECREMENT_THEN_GET FALSE
2397
+ #endif
2398
+
2399
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_SUBTRACT_THEN_GET
2400
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_SUBTRACT_THEN_GET TRUE
2401
+ #else
2402
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_SUBTRACT_THEN_GET FALSE
2403
+ #endif
2404
+
2405
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_AND_THEN_GET
2406
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_AND_THEN_GET TRUE
2407
+ #else
2408
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_AND_THEN_GET FALSE
2409
+ #endif
2410
+
2411
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_OR_THEN_GET
2412
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_OR_THEN_GET TRUE
2413
+ #else
2414
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_OR_THEN_GET FALSE
2415
+ #endif
2416
+
2417
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_XOR_THEN_GET
2418
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_XOR_THEN_GET TRUE
2419
+ #else
2420
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_XOR_THEN_GET FALSE
2421
+ #endif
2422
+
2423
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_NAND_THEN_GET
2424
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_NAND_THEN_GET TRUE
2425
+ #else
2426
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_NAND_THEN_GET FALSE
2427
+ #endif
2428
+
2429
+ #ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_NOT_THEN_GET
2430
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_NOT_THEN_GET TRUE
2431
+ #else
2432
+ # define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_NOT_THEN_GET FALSE
2433
+ #endif
2434
+
2435
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_SET_IF_EQUAL
2436
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_SET_IF_EQUAL TRUE
2437
+ #else
2438
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_SET_IF_EQUAL FALSE
2439
+ #endif
2440
+
2441
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_SET
2442
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_SET TRUE
2443
+ #else
2444
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_SET FALSE
2445
+ #endif
2446
+
2447
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_INCREMENT
2448
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_INCREMENT TRUE
2449
+ #else
2450
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_INCREMENT FALSE
2451
+ #endif
2452
+
2453
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_ADD
2454
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_ADD TRUE
2455
+ #else
2456
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_ADD FALSE
2457
+ #endif
2458
+
2459
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_DECREMENT
2460
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_DECREMENT TRUE
2461
+ #else
2462
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_DECREMENT FALSE
2463
+ #endif
2464
+
2465
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_SUBTRACT
2466
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_SUBTRACT TRUE
2467
+ #else
2468
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_SUBTRACT FALSE
2469
+ #endif
2470
+
2471
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_AND
2472
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_AND TRUE
2473
+ #else
2474
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_AND FALSE
2475
+ #endif
2476
+
2477
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_OR
2478
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_OR TRUE
2479
+ #else
2480
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_OR FALSE
2481
+ #endif
2482
+
2483
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_XOR
2484
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_XOR TRUE
2485
+ #else
2486
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_XOR FALSE
2487
+ #endif
2488
+
2489
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_NAND
2490
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_NAND TRUE
2491
+ #else
2492
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_NAND FALSE
2493
+ #endif
2494
+
2495
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_NOT
2496
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_NOT TRUE
2497
+ #else
2498
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_NOT FALSE
2499
+ #endif
2500
+
2501
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_INCREMENT_THEN_GET
2502
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_INCREMENT_THEN_GET TRUE
2503
+ #else
2504
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_INCREMENT_THEN_GET FALSE
2505
+ #endif
2506
+
2507
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_ADD_THEN_GET
2508
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_ADD_THEN_GET TRUE
2509
+ #else
2510
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_ADD_THEN_GET FALSE
2511
+ #endif
2512
+
2513
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_DECREMENT_THEN_GET
2514
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_DECREMENT_THEN_GET TRUE
2515
+ #else
2516
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_DECREMENT_THEN_GET FALSE
2517
+ #endif
2518
+
2519
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_SUBTRACT_THEN_GET
2520
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_SUBTRACT_THEN_GET TRUE
2521
+ #else
2522
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_SUBTRACT_THEN_GET FALSE
2523
+ #endif
2524
+
2525
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_AND_THEN_GET
2526
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_AND_THEN_GET TRUE
2527
+ #else
2528
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_AND_THEN_GET FALSE
2529
+ #endif
2530
+
2531
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_OR_THEN_GET
2532
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_OR_THEN_GET TRUE
2533
+ #else
2534
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_OR_THEN_GET FALSE
2535
+ #endif
2536
+
2537
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_XOR_THEN_GET
2538
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_XOR_THEN_GET TRUE
2539
+ #else
2540
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_XOR_THEN_GET FALSE
2541
+ #endif
2542
+
2543
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_NAND_THEN_GET
2544
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_NAND_THEN_GET TRUE
2545
+ #else
2546
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_NAND_THEN_GET FALSE
2547
+ #endif
2548
+
2549
+ #ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_NOT_THEN_GET
2550
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_NOT_THEN_GET TRUE
2551
+ #else
2552
+ # define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_NOT_THEN_GET FALSE
2553
+ #endif
2554
+
2555
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_SET_IF_EQUAL
2556
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_SET_IF_EQUAL TRUE
2557
+ #else
2558
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_SET_IF_EQUAL FALSE
2559
+ #endif
2560
+
2561
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_SET
2562
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_SET TRUE
2563
+ #else
2564
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_SET FALSE
2565
+ #endif
2566
+
2567
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_INCREMENT
2568
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_INCREMENT TRUE
2569
+ #else
2570
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_INCREMENT FALSE
2571
+ #endif
2572
+
2573
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_ADD
2574
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_ADD TRUE
2575
+ #else
2576
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_ADD FALSE
2577
+ #endif
2578
+
2579
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_DECREMENT
2580
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_DECREMENT TRUE
2581
+ #else
2582
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_DECREMENT FALSE
2583
+ #endif
2584
+
2585
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_SUBTRACT
2586
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_SUBTRACT TRUE
2587
+ #else
2588
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_SUBTRACT FALSE
2589
+ #endif
2590
+
2591
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_AND
2592
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_AND TRUE
2593
+ #else
2594
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_AND FALSE
2595
+ #endif
2596
+
2597
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_OR
2598
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_OR TRUE
2599
+ #else
2600
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_OR FALSE
2601
+ #endif
2602
+
2603
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_XOR
2604
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_XOR TRUE
2605
+ #else
2606
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_XOR FALSE
2607
+ #endif
2608
+
2609
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_NAND
2610
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_NAND TRUE
2611
+ #else
2612
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_NAND FALSE
2613
+ #endif
2614
+
2615
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_NOT
2616
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_NOT TRUE
2617
+ #else
2618
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_NOT FALSE
2619
+ #endif
2620
+
2621
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_INCREMENT_THEN_GET
2622
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_INCREMENT_THEN_GET TRUE
2623
+ #else
2624
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_INCREMENT_THEN_GET FALSE
2625
+ #endif
2626
+
2627
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_ADD_THEN_GET
2628
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_ADD_THEN_GET TRUE
2629
+ #else
2630
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_ADD_THEN_GET FALSE
2631
+ #endif
2632
+
2633
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_DECREMENT_THEN_GET
2634
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_DECREMENT_THEN_GET TRUE
2635
+ #else
2636
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_DECREMENT_THEN_GET FALSE
2637
+ #endif
2638
+
2639
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_SUBTRACT_THEN_GET
2640
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_SUBTRACT_THEN_GET TRUE
2641
+ #else
2642
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_SUBTRACT_THEN_GET FALSE
2643
+ #endif
2644
+
2645
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_AND_THEN_GET
2646
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_AND_THEN_GET TRUE
2647
+ #else
2648
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_AND_THEN_GET FALSE
2649
+ #endif
2650
+
2651
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_OR_THEN_GET
2652
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_OR_THEN_GET TRUE
2653
+ #else
2654
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_OR_THEN_GET FALSE
2655
+ #endif
2656
+
2657
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_XOR_THEN_GET
2658
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_XOR_THEN_GET TRUE
2659
+ #else
2660
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_XOR_THEN_GET FALSE
2661
+ #endif
2662
+
2663
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_NAND_THEN_GET
2664
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_NAND_THEN_GET TRUE
2665
+ #else
2666
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_NAND_THEN_GET FALSE
2667
+ #endif
2668
+
2669
+ #ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_NOT_THEN_GET
2670
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_NOT_THEN_GET TRUE
2671
+ #else
2672
+ # define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_NOT_THEN_GET FALSE
2673
+ #endif
2674
+
2675
+ /* MARK: - Built-in traits */
2676
+
2677
+ #ifdef Z_COMPILER_TRAIT_TYPE_HAS_VIRTUAL_DESTRUCTOR
2678
+ # define Z_COMPILER_HAS_TRAIT_TYPE_HAS_VIRTUAL_DESTRUCTOR TRUE
2679
+ #else
2680
+ # define Z_COMPILER_HAS_TRAIT_TYPE_HAS_VIRTUAL_DESTRUCTOR FALSE
2681
+ #endif
2682
+
2683
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_ABSTRACT
2684
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_ABSTRACT TRUE
2685
+ #else
2686
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_ABSTRACT FALSE
2687
+ #endif
2688
+
2689
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_AGGREGATE
2690
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_AGGREGATE TRUE
2691
+ #else
2692
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_AGGREGATE FALSE
2693
+ #endif
2694
+
2695
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_ASSIGNABLE
2696
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_ASSIGNABLE TRUE
2697
+ #else
2698
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_ASSIGNABLE FALSE
2699
+ #endif
2700
+
2701
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_BASE
2702
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_BASE TRUE
2703
+ #else
2704
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_BASE FALSE
2705
+ #endif
2706
+
2707
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_CLASS
2708
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_CLASS TRUE
2709
+ #else
2710
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_CLASS FALSE
2711
+ #endif
2712
+
2713
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_CONSTRUCTIBLE
2714
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_CONSTRUCTIBLE TRUE
2715
+ #else
2716
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_CONSTRUCTIBLE FALSE
2717
+ #endif
2718
+
2719
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_CONVERTIBLE
2720
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_CONVERTIBLE TRUE
2721
+ #else
2722
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_CONVERTIBLE FALSE
2723
+ #endif
2724
+
2725
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_EMPTY
2726
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_EMPTY TRUE
2727
+ #else
2728
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_EMPTY FALSE
2729
+ #endif
2730
+
2731
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_ENUMERATION
2732
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_ENUMERATION TRUE
2733
+ #else
2734
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_ENUMERATION FALSE
2735
+ #endif
2736
+
2737
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_FINAL
2738
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_FINAL TRUE
2739
+ #else
2740
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_FINAL FALSE
2741
+ #endif
2742
+
2743
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_INTERFACE_CLASS
2744
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_INTERFACE_CLASS TRUE
2745
+ #else
2746
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_INTERFACE_CLASS FALSE
2747
+ #endif
2748
+
2749
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_LITERAL
2750
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_LITERAL TRUE
2751
+ #else
2752
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_LITERAL FALSE
2753
+ #endif
2754
+
2755
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_ASSIGNABLE
2756
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_ASSIGNABLE TRUE
2757
+ #else
2758
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_ASSIGNABLE FALSE
2759
+ #endif
2760
+
2761
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_CONSTRUCTIBLE
2762
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_CONSTRUCTIBLE TRUE
2763
+ #else
2764
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_CONSTRUCTIBLE FALSE
2765
+ #endif
2766
+
2767
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_COPY_ASSIGNABLE
2768
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_COPY_ASSIGNABLE TRUE
2769
+ #else
2770
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_COPY_ASSIGNABLE TRUE
2771
+ #endif
2772
+
2773
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_COPY_CONSTRUCTIBLE
2774
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_COPY_CONSTRUCTIBLE TRUE
2775
+ #else
2776
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_COPY_CONSTRUCTIBLE FALSE
2777
+ #endif
2778
+
2779
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE
2780
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE TRUE
2781
+ #else
2782
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE FALSE
2783
+ #endif
2784
+
2785
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_POD
2786
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_POD TRUE
2787
+ #else
2788
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_POD FALSE
2789
+ #endif
2790
+
2791
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_POLYMORPHIC
2792
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_POLYMORPHIC TRUE
2793
+ #else
2794
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_POLYMORPHIC FALSE
2795
+ #endif
2796
+
2797
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_STANDARD_LAYOUT
2798
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_STANDARD_LAYOUT TRUE
2799
+ #else
2800
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_STANDARD_LAYOUT FALSE
2801
+ #endif
2802
+
2803
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIAL
2804
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIAL TRUE
2805
+ #else
2806
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIAL FALSE
2807
+ #endif
2808
+
2809
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_ASSIGNABLE
2810
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_ASSIGNABLE TRUE
2811
+ #else
2812
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_ASSIGNABLE FALSE
2813
+ #endif
2814
+
2815
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_CONSTRUCTIBLE
2816
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_CONSTRUCTIBLE TRUE
2817
+ #else
2818
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_CONSTRUCTIBLE FALSE
2819
+ #endif
2820
+
2821
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_COPY_ASSIGNABLE
2822
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_COPY_ASSIGNABLE TRUE
2823
+ #else
2824
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_COPY_ASSIGNABLE FALSE
2825
+ #endif
2826
+
2827
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE
2828
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE TRUE
2829
+ #else
2830
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE FALSE
2831
+ #endif
2832
+
2833
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_COPYABLE
2834
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_COPYABLE TRUE
2835
+ #else
2836
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_COPYABLE FALSE
2837
+ #endif
2838
+
2839
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE
2840
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE TRUE
2841
+ #else
2842
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE FALSE
2843
+ #endif
2844
+
2845
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_DESTRUCTIBLE
2846
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_DESTRUCTIBLE TRUE
2847
+ #else
2848
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_DESTRUCTIBLE FALSE
2849
+ #endif
2850
+
2851
+ #ifdef Z_COMPILER_TRAIT_TYPE_IS_UNION
2852
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_UNION TRUE
2853
+ #else
2854
+ # define Z_COMPILER_HAS_TRAIT_TYPE_IS_UNION FALSE
2855
+ #endif
2856
+
2857
+ #ifdef Z_COMPILER_TRAIT_TYPE_UNDERLYING_TYPE
2858
+ # define Z_COMPILER_HAS_TRAIT_TYPE_UNDERLYING_TYPE TRUE
2859
+ #else
2860
+ # define Z_COMPILER_HAS_TRAIT_TYPE_UNDERLYING_TYPE FALSE
2861
+ #endif
2862
+
2863
+ /* MARK: - Value formats */
2864
+
2865
+ #if Z_COMPILER_C_HAS_TYPE_FLOAT && !defined(Z_COMPILER_VALUE_FORMAT_FLOAT)
2866
+ # define Z_COMPILER_VALUE_FORMAT_FLOAT Z_VALUE_FORMAT_IEEE_754_BINARY32
2867
+ #endif
2868
+
2869
+ #if Z_COMPILER_C_HAS_TYPE_DOUBLE && !defined(Z_COMPILER_VALUE_FORMAT_DOUBLE)
2870
+ # define Z_COMPILER_VALUE_FORMAT_DOUBLE Z_VALUE_FORMAT_IEEE_754_BINARY64
2871
+ #endif
2872
+
2873
+ /* MARK: - Complete implementations */
2874
+
2875
+ #if Z_COMPILER_HAS_TYPE_VAL && \
2876
+ Z_COMPILER_HAS_MACRO_VAL_INITIALIZE && \
2877
+ Z_COMPILER_HAS_MACRO_VAL_FINALIZE && \
2878
+ Z_COMPILER_HAS_MACRO_VAL_READ
2879
+
2880
+ # define Z_COMPILER_HAS_VAL TRUE
2881
+ #else
2882
+ # define Z_COMPILER_HAS_VAL FALSE
2883
+ #endif
2884
+
2885
+ /* inspection/C++/completion.h EOF */