webruby 0.1.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (518) hide show
  1. checksums.yaml +4 -4
  2. data/driver/driver.c +12 -0
  3. data/lib/webruby/config.rb +3 -3
  4. data/lib/webruby/environment.rb +1 -0
  5. data/lib/webruby/rake/files.rake +22 -22
  6. data/lib/webruby/rake/general.rake +0 -1
  7. data/lib/webruby/utility.rb +2 -0
  8. data/modules/emscripten/AUTHORS +12 -1
  9. data/modules/emscripten/cmake/Platform/Emscripten.cmake +152 -15
  10. data/modules/emscripten/em++ +2 -0
  11. data/modules/emscripten/em++.bat +1 -1
  12. data/modules/emscripten/em-config.bat +1 -1
  13. data/modules/emscripten/emar.bat +1 -1
  14. data/modules/emscripten/emcc +233 -95
  15. data/modules/emscripten/emcc.bat +1 -1
  16. data/modules/emscripten/emconfigure.bat +1 -1
  17. data/modules/emscripten/emmake.bat +1 -1
  18. data/modules/emscripten/emranlib.bat +1 -1
  19. data/modules/emscripten/emscripten.py +221 -217
  20. data/modules/emscripten/package.json +7 -0
  21. data/modules/emscripten/src/analyzer.js +1437 -1385
  22. data/modules/emscripten/src/compiler.js +30 -6
  23. data/modules/emscripten/src/compiler_phase.html +33 -0
  24. data/modules/emscripten/src/fastLong.js +6 -6
  25. data/modules/emscripten/src/headless.js +47 -656
  26. data/modules/emscripten/src/headlessCanvas.js +618 -0
  27. data/modules/emscripten/src/intertyper.js +1038 -899
  28. data/modules/emscripten/src/jsifier.js +818 -714
  29. data/modules/emscripten/src/library.js +1794 -2968
  30. data/modules/emscripten/src/library_browser.js +81 -16
  31. data/modules/emscripten/src/library_egl.js +9 -3
  32. data/modules/emscripten/src/library_fs.js +1585 -0
  33. data/modules/emscripten/src/library_gl.js +445 -202
  34. data/modules/emscripten/src/library_glfw.js +4 -1
  35. data/modules/emscripten/src/library_glut.js +61 -13
  36. data/modules/emscripten/src/library_idbfs.js +216 -0
  37. data/modules/emscripten/src/library_memfs.js +279 -0
  38. data/modules/emscripten/src/library_nodefs.js +234 -0
  39. data/modules/emscripten/src/library_openal.js +131 -150
  40. data/modules/emscripten/src/library_path.js +3 -0
  41. data/modules/emscripten/src/library_sdl.js +499 -229
  42. data/modules/emscripten/src/library_sockfs.js +576 -0
  43. data/modules/emscripten/src/library_tty.js +146 -0
  44. data/modules/emscripten/src/modules.js +30 -35
  45. data/modules/emscripten/src/parseTools.js +356 -161
  46. data/modules/emscripten/src/postamble.js +76 -31
  47. data/modules/emscripten/src/preamble.js +271 -41
  48. data/modules/emscripten/src/proxyClient.js +82 -0
  49. data/modules/emscripten/src/proxyWorker.js +143 -0
  50. data/modules/emscripten/src/relooper/Relooper.cpp +60 -24
  51. data/modules/emscripten/src/relooper/Relooper.h +3 -2
  52. data/modules/emscripten/src/relooper/emscripten/glue.js +20 -10
  53. data/modules/emscripten/src/relooper/fuzzer.py +19 -10
  54. data/modules/emscripten/src/relooper/test.cpp +50 -50
  55. data/modules/emscripten/src/relooper/test.txt +147 -30
  56. data/modules/emscripten/src/relooper/test2.c +13 -13
  57. data/modules/emscripten/src/relooper/test2.txt +17 -3
  58. data/modules/emscripten/src/relooper/test3.c +7 -7
  59. data/modules/emscripten/src/relooper/test3.txt +36 -7
  60. data/modules/emscripten/src/relooper/test4.cpp +7 -7
  61. data/modules/emscripten/src/relooper/test4.txt +28 -7
  62. data/modules/emscripten/src/relooper/test5.cpp +6 -6
  63. data/modules/emscripten/src/relooper/test5.txt +34 -10
  64. data/modules/emscripten/src/relooper/test6.cpp +4 -4
  65. data/modules/emscripten/src/relooper/test6.txt +17 -3
  66. data/modules/emscripten/src/relooper/test_dead.cpp +2 -2
  67. data/modules/emscripten/src/relooper/test_debug.cpp +4 -4
  68. data/modules/emscripten/src/relooper/test_debug.txt +17 -3
  69. data/modules/emscripten/src/relooper/test_fuzz1.cpp +9 -9
  70. data/modules/emscripten/src/relooper/test_fuzz1.txt +45 -5
  71. data/modules/emscripten/src/relooper/test_fuzz2.cpp +4 -4
  72. data/modules/emscripten/src/relooper/test_fuzz2.txt +18 -1
  73. data/modules/emscripten/src/relooper/test_fuzz3.cpp +5 -5
  74. data/modules/emscripten/src/relooper/test_fuzz3.txt +16 -0
  75. data/modules/emscripten/src/relooper/test_fuzz4.cpp +5 -5
  76. data/modules/emscripten/src/relooper/test_fuzz4.txt +25 -3
  77. data/modules/emscripten/src/relooper/test_fuzz5.cpp +10 -10
  78. data/modules/emscripten/src/relooper/test_fuzz5.txt +49 -15
  79. data/modules/emscripten/src/relooper/test_fuzz6.cpp +92 -92
  80. data/modules/emscripten/src/relooper/test_fuzz6.txt +201 -18
  81. data/modules/emscripten/src/relooper/test_inf.cpp +184 -184
  82. data/modules/emscripten/src/relooper/test_inf.txt +1078 -332
  83. data/modules/emscripten/src/runtime.js +69 -45
  84. data/modules/emscripten/src/settings.js +48 -919
  85. data/modules/emscripten/src/shell.html +1 -1
  86. data/modules/emscripten/src/shell.js +14 -8
  87. data/modules/emscripten/src/shell_sharedlib.js +18 -1
  88. data/modules/emscripten/src/simd.js +958 -0
  89. data/modules/emscripten/src/struct_info.json +1045 -0
  90. data/modules/emscripten/src/utility.js +11 -0
  91. data/modules/emscripten/system/bin/sdl-config +13 -0
  92. data/modules/emscripten/system/include/compat/ctype.h +17 -0
  93. data/modules/emscripten/system/include/compat/malloc.h +48 -0
  94. data/modules/emscripten/system/include/compat/math.h +14 -0
  95. data/modules/emscripten/system/include/compat/netdb.h +22 -0
  96. data/modules/emscripten/system/include/compat/stdarg.h +16 -0
  97. data/modules/emscripten/system/include/compat/stdlib.h +16 -0
  98. data/modules/emscripten/system/include/compat/string.h +17 -0
  99. data/modules/emscripten/system/include/compat/sys/socketvar.h +14 -0
  100. data/modules/emscripten/system/include/compat/sys/stat.h +20 -0
  101. data/modules/emscripten/system/include/{libc → compat}/sys/timeb.h +3 -7
  102. data/modules/emscripten/system/include/compat/time.h +18 -0
  103. data/modules/emscripten/system/include/compat/unistd.h +16 -0
  104. data/modules/emscripten/system/include/compat/xlocale.h +19 -0
  105. data/modules/emscripten/system/include/emscripten/emscripten.h +48 -7
  106. data/modules/emscripten/system/include/emscripten/vector.h +6 -0
  107. data/modules/emscripten/system/include/libc/aio.h +69 -0
  108. data/modules/emscripten/system/include/libc/alloca.h +13 -13
  109. data/modules/emscripten/system/include/libc/ar.h +19 -63
  110. data/modules/emscripten/system/include/libc/arpa/ftp.h +35 -0
  111. data/modules/emscripten/system/include/libc/arpa/inet.h +36 -0
  112. data/modules/emscripten/system/include/libc/arpa/nameser.h +467 -0
  113. data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +2 -0
  114. data/modules/emscripten/system/include/libc/arpa/telnet.h +251 -0
  115. data/modules/emscripten/system/include/libc/arpa/tftp.h +31 -0
  116. data/modules/emscripten/system/include/libc/assert.h +9 -36
  117. data/modules/emscripten/system/include/libc/bits/alltypes.h +397 -0
  118. data/modules/emscripten/system/include/libc/bits/endian.h +1 -0
  119. data/modules/emscripten/system/include/libc/bits/errno.h +134 -0
  120. data/modules/emscripten/system/include/libc/bits/fcntl.h +38 -0
  121. data/modules/emscripten/system/include/libc/bits/fenv.h +34 -0
  122. data/modules/emscripten/system/include/libc/bits/float.h +17 -0
  123. data/modules/emscripten/system/include/libc/bits/io.h +0 -0
  124. data/modules/emscripten/system/include/libc/bits/ioctl.h +197 -0
  125. data/modules/emscripten/system/include/libc/bits/ipc.h +14 -0
  126. data/modules/emscripten/system/include/libc/bits/limits.h +8 -0
  127. data/modules/emscripten/system/include/libc/bits/mman.h +62 -0
  128. data/modules/emscripten/system/include/libc/bits/msg.h +16 -0
  129. data/modules/emscripten/system/include/libc/bits/posix.h +2 -0
  130. data/modules/emscripten/system/include/libc/bits/reg.h +19 -0
  131. data/modules/emscripten/system/include/libc/bits/setjmp.h +1 -0
  132. data/modules/emscripten/system/include/libc/bits/shm.h +18 -0
  133. data/modules/emscripten/system/include/libc/bits/signal.h +112 -0
  134. data/modules/emscripten/system/include/libc/bits/socket.h +17 -0
  135. data/modules/emscripten/system/include/libc/bits/stat.h +22 -0
  136. data/modules/emscripten/system/include/libc/bits/statfs.h +7 -0
  137. data/modules/emscripten/system/include/libc/bits/stdarg.h +4 -0
  138. data/modules/emscripten/system/include/libc/bits/stdint.h +20 -0
  139. data/modules/emscripten/system/include/libc/bits/syscall.h +696 -0
  140. data/modules/emscripten/system/include/libc/bits/termios.h +160 -0
  141. data/modules/emscripten/system/include/libc/bits/user.h +48 -0
  142. data/modules/emscripten/system/include/libc/byteswap.h +26 -0
  143. data/modules/emscripten/system/include/libc/complex.h +55 -54
  144. data/modules/emscripten/system/include/libc/cpio.h +29 -0
  145. data/modules/emscripten/system/include/libc/crypt.h +20 -0
  146. data/modules/emscripten/system/include/libc/ctype.h +58 -187
  147. data/modules/emscripten/system/include/libc/dirent.h +69 -6
  148. data/modules/emscripten/system/include/libc/dlfcn.h +42 -0
  149. data/modules/emscripten/system/include/libc/elf.h +2555 -0
  150. data/modules/emscripten/system/include/libc/endian.h +80 -1
  151. data/modules/emscripten/system/include/libc/err.h +25 -0
  152. data/modules/emscripten/system/include/libc/errno.h +23 -7
  153. data/modules/emscripten/system/include/libc/fcntl.h +175 -1
  154. data/modules/emscripten/system/include/libc/features.h +32 -0
  155. data/modules/emscripten/system/include/libc/fenv.h +28 -0
  156. data/modules/emscripten/system/include/libc/float.h +34 -0
  157. data/modules/emscripten/system/include/libc/fnmatch.h +24 -50
  158. data/modules/emscripten/system/include/libc/ftw.h +42 -0
  159. data/modules/emscripten/system/include/libc/getopt.h +22 -187
  160. data/modules/emscripten/system/include/libc/glob.h +42 -83
  161. data/modules/emscripten/system/include/libc/grp.h +37 -79
  162. data/modules/emscripten/system/include/libc/iconv.h +18 -56
  163. data/modules/emscripten/system/include/libc/ifaddrs.h +24 -53
  164. data/modules/emscripten/system/include/libc/inttypes.h +208 -271
  165. data/modules/emscripten/system/include/libc/iso646.h +5 -28
  166. data/modules/emscripten/system/include/libc/langinfo.h +88 -316
  167. data/modules/emscripten/system/include/libc/lastlog.h +1 -0
  168. data/modules/emscripten/system/include/libc/libgen.h +5 -13
  169. data/modules/emscripten/system/include/libc/libintl.h +25 -0
  170. data/modules/emscripten/system/include/libc/limits.h +140 -149
  171. data/modules/emscripten/system/include/libc/link.h +54 -0
  172. data/modules/emscripten/system/include/libc/locale.h +72 -70
  173. data/modules/emscripten/system/include/libc/malloc.h +0 -169
  174. data/modules/emscripten/system/include/libc/math.h +393 -573
  175. data/modules/emscripten/system/include/libc/memory.h +1 -0
  176. data/modules/emscripten/system/include/libc/mntent.h +44 -0
  177. data/modules/emscripten/system/include/libc/monetary.h +23 -0
  178. data/modules/emscripten/system/include/libc/mqueue.h +36 -0
  179. data/modules/emscripten/system/include/libc/net/ethernet.h +55 -0
  180. data/modules/emscripten/system/include/libc/net/if.h +135 -0
  181. data/modules/emscripten/system/include/libc/net/if_arp.h +133 -0
  182. data/modules/emscripten/system/include/libc/net/route.h +124 -0
  183. data/modules/emscripten/system/include/libc/netdb.h +161 -0
  184. data/modules/emscripten/system/include/libc/netinet/ether.h +14 -0
  185. data/modules/emscripten/system/include/libc/netinet/icmp6.h +305 -0
  186. data/modules/emscripten/system/include/libc/netinet/if_ether.h +126 -0
  187. data/modules/emscripten/system/include/libc/netinet/in.h +336 -0
  188. data/modules/emscripten/system/include/libc/netinet/in_systm.h +9 -0
  189. data/modules/emscripten/system/include/libc/netinet/ip.h +186 -0
  190. data/modules/emscripten/system/include/libc/netinet/ip6.h +142 -0
  191. data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +192 -0
  192. data/modules/emscripten/system/include/libc/netinet/tcp.h +71 -0
  193. data/modules/emscripten/system/include/libc/netinet/udp.h +35 -0
  194. data/modules/emscripten/system/include/libc/netpacket/packet.h +44 -0
  195. data/modules/emscripten/system/include/libc/nl_types.h +22 -0
  196. data/modules/emscripten/system/include/libc/paths.h +30 -5
  197. data/modules/emscripten/system/include/libc/poll.h +46 -0
  198. data/modules/emscripten/system/include/libc/pthread.h +191 -331
  199. data/modules/emscripten/system/include/libc/pty.h +18 -0
  200. data/modules/emscripten/system/include/libc/pwd.h +33 -62
  201. data/modules/emscripten/system/include/libc/readme.txt +2 -2
  202. data/modules/emscripten/system/include/libc/regex.h +53 -93
  203. data/modules/emscripten/system/include/libc/resolv.h +144 -0
  204. data/modules/emscripten/system/include/libc/sched.h +124 -89
  205. data/modules/emscripten/system/include/libc/search.h +40 -48
  206. data/modules/emscripten/system/include/libc/semaphore.h +35 -0
  207. data/modules/emscripten/system/include/libc/setjmp.h +35 -13
  208. data/modules/emscripten/system/include/libc/shadow.h +44 -0
  209. data/modules/emscripten/system/include/libc/signal.h +245 -20
  210. data/modules/emscripten/system/include/libc/spawn.h +74 -0
  211. data/modules/emscripten/system/include/libc/stdalign.h +15 -0
  212. data/modules/emscripten/system/include/libc/stdarg.h +18 -43
  213. data/modules/emscripten/system/include/libc/stdbool.h +14 -0
  214. data/modules/emscripten/system/include/libc/stddef.h +12 -58
  215. data/modules/emscripten/system/include/libc/stdint.h +82 -458
  216. data/modules/emscripten/system/include/libc/stdio.h +184 -679
  217. data/modules/emscripten/system/include/libc/stdio_ext.h +34 -0
  218. data/modules/emscripten/system/include/libc/stdlib.h +146 -205
  219. data/modules/emscripten/system/include/libc/stdnoreturn.h +5 -0
  220. data/modules/emscripten/system/include/libc/string.h +86 -89
  221. data/modules/emscripten/system/include/libc/strings.h +27 -27
  222. data/modules/emscripten/system/include/libc/stropts.h +139 -0
  223. data/modules/emscripten/system/include/libc/sys/acct.h +75 -0
  224. data/modules/emscripten/system/include/libc/sys/cachectl.h +22 -0
  225. data/modules/emscripten/system/include/libc/sys/dir.h +0 -8
  226. data/modules/emscripten/system/include/libc/sys/epoll.h +67 -0
  227. data/modules/emscripten/system/include/libc/sys/errno.h +2 -190
  228. data/modules/emscripten/system/include/libc/sys/eventfd.h +26 -0
  229. data/modules/emscripten/system/include/libc/sys/fcntl.h +2 -4
  230. data/modules/emscripten/system/include/libc/sys/file.h +20 -1
  231. data/modules/emscripten/system/include/libc/sys/fsuid.h +20 -0
  232. data/modules/emscripten/system/include/libc/sys/inotify.h +57 -0
  233. data/modules/emscripten/system/include/libc/sys/io.h +17 -0
  234. data/modules/emscripten/system/include/libc/sys/ioctl.h +14 -0
  235. data/modules/emscripten/system/include/libc/sys/ipc.h +42 -0
  236. data/modules/emscripten/system/include/{sys/sysctl.h → libc/sys/klog.h} +4 -4
  237. data/modules/emscripten/system/include/libc/sys/mman.h +55 -0
  238. data/modules/emscripten/system/include/libc/sys/mount.h +72 -0
  239. data/modules/emscripten/system/include/libc/sys/msg.h +52 -0
  240. data/modules/emscripten/system/include/libc/sys/mtio.h +188 -0
  241. data/modules/emscripten/system/include/libc/sys/param.h +29 -19
  242. data/modules/emscripten/system/include/libc/sys/personality.h +46 -0
  243. data/modules/emscripten/system/include/libc/sys/poll.h +2 -0
  244. data/modules/emscripten/system/include/libc/sys/prctl.h +101 -0
  245. data/modules/emscripten/system/include/libc/sys/procfs.h +65 -0
  246. data/modules/emscripten/system/include/libc/sys/ptrace.h +96 -0
  247. data/modules/emscripten/system/include/libc/sys/reboot.h +20 -0
  248. data/modules/emscripten/system/include/libc/sys/reg.h +9 -0
  249. data/modules/emscripten/system/include/libc/sys/resource.h +89 -45
  250. data/modules/emscripten/system/include/libc/sys/select.h +42 -0
  251. data/modules/emscripten/system/include/libc/sys/sem.h +82 -0
  252. data/modules/emscripten/system/include/libc/sys/sendfile.h +22 -0
  253. data/modules/emscripten/system/include/libc/sys/shm.h +61 -0
  254. data/modules/emscripten/system/include/libc/sys/signal.h +1 -315
  255. data/modules/emscripten/system/include/libc/sys/signalfd.h +44 -0
  256. data/modules/emscripten/system/include/libc/sys/socket.h +299 -0
  257. data/modules/emscripten/system/include/libc/sys/stat.h +95 -204
  258. data/modules/emscripten/system/include/libc/sys/statfs.h +32 -0
  259. data/modules/emscripten/system/include/libc/sys/statvfs.h +57 -0
  260. data/modules/emscripten/system/include/libc/sys/stropts.h +1 -0
  261. data/modules/emscripten/system/include/libc/sys/swap.h +21 -0
  262. data/modules/emscripten/system/include/libc/sys/syscall.h +6 -0
  263. data/modules/emscripten/system/include/libc/sys/sysctl.h +17 -0
  264. data/modules/emscripten/system/include/libc/sys/sysinfo.h +36 -0
  265. data/modules/emscripten/system/include/libc/sys/syslog.h +1 -0
  266. data/modules/emscripten/system/include/libc/sys/sysmacros.h +15 -0
  267. data/modules/emscripten/system/include/libc/sys/termios.h +2 -280
  268. data/modules/emscripten/system/include/libc/sys/time.h +40 -68
  269. data/modules/emscripten/system/include/libc/sys/timerfd.h +24 -0
  270. data/modules/emscripten/system/include/libc/sys/times.h +14 -16
  271. data/modules/emscripten/system/include/libc/sys/timex.h +98 -0
  272. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +34 -92
  273. data/modules/emscripten/system/include/libc/sys/types.h +87 -481
  274. data/modules/emscripten/system/include/libc/sys/ucontext.h +1 -0
  275. data/modules/emscripten/system/include/libc/sys/uio.h +48 -0
  276. data/modules/emscripten/system/include/libc/sys/un.h +32 -0
  277. data/modules/emscripten/system/include/libc/sys/user.h +16 -0
  278. data/modules/emscripten/system/include/libc/sys/utsname.h +30 -0
  279. data/modules/emscripten/system/include/libc/sys/vfs.h +1 -0
  280. data/modules/emscripten/system/include/libc/sys/wait.h +41 -26
  281. data/modules/emscripten/system/include/libc/sys/xattr.h +30 -0
  282. data/modules/emscripten/system/include/libc/syscall.h +1 -0
  283. data/modules/emscripten/system/include/libc/sysexits.h +21 -0
  284. data/modules/emscripten/system/include/libc/syslog.h +104 -0
  285. data/modules/emscripten/system/include/libc/tar.h +27 -33
  286. data/modules/emscripten/system/include/libc/termios.h +40 -1
  287. data/modules/emscripten/system/include/libc/tgmath.h +270 -0
  288. data/modules/emscripten/system/include/libc/time.h +96 -237
  289. data/modules/emscripten/system/include/libc/ucontext.h +25 -0
  290. data/modules/emscripten/system/include/libc/ulimit.h +17 -0
  291. data/modules/emscripten/system/include/libc/unistd.h +517 -4
  292. data/modules/emscripten/system/include/libc/utime.h +15 -3
  293. data/modules/emscripten/system/include/libc/utmp.h +40 -1
  294. data/modules/emscripten/system/include/libc/utmpx.h +58 -0
  295. data/modules/emscripten/system/include/libc/values.h +39 -0
  296. data/modules/emscripten/system/include/libc/wchar.h +164 -175
  297. data/modules/emscripten/system/include/libc/wctype.h +67 -37
  298. data/modules/emscripten/system/include/libc/wordexp.h +31 -42
  299. data/modules/emscripten/system/include/libcxx/__locale +6 -6
  300. data/modules/emscripten/system/include/libcxx/locale +1 -1
  301. data/modules/emscripten/system/lib/libc/musl/readme.txt +9 -1
  302. data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +5 -0
  303. data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +92 -0
  304. data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +1085 -0
  305. data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +238 -0
  306. data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +1836 -0
  307. data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +390 -0
  308. data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +454 -0
  309. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +6 -0
  310. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +6 -0
  311. data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +6 -0
  312. data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +6 -0
  313. data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +9 -0
  314. data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +6 -0
  315. data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +6 -0
  316. data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +6 -0
  317. data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +6 -0
  318. data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +6 -0
  319. data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +6 -0
  320. data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +6 -0
  321. data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +6 -0
  322. data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +550 -0
  323. data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +640 -0
  324. data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +39 -0
  325. data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +101 -0
  326. data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +18 -0
  327. data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +6 -0
  328. data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +9 -0
  329. data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +9 -0
  330. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +16 -0
  331. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +6 -0
  332. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +21 -0
  333. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +6 -0
  334. data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +6 -0
  335. data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +9 -0
  336. data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +13 -0
  337. data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +14 -0
  338. data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +361 -0
  339. data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +53 -0
  340. data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +7 -0
  341. data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +13 -0
  342. data/modules/emscripten/system/lib/libcextra.symbols +44 -0
  343. data/modules/emscripten/system/lib/libcxx/exception.cpp +3 -3
  344. data/modules/emscripten/system/lib/libcxx/locale.cpp +12 -12
  345. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +1 -1
  346. data/modules/emscripten/tools/asm_module.py +2 -0
  347. data/modules/emscripten/tools/autodebugger.py +3 -1
  348. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -4835
  349. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -6495
  350. data/modules/emscripten/tools/file_packager.py +53 -56
  351. data/modules/emscripten/tools/find_bigfuncs.py +2 -2
  352. data/modules/emscripten/tools/find_bigvars.py +24 -0
  353. data/modules/emscripten/tools/gen_struct_info.py +509 -0
  354. data/modules/emscripten/tools/gen_struct_info.pyc +0 -0
  355. data/modules/emscripten/tools/js-optimizer.js +177 -86
  356. data/modules/emscripten/tools/js_optimizer.py +54 -19
  357. data/modules/emscripten/tools/js_optimizer.pyc +0 -0
  358. data/modules/emscripten/tools/jsrun.py +17 -7
  359. data/modules/emscripten/tools/jsrun.pyc +0 -0
  360. data/modules/emscripten/tools/response_file.py +2 -2
  361. data/modules/emscripten/tools/response_file.pyc +0 -0
  362. data/modules/emscripten/tools/shared.py +257 -123
  363. data/modules/emscripten/tools/shared.pyc +0 -0
  364. data/modules/emscripten/tools/source-maps/sourcemapper.js +37 -6
  365. data/modules/emscripten/tools/tempfiles.py +1 -0
  366. data/modules/emscripten/tools/tempfiles.pyc +0 -0
  367. data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +2 -0
  368. data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +8 -0
  369. data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +412 -169
  370. data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +88 -0
  371. data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +311 -265
  372. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -20
  373. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -21
  374. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +2 -2
  375. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +8 -8
  376. data/modules/emscripten/tools/test-js-optimizer-regs.js +1 -1
  377. data/modules/emscripten/tools/validate_asmjs.py +82 -0
  378. data/modules/mruby/Rakefile +2 -2
  379. data/modules/mruby/include/mruby/class.h +2 -2
  380. data/modules/mruby/include/mruby/compile.h +12 -4
  381. data/modules/mruby/include/mruby/data.h +8 -3
  382. data/modules/mruby/include/mruby/debug.h +65 -0
  383. data/modules/mruby/include/mruby/dump.h +10 -2
  384. data/modules/mruby/include/mruby/irep.h +1 -0
  385. data/modules/mruby/include/mruby/string.h +2 -1
  386. data/modules/mruby/include/mruby/value.h +20 -13
  387. data/modules/mruby/include/mruby/variable.h +1 -0
  388. data/modules/mruby/include/mruby.h +5 -6
  389. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +6 -4
  390. data/modules/mruby/mrbgems/mruby-math/src/math.c +4 -0
  391. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -1
  392. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +1 -1
  393. data/modules/mruby/mrbgems/mruby-random/src/random.c +1 -4
  394. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +25 -16
  395. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +4 -0
  396. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +1 -1
  397. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +51 -0
  398. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +22 -0
  399. data/modules/mruby/mrbgems/mruby-time/src/time.c +38 -60
  400. data/modules/mruby/mrblib/class.rb +2 -2
  401. data/modules/mruby/src/backtrace.c +96 -23
  402. data/modules/mruby/src/class.c +43 -41
  403. data/modules/mruby/src/codegen.c +52 -46
  404. data/modules/mruby/src/debug.c +214 -0
  405. data/modules/mruby/src/dump.c +245 -17
  406. data/modules/mruby/src/error.c +14 -6
  407. data/modules/mruby/src/etc.c +17 -10
  408. data/modules/mruby/src/gc.c +9 -9
  409. data/modules/mruby/src/kernel.c +1 -1
  410. data/modules/mruby/src/load.c +137 -1
  411. data/modules/mruby/src/object.c +1 -1
  412. data/modules/mruby/src/parse.y +162 -37
  413. data/modules/mruby/src/state.c +2 -0
  414. data/modules/mruby/src/string.c +28 -19
  415. data/modules/mruby/src/symbol.c +0 -1
  416. data/modules/mruby/src/variable.c +12 -15
  417. data/modules/mruby/src/vm.c +38 -22
  418. data/modules/mruby/tasks/mrbgem_spec.rake +6 -4
  419. data/modules/mruby/tasks/mrbgems_test.rake +9 -9
  420. data/modules/mruby/tasks/mruby_build_gem.rake +9 -0
  421. data/modules/mruby/tasks/toolchains/androideabi.rake +2 -0
  422. data/modules/mruby/test/driver.c +3 -3
  423. data/modules/mruby/test/t/array.rb +13 -0
  424. data/modules/mruby/test/t/class.rb +28 -0
  425. data/modules/mruby/test/t/exception.rb +10 -0
  426. data/modules/mruby/test/t/literals.rb +50 -0
  427. data/modules/mruby/test/t/module.rb +22 -0
  428. data/modules/mruby/test/t/proc.rb +37 -0
  429. data/modules/mruby/test/t/string.rb +20 -21
  430. data/modules/mruby/tools/mrbc/mrbc.c +2 -4
  431. data/scripts/gen_post.rb +1 -0
  432. data/scripts/gen_require.rb +107 -0
  433. data/templates/minimal/Rakefile +20 -0
  434. metadata +210 -88
  435. data/driver/main.c +0 -40
  436. data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +0 -24
  437. data/modules/emscripten/emlibtool +0 -11
  438. data/modules/emscripten/emlibtool.bat +0 -2
  439. data/modules/emscripten/src/framework.js +0 -257
  440. data/modules/emscripten/system/include/bsd/float.h +0 -91
  441. data/modules/emscripten/system/include/bsd/readme.txt +0 -2
  442. data/modules/emscripten/system/include/bsd/sys/mman.h +0 -180
  443. data/modules/emscripten/system/include/bsd/sys/utsname.h +0 -70
  444. data/modules/emscripten/system/include/dlfcn.h +0 -31
  445. data/modules/emscripten/system/include/err.h +0 -95
  446. data/modules/emscripten/system/include/features.h +0 -3
  447. data/modules/emscripten/system/include/libc/_ansi.h +0 -135
  448. data/modules/emscripten/system/include/libc/_syslist.h +0 -40
  449. data/modules/emscripten/system/include/libc/argz.h +0 -33
  450. data/modules/emscripten/system/include/libc/envlock.h +0 -15
  451. data/modules/emscripten/system/include/libc/envz.h +0 -16
  452. data/modules/emscripten/system/include/libc/fastmath.h +0 -13
  453. data/modules/emscripten/system/include/libc/ieeefp.h +0 -256
  454. data/modules/emscripten/system/include/libc/machine/_default_types.h +0 -121
  455. data/modules/emscripten/system/include/libc/machine/_types.h +0 -8
  456. data/modules/emscripten/system/include/libc/machine/ansi.h +0 -1
  457. data/modules/emscripten/system/include/libc/machine/endian.h +0 -31
  458. data/modules/emscripten/system/include/libc/machine/fastmath.h +0 -100
  459. data/modules/emscripten/system/include/libc/machine/ieeefp.h +0 -376
  460. data/modules/emscripten/system/include/libc/machine/malloc.h +0 -8
  461. data/modules/emscripten/system/include/libc/machine/param.h +0 -1
  462. data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +0 -43
  463. data/modules/emscripten/system/include/libc/machine/setjmp.h +0 -361
  464. data/modules/emscripten/system/include/libc/machine/stdlib.h +0 -8
  465. data/modules/emscripten/system/include/libc/machine/termios.h +0 -1
  466. data/modules/emscripten/system/include/libc/machine/time.h +0 -19
  467. data/modules/emscripten/system/include/libc/machine/types.h +0 -30
  468. data/modules/emscripten/system/include/libc/newlib.h +0 -2
  469. data/modules/emscripten/system/include/libc/process.h +0 -44
  470. data/modules/emscripten/system/include/libc/reent.h +0 -183
  471. data/modules/emscripten/system/include/libc/regdef.h +0 -7
  472. data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +0 -223
  473. data/modules/emscripten/system/include/libc/sys/_types.h +0 -93
  474. data/modules/emscripten/system/include/libc/sys/cdefs.h +0 -123
  475. data/modules/emscripten/system/include/libc/sys/config.h +0 -255
  476. data/modules/emscripten/system/include/libc/sys/custom_file.h +0 -2
  477. data/modules/emscripten/system/include/libc/sys/dirent.h +0 -58
  478. data/modules/emscripten/system/include/libc/sys/features.h +0 -212
  479. data/modules/emscripten/system/include/libc/sys/iconvnls.h +0 -77
  480. data/modules/emscripten/system/include/libc/sys/lock.h +0 -24
  481. data/modules/emscripten/system/include/libc/sys/queue.h +0 -471
  482. data/modules/emscripten/system/include/libc/sys/reent.h +0 -843
  483. data/modules/emscripten/system/include/libc/sys/sched.h +0 -67
  484. data/modules/emscripten/system/include/libc/sys/stdio.h +0 -27
  485. data/modules/emscripten/system/include/libc/sys/string.h +0 -2
  486. data/modules/emscripten/system/include/libc/sys/syslimits.h +0 -65
  487. data/modules/emscripten/system/include/libc/sys/unistd.h +0 -514
  488. data/modules/emscripten/system/include/libc/sys/utime.h +0 -26
  489. data/modules/emscripten/system/include/libc/unctrl.h +0 -46
  490. data/modules/emscripten/system/include/memory.h +0 -10
  491. data/modules/emscripten/system/include/mntent.h +0 -23
  492. data/modules/emscripten/system/include/net/arpa/inet.h +0 -32
  493. data/modules/emscripten/system/include/net/arpa/nameser.h +0 -535
  494. data/modules/emscripten/system/include/net/arpa/nameser_compat.h +0 -187
  495. data/modules/emscripten/system/include/net/if.h +0 -106
  496. data/modules/emscripten/system/include/net/netinet/in.h +0 -230
  497. data/modules/emscripten/system/include/net/netinet/tcp.h +0 -246
  498. data/modules/emscripten/system/include/net/resolv.h +0 -389
  499. data/modules/emscripten/system/include/netdb.h +0 -130
  500. data/modules/emscripten/system/include/nl_types.h +0 -19
  501. data/modules/emscripten/system/include/poll.h +0 -3
  502. data/modules/emscripten/system/include/pty.h +0 -6
  503. data/modules/emscripten/system/include/semaphore.h +0 -31
  504. data/modules/emscripten/system/include/spawn.h +0 -105
  505. data/modules/emscripten/system/include/stdbool.h +0 -16
  506. data/modules/emscripten/system/include/sys/bitypes.h +0 -3
  507. data/modules/emscripten/system/include/sys/io.h +0 -14
  508. data/modules/emscripten/system/include/sys/ioctl.h +0 -78
  509. data/modules/emscripten/system/include/sys/poll.h +0 -31
  510. data/modules/emscripten/system/include/sys/select.h +0 -16
  511. data/modules/emscripten/system/include/sys/sendfile.h +0 -16
  512. data/modules/emscripten/system/include/sys/socket.h +0 -247
  513. data/modules/emscripten/system/include/sys/socketvar.h +0 -3
  514. data/modules/emscripten/system/include/sys/statvfs.h +0 -32
  515. data/modules/emscripten/system/include/sys/uio.h +0 -22
  516. data/modules/emscripten/system/include/sys/un.h +0 -66
  517. data/modules/emscripten/system/include/sysexits.h +0 -108
  518. data/modules/emscripten/system/include/xlocale.h +0 -47
@@ -1,843 +0,0 @@
1
- /* This header file provides the reentrancy. */
2
-
3
- /* WARNING: All identifiers here must begin with an underscore. This file is
4
- included by stdio.h and others and we therefore must only use identifiers
5
- in the namespace allotted to us. */
6
-
7
- #ifndef _SYS_REENT_H_
8
- #ifdef __cplusplus
9
- extern "C" {
10
- #endif
11
- #define _SYS_REENT_H_
12
-
13
- #include <_ansi.h>
14
- #include <sys/_types.h>
15
-
16
- #define _NULL 0
17
-
18
- #ifndef __Long
19
- #if __LONG_MAX__ == 2147483647L
20
- #define __Long long
21
- typedef unsigned __Long __ULong;
22
- #elif __INT_MAX__ == 2147483647
23
- #define __Long int
24
- typedef unsigned __Long __ULong;
25
- #endif
26
- #endif
27
-
28
- #if !defined( __Long)
29
- #include <sys/types.h>
30
- #endif
31
-
32
- #ifndef __Long
33
- #define __Long __int32_t
34
- typedef __uint32_t __ULong;
35
- #endif
36
-
37
- struct _reent;
38
-
39
- /*
40
- * If _REENT_SMALL is defined, we make struct _reent as small as possible,
41
- * by having nearly everything possible allocated at first use.
42
- */
43
-
44
- struct _Bigint
45
- {
46
- struct _Bigint *_next;
47
- int _k, _maxwds, _sign, _wds;
48
- __ULong _x[1];
49
- };
50
-
51
- /* needed by reentrant structure */
52
- struct __tm
53
- {
54
- int __tm_sec;
55
- int __tm_min;
56
- int __tm_hour;
57
- int __tm_mday;
58
- int __tm_mon;
59
- int __tm_year;
60
- int __tm_wday;
61
- int __tm_yday;
62
- int __tm_isdst;
63
- };
64
-
65
- /*
66
- * atexit() support.
67
- */
68
-
69
- #define _ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */
70
-
71
- struct _on_exit_args {
72
- void * _fnargs[_ATEXIT_SIZE]; /* user fn args */
73
- void * _dso_handle[_ATEXIT_SIZE];
74
- /* Bitmask is set if user function takes arguments. */
75
- __ULong _fntypes; /* type of exit routine -
76
- Must have at least _ATEXIT_SIZE bits */
77
- /* Bitmask is set if function was registered via __cxa_atexit. */
78
- __ULong _is_cxa;
79
- };
80
-
81
- #ifdef _REENT_SMALL
82
- struct _atexit {
83
- struct _atexit *_next; /* next in list */
84
- int _ind; /* next index in this table */
85
- void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */
86
- struct _on_exit_args * _on_exit_args_ptr;
87
- };
88
- #else
89
- struct _atexit {
90
- struct _atexit *_next; /* next in list */
91
- int _ind; /* next index in this table */
92
- /* Some entries may already have been called, and will be NULL. */
93
- void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */
94
- struct _on_exit_args _on_exit_args;
95
- };
96
- #endif
97
-
98
- /*
99
- * Stdio buffers.
100
- *
101
- * This and __FILE are defined here because we need them for struct _reent,
102
- * but we don't want stdio.h included when stdlib.h is.
103
- */
104
-
105
- struct __sbuf {
106
- unsigned char *_base;
107
- int _size;
108
- };
109
-
110
- /*
111
- * Stdio state variables.
112
- *
113
- * The following always hold:
114
- *
115
- * if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
116
- * _lbfsize is -_bf._size, else _lbfsize is 0
117
- * if _flags&__SRD, _w is 0
118
- * if _flags&__SWR, _r is 0
119
- *
120
- * This ensures that the getc and putc macros (or inline functions) never
121
- * try to write or read from a file that is in `read' or `write' mode.
122
- * (Moreover, they can, and do, automatically switch from read mode to
123
- * write mode, and back, on "r+" and "w+" files.)
124
- *
125
- * _lbfsize is used only to make the inline line-buffered output stream
126
- * code as compact as possible.
127
- *
128
- * _ub, _up, and _ur are used when ungetc() pushes back more characters
129
- * than fit in the current _bf, or when ungetc() pushes back a character
130
- * that does not match the previous one in _bf. When this happens,
131
- * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
132
- * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
133
- */
134
-
135
- #ifdef _REENT_SMALL
136
- /*
137
- * struct __sFILE_fake is the start of a struct __sFILE, with only the
138
- * minimal fields allocated. In __sinit() we really allocate the 3
139
- * standard streams, etc., and point away from this fake.
140
- */
141
- struct __sFILE_fake {
142
- unsigned char *_p; /* current position in (some) buffer */
143
- int _r; /* read space left for getc() */
144
- int _w; /* write space left for putc() */
145
- short _flags; /* flags, below; this FILE is free if 0 */
146
- short _file; /* fileno, if Unix descriptor, else -1 */
147
- struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
148
- int _lbfsize; /* 0 or -_bf._size, for inline putc */
149
-
150
- struct _reent *_data;
151
- };
152
-
153
- /* Following is needed both in libc/stdio and libc/stdlib so we put it
154
- * here instead of libc/stdio/local.h where it was previously. */
155
-
156
- extern _VOID _EXFUN(__sinit,(struct _reent *));
157
-
158
- # define _REENT_SMALL_CHECK_INIT(ptr) \
159
- do \
160
- { \
161
- if ((ptr) && !(ptr)->__sdidinit) \
162
- __sinit (ptr); \
163
- } \
164
- while (0)
165
- #else
166
- # define _REENT_SMALL_CHECK_INIT(ptr) /* nothing */
167
- #endif
168
-
169
- struct __sFILE {
170
- unsigned char *_p; /* current position in (some) buffer */
171
- int _r; /* read space left for getc() */
172
- int _w; /* write space left for putc() */
173
- short _flags; /* flags, below; this FILE is free if 0 */
174
- short _file; /* fileno, if Unix descriptor, else -1 */
175
- struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
176
- int _lbfsize; /* 0 or -_bf._size, for inline putc */
177
-
178
- #ifdef _REENT_SMALL
179
- struct _reent *_data;
180
- #endif
181
-
182
- /* operations */
183
- _PTR _cookie; /* cookie passed to io functions */
184
-
185
- _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
186
- char *, int));
187
- _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
188
- const char *, int));
189
- _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
190
- int _EXFNPTR(_close, (struct _reent *, _PTR));
191
-
192
- /* separate buffer for long sequences of ungetc() */
193
- struct __sbuf _ub; /* ungetc buffer */
194
- unsigned char *_up; /* saved _p when _p is doing ungetc data */
195
- int _ur; /* saved _r when _r is counting ungetc data */
196
-
197
- /* tricks to meet minimum requirements even when malloc() fails */
198
- unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */
199
- unsigned char _nbuf[1]; /* guarantee a getc() buffer */
200
-
201
- /* separate buffer for fgetline() when line crosses buffer boundary */
202
- struct __sbuf _lb; /* buffer for fgetline() */
203
-
204
- /* Unix stdio files get aligned to block boundaries on fseek() */
205
- int _blksize; /* stat.st_blksize (may be != _bf._size) */
206
- int _offset; /* current lseek offset */
207
-
208
- #ifndef _REENT_SMALL
209
- struct _reent *_data; /* Here for binary compatibility? Remove? */
210
- #endif
211
-
212
- #ifndef __SINGLE_THREAD__
213
- _flock_t _lock; /* for thread-safety locking */
214
- #endif
215
- _mbstate_t _mbstate; /* for wide char stdio functions. */
216
- int _flags2; /* for future use */
217
- };
218
-
219
- #ifdef __CUSTOM_FILE_IO__
220
-
221
- /* Get custom _FILE definition. */
222
- #include <sys/custom_file.h>
223
-
224
- #else /* !__CUSTOM_FILE_IO__ */
225
- #ifdef __LARGE64_FILES
226
- struct __sFILE64 {
227
- unsigned char *_p; /* current position in (some) buffer */
228
- int _r; /* read space left for getc() */
229
- int _w; /* write space left for putc() */
230
- short _flags; /* flags, below; this FILE is free if 0 */
231
- short _file; /* fileno, if Unix descriptor, else -1 */
232
- struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
233
- int _lbfsize; /* 0 or -_bf._size, for inline putc */
234
-
235
- struct _reent *_data;
236
-
237
- /* operations */
238
- _PTR _cookie; /* cookie passed to io functions */
239
-
240
- _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
241
- char *, int));
242
- _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
243
- const char *, int));
244
- _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
245
- int _EXFNPTR(_close, (struct _reent *, _PTR));
246
-
247
- /* separate buffer for long sequences of ungetc() */
248
- struct __sbuf _ub; /* ungetc buffer */
249
- unsigned char *_up; /* saved _p when _p is doing ungetc data */
250
- int _ur; /* saved _r when _r is counting ungetc data */
251
-
252
- /* tricks to meet minimum requirements even when malloc() fails */
253
- unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */
254
- unsigned char _nbuf[1]; /* guarantee a getc() buffer */
255
-
256
- /* separate buffer for fgetline() when line crosses buffer boundary */
257
- struct __sbuf _lb; /* buffer for fgetline() */
258
-
259
- /* Unix stdio files get aligned to block boundaries on fseek() */
260
- int _blksize; /* stat.st_blksize (may be != _bf._size) */
261
- int _flags2; /* for future use */
262
-
263
- _off64_t _offset; /* current lseek offset */
264
- _fpos64_t _EXFNPTR(_seek64, (struct _reent *, _PTR, _fpos64_t, int));
265
-
266
- #ifndef __SINGLE_THREAD__
267
- _flock_t _lock; /* for thread-safety locking */
268
- #endif
269
- _mbstate_t _mbstate; /* for wide char stdio functions. */
270
- };
271
- typedef struct __sFILE64 __FILE;
272
- #else
273
- typedef struct __sFILE __FILE;
274
- #endif /* __LARGE64_FILES */
275
- #endif /* !__CUSTOM_FILE_IO__ */
276
-
277
- struct _glue
278
- {
279
- struct _glue *_next;
280
- int _niobs;
281
- __FILE *_iobs;
282
- };
283
-
284
- /*
285
- * rand48 family support
286
- *
287
- * Copyright (c) 1993 Martin Birgmeier
288
- * All rights reserved.
289
- *
290
- * You may redistribute unmodified or modified versions of this source
291
- * code provided that the above copyright notice and this and the
292
- * following conditions are retained.
293
- *
294
- * This software is provided ``as is'', and comes with no warranties
295
- * of any kind. I shall in no event be liable for anything that happens
296
- * to anyone/anything when using this software.
297
- */
298
- #define _RAND48_SEED_0 (0x330e)
299
- #define _RAND48_SEED_1 (0xabcd)
300
- #define _RAND48_SEED_2 (0x1234)
301
- #define _RAND48_MULT_0 (0xe66d)
302
- #define _RAND48_MULT_1 (0xdeec)
303
- #define _RAND48_MULT_2 (0x0005)
304
- #define _RAND48_ADD (0x000b)
305
- struct _rand48 {
306
- unsigned short _seed[3];
307
- unsigned short _mult[3];
308
- unsigned short _add;
309
- #ifdef _REENT_SMALL
310
- /* Put this in here as well, for good luck. */
311
- __extension__ unsigned long long _rand_next;
312
- #endif
313
- };
314
-
315
- /* How big the some arrays are. */
316
- #define _REENT_EMERGENCY_SIZE 25
317
- #define _REENT_ASCTIME_SIZE 26
318
- #define _REENT_SIGNAL_SIZE 24
319
-
320
- /*
321
- * struct _reent
322
- *
323
- * This structure contains *all* globals needed by the library.
324
- * It's raison d'etre is to facilitate threads by making all library routines
325
- * reentrant. IE: All state information is contained here.
326
- */
327
-
328
- #ifdef _REENT_SMALL
329
-
330
- struct _mprec
331
- {
332
- /* used by mprec routines */
333
- struct _Bigint *_result;
334
- int _result_k;
335
- struct _Bigint *_p5s;
336
- struct _Bigint **_freelist;
337
- };
338
-
339
-
340
- struct _misc_reent
341
- {
342
- /* miscellaneous reentrant data */
343
- char *_strtok_last;
344
- _mbstate_t _mblen_state;
345
- _mbstate_t _wctomb_state;
346
- _mbstate_t _mbtowc_state;
347
- char _l64a_buf[8];
348
- int _getdate_err;
349
- _mbstate_t _mbrlen_state;
350
- _mbstate_t _mbrtowc_state;
351
- _mbstate_t _mbsrtowcs_state;
352
- _mbstate_t _wcrtomb_state;
353
- _mbstate_t _wcsrtombs_state;
354
- };
355
-
356
- /* This version of _reent is layed our with "int"s in pairs, to help
357
- * ports with 16-bit int's but 32-bit pointers, align nicely. */
358
- struct _reent
359
- {
360
- /* As an exception to the above put _errno first for binary
361
- compatibility with non _REENT_SMALL targets. */
362
- int _errno; /* local copy of errno */
363
-
364
- /* FILE is a big struct and may change over time. To try to achieve binary
365
- compatibility with future versions, put stdin,stdout,stderr here.
366
- These are pointers into member __sf defined below. */
367
- __FILE *_stdin, *_stdout, *_stderr; /* XXX */
368
-
369
- int _inc; /* used by tmpnam */
370
-
371
- char *_emergency;
372
-
373
- int __sdidinit; /* 1 means stdio has been init'd */
374
-
375
- int _current_category; /* unused */
376
- _CONST char *_current_locale; /* unused */
377
-
378
- struct _mprec *_mp;
379
-
380
- void _EXFNPTR(__cleanup, (struct _reent *));
381
-
382
- int _gamma_signgam;
383
-
384
- /* used by some fp conversion routines */
385
- int _cvtlen; /* should be size_t */
386
- char *_cvtbuf;
387
-
388
- struct _rand48 *_r48;
389
- struct __tm *_localtime_buf;
390
- char *_asctime_buf;
391
-
392
- /* signal info */
393
- void (**(_sig_func))(int);
394
-
395
- /* atexit stuff */
396
- struct _atexit *_atexit;
397
- struct _atexit _atexit0;
398
-
399
- struct _glue __sglue; /* root of glue chain */
400
- __FILE *__sf; /* file descriptors */
401
- struct _misc_reent *_misc; /* strtok, multibyte states */
402
- char *_signal_buf; /* strsignal */
403
- };
404
-
405
- extern const struct __sFILE_fake __sf_fake_stdin;
406
- extern const struct __sFILE_fake __sf_fake_stdout;
407
- extern const struct __sFILE_fake __sf_fake_stderr;
408
-
409
- # define _REENT_INIT(var) \
410
- { 0, \
411
- (__FILE *)&__sf_fake_stdin, \
412
- (__FILE *)&__sf_fake_stdout, \
413
- (__FILE *)&__sf_fake_stderr, \
414
- 0, \
415
- _NULL, \
416
- 0, \
417
- 0, \
418
- "C", \
419
- _NULL, \
420
- _NULL, \
421
- 0, \
422
- 0, \
423
- _NULL, \
424
- _NULL, \
425
- _NULL, \
426
- _NULL, \
427
- _NULL, \
428
- _NULL, \
429
- {_NULL, 0, {_NULL}, _NULL}, \
430
- {_NULL, 0, _NULL}, \
431
- _NULL, \
432
- _NULL, \
433
- _NULL \
434
- }
435
-
436
- #define _REENT_INIT_PTR(var) \
437
- { (var)->_stdin = (__FILE *)&__sf_fake_stdin; \
438
- (var)->_stdout = (__FILE *)&__sf_fake_stdout; \
439
- (var)->_stderr = (__FILE *)&__sf_fake_stderr; \
440
- (var)->_errno = 0; \
441
- (var)->_inc = 0; \
442
- (var)->_emergency = _NULL; \
443
- (var)->__sdidinit = 0; \
444
- (var)->_current_category = 0; \
445
- (var)->_current_locale = "C"; \
446
- (var)->_mp = _NULL; \
447
- (var)->__cleanup = _NULL; \
448
- (var)->_gamma_signgam = 0; \
449
- (var)->_cvtlen = 0; \
450
- (var)->_cvtbuf = _NULL; \
451
- (var)->_r48 = _NULL; \
452
- (var)->_localtime_buf = _NULL; \
453
- (var)->_asctime_buf = _NULL; \
454
- (var)->_sig_func = _NULL; \
455
- (var)->_atexit = _NULL; \
456
- (var)->_atexit0._next = _NULL; \
457
- (var)->_atexit0._ind = 0; \
458
- (var)->_atexit0._fns[0] = _NULL; \
459
- (var)->_atexit0._on_exit_args_ptr = _NULL; \
460
- (var)->__sglue._next = _NULL; \
461
- (var)->__sglue._niobs = 0; \
462
- (var)->__sglue._iobs = _NULL; \
463
- (var)->__sf = 0; \
464
- (var)->_misc = _NULL; \
465
- (var)->_signal_buf = _NULL; \
466
- }
467
-
468
- /* Only built the assert() calls if we are built with debugging. */
469
- #if DEBUG
470
- #include <assert.h>
471
- #define __reent_assert(x) assert(x)
472
- #else
473
- #define __reent_assert(x) ((void)0)
474
- #endif
475
-
476
- #ifdef __CUSTOM_FILE_IO__
477
- #error Custom FILE I/O and _REENT_SMALL not currently supported.
478
- #endif
479
-
480
- /* Generic _REENT check macro. */
481
- #define _REENT_CHECK(var, what, type, size, init) do { \
482
- struct _reent *_r = (var); \
483
- if (_r->what == NULL) { \
484
- _r->what = (type)malloc(size); \
485
- __reent_assert(_r->what); \
486
- init; \
487
- } \
488
- } while (0)
489
-
490
- #define _REENT_CHECK_TM(var) \
491
- _REENT_CHECK(var, _localtime_buf, struct __tm *, sizeof *((var)->_localtime_buf), \
492
- /* nothing */)
493
-
494
- #define _REENT_CHECK_ASCTIME_BUF(var) \
495
- _REENT_CHECK(var, _asctime_buf, char *, _REENT_ASCTIME_SIZE, \
496
- memset((var)->_asctime_buf, 0, _REENT_ASCTIME_SIZE))
497
-
498
- /* Handle the dynamically allocated rand48 structure. */
499
- #define _REENT_INIT_RAND48(var) do { \
500
- struct _reent *_r = (var); \
501
- _r->_r48->_seed[0] = _RAND48_SEED_0; \
502
- _r->_r48->_seed[1] = _RAND48_SEED_1; \
503
- _r->_r48->_seed[2] = _RAND48_SEED_2; \
504
- _r->_r48->_mult[0] = _RAND48_MULT_0; \
505
- _r->_r48->_mult[1] = _RAND48_MULT_1; \
506
- _r->_r48->_mult[2] = _RAND48_MULT_2; \
507
- _r->_r48->_add = _RAND48_ADD; \
508
- _r->_r48->_rand_next = 1; \
509
- } while (0)
510
- #define _REENT_CHECK_RAND48(var) \
511
- _REENT_CHECK(var, _r48, struct _rand48 *, sizeof *((var)->_r48), _REENT_INIT_RAND48((var)))
512
-
513
- #define _REENT_INIT_MP(var) do { \
514
- struct _reent *_r = (var); \
515
- _r->_mp->_result_k = 0; \
516
- _r->_mp->_result = _r->_mp->_p5s = _NULL; \
517
- _r->_mp->_freelist = _NULL; \
518
- } while (0)
519
- #define _REENT_CHECK_MP(var) \
520
- _REENT_CHECK(var, _mp, struct _mprec *, sizeof *((var)->_mp), _REENT_INIT_MP(var))
521
-
522
- #define _REENT_CHECK_EMERGENCY(var) \
523
- _REENT_CHECK(var, _emergency, char *, _REENT_EMERGENCY_SIZE, /* nothing */)
524
-
525
- #define _REENT_INIT_MISC(var) do { \
526
- struct _reent *_r = (var); \
527
- _r->_misc->_strtok_last = _NULL; \
528
- _r->_misc->_mblen_state.__count = 0; \
529
- _r->_misc->_mblen_state.__value.__wch = 0; \
530
- _r->_misc->_wctomb_state.__count = 0; \
531
- _r->_misc->_wctomb_state.__value.__wch = 0; \
532
- _r->_misc->_mbtowc_state.__count = 0; \
533
- _r->_misc->_mbtowc_state.__value.__wch = 0; \
534
- _r->_misc->_mbrlen_state.__count = 0; \
535
- _r->_misc->_mbrlen_state.__value.__wch = 0; \
536
- _r->_misc->_mbrtowc_state.__count = 0; \
537
- _r->_misc->_mbrtowc_state.__value.__wch = 0; \
538
- _r->_misc->_mbsrtowcs_state.__count = 0; \
539
- _r->_misc->_mbsrtowcs_state.__value.__wch = 0; \
540
- _r->_misc->_wcrtomb_state.__count = 0; \
541
- _r->_misc->_wcrtomb_state.__value.__wch = 0; \
542
- _r->_misc->_wcsrtombs_state.__count = 0; \
543
- _r->_misc->_wcsrtombs_state.__value.__wch = 0; \
544
- _r->_misc->_l64a_buf[0] = '\0'; \
545
- _r->_misc->_getdate_err = 0; \
546
- } while (0)
547
- #define _REENT_CHECK_MISC(var) \
548
- _REENT_CHECK(var, _misc, struct _misc_reent *, sizeof *((var)->_misc), _REENT_INIT_MISC(var))
549
-
550
- #define _REENT_CHECK_SIGNAL_BUF(var) \
551
- _REENT_CHECK(var, _signal_buf, char *, _REENT_SIGNAL_SIZE, /* nothing */)
552
-
553
- #define _REENT_SIGNGAM(ptr) ((ptr)->_gamma_signgam)
554
- #define _REENT_RAND_NEXT(ptr) ((ptr)->_r48->_rand_next)
555
- #define _REENT_RAND48_SEED(ptr) ((ptr)->_r48->_seed)
556
- #define _REENT_RAND48_MULT(ptr) ((ptr)->_r48->_mult)
557
- #define _REENT_RAND48_ADD(ptr) ((ptr)->_r48->_add)
558
- #define _REENT_MP_RESULT(ptr) ((ptr)->_mp->_result)
559
- #define _REENT_MP_RESULT_K(ptr) ((ptr)->_mp->_result_k)
560
- #define _REENT_MP_P5S(ptr) ((ptr)->_mp->_p5s)
561
- #define _REENT_MP_FREELIST(ptr) ((ptr)->_mp->_freelist)
562
- #define _REENT_ASCTIME_BUF(ptr) ((ptr)->_asctime_buf)
563
- #define _REENT_TM(ptr) ((ptr)->_localtime_buf)
564
- #define _REENT_EMERGENCY(ptr) ((ptr)->_emergency)
565
- #define _REENT_STRTOK_LAST(ptr) ((ptr)->_misc->_strtok_last)
566
- #define _REENT_MBLEN_STATE(ptr) ((ptr)->_misc->_mblen_state)
567
- #define _REENT_MBTOWC_STATE(ptr)((ptr)->_misc->_mbtowc_state)
568
- #define _REENT_WCTOMB_STATE(ptr)((ptr)->_misc->_wctomb_state)
569
- #define _REENT_MBRLEN_STATE(ptr) ((ptr)->_misc->_mbrlen_state)
570
- #define _REENT_MBRTOWC_STATE(ptr) ((ptr)->_misc->_mbrtowc_state)
571
- #define _REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_misc->_mbsrtowcs_state)
572
- #define _REENT_WCRTOMB_STATE(ptr) ((ptr)->_misc->_wcrtomb_state)
573
- #define _REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_misc->_wcsrtombs_state)
574
- #define _REENT_L64A_BUF(ptr) ((ptr)->_misc->_l64a_buf)
575
- #define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_misc->_getdate_err))
576
- #define _REENT_SIGNAL_BUF(ptr) ((ptr)->_signal_buf)
577
-
578
- #else /* !_REENT_SMALL */
579
-
580
- struct _reent
581
- {
582
- int _errno; /* local copy of errno */
583
-
584
- /* FILE is a big struct and may change over time. To try to achieve binary
585
- compatibility with future versions, put stdin,stdout,stderr here.
586
- These are pointers into member __sf defined below. */
587
- __FILE *_stdin, *_stdout, *_stderr;
588
-
589
- int _inc; /* used by tmpnam */
590
- char _emergency[_REENT_EMERGENCY_SIZE];
591
-
592
- int _current_category; /* used by setlocale */
593
- _CONST char *_current_locale;
594
-
595
- int __sdidinit; /* 1 means stdio has been init'd */
596
-
597
- void _EXFNPTR(__cleanup, (struct _reent *));
598
-
599
- /* used by mprec routines */
600
- struct _Bigint *_result;
601
- int _result_k;
602
- struct _Bigint *_p5s;
603
- struct _Bigint **_freelist;
604
-
605
- /* used by some fp conversion routines */
606
- int _cvtlen; /* should be size_t */
607
- char *_cvtbuf;
608
-
609
- union
610
- {
611
- struct
612
- {
613
- unsigned int _unused_rand;
614
- char * _strtok_last;
615
- char _asctime_buf[_REENT_ASCTIME_SIZE];
616
- struct __tm _localtime_buf;
617
- int _gamma_signgam;
618
- __extension__ unsigned long long _rand_next;
619
- struct _rand48 _r48;
620
- _mbstate_t _mblen_state;
621
- _mbstate_t _mbtowc_state;
622
- _mbstate_t _wctomb_state;
623
- char _l64a_buf[8];
624
- char _signal_buf[_REENT_SIGNAL_SIZE];
625
- int _getdate_err;
626
- _mbstate_t _mbrlen_state;
627
- _mbstate_t _mbrtowc_state;
628
- _mbstate_t _mbsrtowcs_state;
629
- _mbstate_t _wcrtomb_state;
630
- _mbstate_t _wcsrtombs_state;
631
- int _h_errno;
632
- } _reent;
633
- /* Two next two fields were once used by malloc. They are no longer
634
- used. They are used to preserve the space used before so as to
635
- allow addition of new reent fields and keep binary compatibility. */
636
- struct
637
- {
638
- #define _N_LISTS 30
639
- unsigned char * _nextf[_N_LISTS];
640
- unsigned int _nmalloc[_N_LISTS];
641
- } _unused;
642
- } _new;
643
-
644
- /* atexit stuff */
645
- struct _atexit *_atexit; /* points to head of LIFO stack */
646
- struct _atexit _atexit0; /* one guaranteed table, required by ANSI */
647
-
648
- /* signal info */
649
- void (**(_sig_func))(int);
650
-
651
- /* These are here last so that __FILE can grow without changing the offsets
652
- of the above members (on the off chance that future binary compatibility
653
- would be broken otherwise). */
654
- struct _glue __sglue; /* root of glue chain */
655
- __FILE __sf[3]; /* first three file descriptors */
656
- };
657
-
658
- #define _REENT_INIT(var) \
659
- { 0, \
660
- &(var).__sf[0], \
661
- &(var).__sf[1], \
662
- &(var).__sf[2], \
663
- 0, \
664
- "", \
665
- 0, \
666
- "C", \
667
- 0, \
668
- _NULL, \
669
- _NULL, \
670
- 0, \
671
- _NULL, \
672
- _NULL, \
673
- 0, \
674
- _NULL, \
675
- { \
676
- { \
677
- 0, \
678
- _NULL, \
679
- "", \
680
- {0, 0, 0, 0, 0, 0, 0, 0, 0}, \
681
- 0, \
682
- 1, \
683
- { \
684
- {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, \
685
- {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, \
686
- _RAND48_ADD \
687
- }, \
688
- {0, {0}}, \
689
- {0, {0}}, \
690
- {0, {0}}, \
691
- "", \
692
- "", \
693
- 0, \
694
- {0, {0}}, \
695
- {0, {0}}, \
696
- {0, {0}}, \
697
- {0, {0}}, \
698
- {0, {0}} \
699
- } \
700
- }, \
701
- _NULL, \
702
- {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}}, \
703
- _NULL, \
704
- {_NULL, 0, _NULL} \
705
- }
706
-
707
- #define _REENT_INIT_PTR(var) \
708
- { (var)->_errno = 0; \
709
- (var)->_stdin = &(var)->__sf[0]; \
710
- (var)->_stdout = &(var)->__sf[1]; \
711
- (var)->_stderr = &(var)->__sf[2]; \
712
- (var)->_inc = 0; \
713
- memset(&(var)->_emergency, 0, sizeof((var)->_emergency)); \
714
- (var)->_current_category = 0; \
715
- (var)->_current_locale = "C"; \
716
- (var)->__sdidinit = 0; \
717
- (var)->__cleanup = _NULL; \
718
- (var)->_result = _NULL; \
719
- (var)->_result_k = 0; \
720
- (var)->_p5s = _NULL; \
721
- (var)->_freelist = _NULL; \
722
- (var)->_cvtlen = 0; \
723
- (var)->_cvtbuf = _NULL; \
724
- (var)->_new._reent._unused_rand = 0; \
725
- (var)->_new._reent._strtok_last = _NULL; \
726
- (var)->_new._reent._asctime_buf[0] = 0; \
727
- memset(&(var)->_new._reent._localtime_buf, 0, sizeof((var)->_new._reent._localtime_buf)); \
728
- (var)->_new._reent._gamma_signgam = 0; \
729
- (var)->_new._reent._rand_next = 1; \
730
- (var)->_new._reent._r48._seed[0] = _RAND48_SEED_0; \
731
- (var)->_new._reent._r48._seed[1] = _RAND48_SEED_1; \
732
- (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; \
733
- (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; \
734
- (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; \
735
- (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; \
736
- (var)->_new._reent._r48._add = _RAND48_ADD; \
737
- (var)->_new._reent._mblen_state.__count = 0; \
738
- (var)->_new._reent._mblen_state.__value.__wch = 0; \
739
- (var)->_new._reent._mbtowc_state.__count = 0; \
740
- (var)->_new._reent._mbtowc_state.__value.__wch = 0; \
741
- (var)->_new._reent._wctomb_state.__count = 0; \
742
- (var)->_new._reent._wctomb_state.__value.__wch = 0; \
743
- (var)->_new._reent._mbrlen_state.__count = 0; \
744
- (var)->_new._reent._mbrlen_state.__value.__wch = 0; \
745
- (var)->_new._reent._mbrtowc_state.__count = 0; \
746
- (var)->_new._reent._mbrtowc_state.__value.__wch = 0; \
747
- (var)->_new._reent._mbsrtowcs_state.__count = 0; \
748
- (var)->_new._reent._mbsrtowcs_state.__value.__wch = 0; \
749
- (var)->_new._reent._wcrtomb_state.__count = 0; \
750
- (var)->_new._reent._wcrtomb_state.__value.__wch = 0; \
751
- (var)->_new._reent._wcsrtombs_state.__count = 0; \
752
- (var)->_new._reent._wcsrtombs_state.__value.__wch = 0; \
753
- (var)->_new._reent._l64a_buf[0] = '\0'; \
754
- (var)->_new._reent._signal_buf[0] = '\0'; \
755
- (var)->_new._reent._getdate_err = 0; \
756
- (var)->_atexit = _NULL; \
757
- (var)->_atexit0._next = _NULL; \
758
- (var)->_atexit0._ind = 0; \
759
- (var)->_atexit0._fns[0] = _NULL; \
760
- (var)->_atexit0._on_exit_args._fntypes = 0; \
761
- (var)->_atexit0._on_exit_args._fnargs[0] = _NULL; \
762
- (var)->_sig_func = _NULL; \
763
- (var)->__sglue._next = _NULL; \
764
- (var)->__sglue._niobs = 0; \
765
- (var)->__sglue._iobs = _NULL; \
766
- memset(&(var)->__sf, 0, sizeof((var)->__sf)); \
767
- }
768
-
769
- #define _REENT_CHECK_RAND48(ptr) /* nothing */
770
- #define _REENT_CHECK_MP(ptr) /* nothing */
771
- #define _REENT_CHECK_TM(ptr) /* nothing */
772
- #define _REENT_CHECK_ASCTIME_BUF(ptr) /* nothing */
773
- #define _REENT_CHECK_EMERGENCY(ptr) /* nothing */
774
- #define _REENT_CHECK_MISC(ptr) /* nothing */
775
- #define _REENT_CHECK_SIGNAL_BUF(ptr) /* nothing */
776
-
777
- #define _REENT_SIGNGAM(ptr) ((ptr)->_new._reent._gamma_signgam)
778
- #define _REENT_RAND_NEXT(ptr) ((ptr)->_new._reent._rand_next)
779
- #define _REENT_RAND48_SEED(ptr) ((ptr)->_new._reent._r48._seed)
780
- #define _REENT_RAND48_MULT(ptr) ((ptr)->_new._reent._r48._mult)
781
- #define _REENT_RAND48_ADD(ptr) ((ptr)->_new._reent._r48._add)
782
- #define _REENT_MP_RESULT(ptr) ((ptr)->_result)
783
- #define _REENT_MP_RESULT_K(ptr) ((ptr)->_result_k)
784
- #define _REENT_MP_P5S(ptr) ((ptr)->_p5s)
785
- #define _REENT_MP_FREELIST(ptr) ((ptr)->_freelist)
786
- #define _REENT_ASCTIME_BUF(ptr) ((ptr)->_new._reent._asctime_buf)
787
- #define _REENT_TM(ptr) (&(ptr)->_new._reent._localtime_buf)
788
- #define _REENT_EMERGENCY(ptr) ((ptr)->_emergency)
789
- #define _REENT_STRTOK_LAST(ptr) ((ptr)->_new._reent._strtok_last)
790
- #define _REENT_MBLEN_STATE(ptr) ((ptr)->_new._reent._mblen_state)
791
- #define _REENT_MBTOWC_STATE(ptr)((ptr)->_new._reent._mbtowc_state)
792
- #define _REENT_WCTOMB_STATE(ptr)((ptr)->_new._reent._wctomb_state)
793
- #define _REENT_MBRLEN_STATE(ptr)((ptr)->_new._reent._mbrlen_state)
794
- #define _REENT_MBRTOWC_STATE(ptr)((ptr)->_new._reent._mbrtowc_state)
795
- #define _REENT_MBSRTOWCS_STATE(ptr)((ptr)->_new._reent._mbsrtowcs_state)
796
- #define _REENT_WCRTOMB_STATE(ptr)((ptr)->_new._reent._wcrtomb_state)
797
- #define _REENT_WCSRTOMBS_STATE(ptr)((ptr)->_new._reent._wcsrtombs_state)
798
- #define _REENT_L64A_BUF(ptr) ((ptr)->_new._reent._l64a_buf)
799
- #define _REENT_SIGNAL_BUF(ptr) ((ptr)->_new._reent._signal_buf)
800
- #define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err))
801
-
802
- #endif /* !_REENT_SMALL */
803
-
804
- /* This value is used in stdlib/misc.c. reent/reent.c has to know it
805
- as well to make sure the freelist is correctly free'd. Therefore
806
- we define it here, rather than in stdlib/misc.c, as before. */
807
- #define _Kmax (sizeof (size_t) << 3)
808
-
809
- /*
810
- * All references to struct _reent are via this pointer.
811
- * Internally, newlib routines that need to reference it should use _REENT.
812
- */
813
-
814
- #ifndef __ATTRIBUTE_IMPURE_PTR__
815
- #define __ATTRIBUTE_IMPURE_PTR__
816
- #endif
817
-
818
- extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__;
819
- extern struct _reent *_CONST _global_impure_ptr __ATTRIBUTE_IMPURE_PTR__;
820
-
821
- void _reclaim_reent _PARAMS ((struct _reent *));
822
-
823
- /* #define _REENT_ONLY define this to get only reentrant routines */
824
-
825
- #ifndef _REENT_ONLY
826
-
827
- #if defined(__DYNAMIC_REENT__) && !defined(__SINGLE_THREAD__)
828
- #ifndef __getreent
829
- struct _reent * _EXFUN(__getreent, (void));
830
- #endif
831
- # define _REENT (__getreent())
832
- #else /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */
833
- # define _REENT _impure_ptr
834
- #endif /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */
835
-
836
- #endif /* !_REENT_ONLY */
837
-
838
- #define _GLOBAL_REENT _global_impure_ptr
839
-
840
- #ifdef __cplusplus
841
- }
842
- #endif
843
- #endif /* _SYS_REENT_H_ */