webruby 0.1.2 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/driver/driver.c +12 -0
- data/lib/webruby/config.rb +3 -3
- data/lib/webruby/environment.rb +1 -0
- data/lib/webruby/rake/files.rake +22 -22
- data/lib/webruby/rake/general.rake +0 -1
- data/lib/webruby/utility.rb +2 -0
- data/modules/emscripten/AUTHORS +12 -1
- data/modules/emscripten/cmake/Platform/Emscripten.cmake +152 -15
- data/modules/emscripten/em++ +2 -0
- data/modules/emscripten/em++.bat +1 -1
- data/modules/emscripten/em-config.bat +1 -1
- data/modules/emscripten/emar.bat +1 -1
- data/modules/emscripten/emcc +233 -95
- data/modules/emscripten/emcc.bat +1 -1
- data/modules/emscripten/emconfigure.bat +1 -1
- data/modules/emscripten/emmake.bat +1 -1
- data/modules/emscripten/emranlib.bat +1 -1
- data/modules/emscripten/emscripten.py +221 -217
- data/modules/emscripten/package.json +7 -0
- data/modules/emscripten/src/analyzer.js +1437 -1385
- data/modules/emscripten/src/compiler.js +30 -6
- data/modules/emscripten/src/compiler_phase.html +33 -0
- data/modules/emscripten/src/fastLong.js +6 -6
- data/modules/emscripten/src/headless.js +47 -656
- data/modules/emscripten/src/headlessCanvas.js +618 -0
- data/modules/emscripten/src/intertyper.js +1038 -899
- data/modules/emscripten/src/jsifier.js +818 -714
- data/modules/emscripten/src/library.js +1794 -2968
- data/modules/emscripten/src/library_browser.js +81 -16
- data/modules/emscripten/src/library_egl.js +9 -3
- data/modules/emscripten/src/library_fs.js +1585 -0
- data/modules/emscripten/src/library_gl.js +445 -202
- data/modules/emscripten/src/library_glfw.js +4 -1
- data/modules/emscripten/src/library_glut.js +61 -13
- data/modules/emscripten/src/library_idbfs.js +216 -0
- data/modules/emscripten/src/library_memfs.js +279 -0
- data/modules/emscripten/src/library_nodefs.js +234 -0
- data/modules/emscripten/src/library_openal.js +131 -150
- data/modules/emscripten/src/library_path.js +3 -0
- data/modules/emscripten/src/library_sdl.js +499 -229
- data/modules/emscripten/src/library_sockfs.js +576 -0
- data/modules/emscripten/src/library_tty.js +146 -0
- data/modules/emscripten/src/modules.js +30 -35
- data/modules/emscripten/src/parseTools.js +356 -161
- data/modules/emscripten/src/postamble.js +76 -31
- data/modules/emscripten/src/preamble.js +271 -41
- data/modules/emscripten/src/proxyClient.js +82 -0
- data/modules/emscripten/src/proxyWorker.js +143 -0
- data/modules/emscripten/src/relooper/Relooper.cpp +60 -24
- data/modules/emscripten/src/relooper/Relooper.h +3 -2
- data/modules/emscripten/src/relooper/emscripten/glue.js +20 -10
- data/modules/emscripten/src/relooper/fuzzer.py +19 -10
- data/modules/emscripten/src/relooper/test.cpp +50 -50
- data/modules/emscripten/src/relooper/test.txt +147 -30
- data/modules/emscripten/src/relooper/test2.c +13 -13
- data/modules/emscripten/src/relooper/test2.txt +17 -3
- data/modules/emscripten/src/relooper/test3.c +7 -7
- data/modules/emscripten/src/relooper/test3.txt +36 -7
- data/modules/emscripten/src/relooper/test4.cpp +7 -7
- data/modules/emscripten/src/relooper/test4.txt +28 -7
- data/modules/emscripten/src/relooper/test5.cpp +6 -6
- data/modules/emscripten/src/relooper/test5.txt +34 -10
- data/modules/emscripten/src/relooper/test6.cpp +4 -4
- data/modules/emscripten/src/relooper/test6.txt +17 -3
- data/modules/emscripten/src/relooper/test_dead.cpp +2 -2
- data/modules/emscripten/src/relooper/test_debug.cpp +4 -4
- data/modules/emscripten/src/relooper/test_debug.txt +17 -3
- data/modules/emscripten/src/relooper/test_fuzz1.cpp +9 -9
- data/modules/emscripten/src/relooper/test_fuzz1.txt +45 -5
- data/modules/emscripten/src/relooper/test_fuzz2.cpp +4 -4
- data/modules/emscripten/src/relooper/test_fuzz2.txt +18 -1
- data/modules/emscripten/src/relooper/test_fuzz3.cpp +5 -5
- data/modules/emscripten/src/relooper/test_fuzz3.txt +16 -0
- data/modules/emscripten/src/relooper/test_fuzz4.cpp +5 -5
- data/modules/emscripten/src/relooper/test_fuzz4.txt +25 -3
- data/modules/emscripten/src/relooper/test_fuzz5.cpp +10 -10
- data/modules/emscripten/src/relooper/test_fuzz5.txt +49 -15
- data/modules/emscripten/src/relooper/test_fuzz6.cpp +92 -92
- data/modules/emscripten/src/relooper/test_fuzz6.txt +201 -18
- data/modules/emscripten/src/relooper/test_inf.cpp +184 -184
- data/modules/emscripten/src/relooper/test_inf.txt +1078 -332
- data/modules/emscripten/src/runtime.js +69 -45
- data/modules/emscripten/src/settings.js +48 -919
- data/modules/emscripten/src/shell.html +1 -1
- data/modules/emscripten/src/shell.js +14 -8
- data/modules/emscripten/src/shell_sharedlib.js +18 -1
- data/modules/emscripten/src/simd.js +958 -0
- data/modules/emscripten/src/struct_info.json +1045 -0
- data/modules/emscripten/src/utility.js +11 -0
- data/modules/emscripten/system/bin/sdl-config +13 -0
- data/modules/emscripten/system/include/compat/ctype.h +17 -0
- data/modules/emscripten/system/include/compat/malloc.h +48 -0
- data/modules/emscripten/system/include/compat/math.h +14 -0
- data/modules/emscripten/system/include/compat/netdb.h +22 -0
- data/modules/emscripten/system/include/compat/stdarg.h +16 -0
- data/modules/emscripten/system/include/compat/stdlib.h +16 -0
- data/modules/emscripten/system/include/compat/string.h +17 -0
- data/modules/emscripten/system/include/compat/sys/socketvar.h +14 -0
- data/modules/emscripten/system/include/compat/sys/stat.h +20 -0
- data/modules/emscripten/system/include/{libc → compat}/sys/timeb.h +3 -7
- data/modules/emscripten/system/include/compat/time.h +18 -0
- data/modules/emscripten/system/include/compat/unistd.h +16 -0
- data/modules/emscripten/system/include/compat/xlocale.h +19 -0
- data/modules/emscripten/system/include/emscripten/emscripten.h +48 -7
- data/modules/emscripten/system/include/emscripten/vector.h +6 -0
- data/modules/emscripten/system/include/libc/aio.h +69 -0
- data/modules/emscripten/system/include/libc/alloca.h +13 -13
- data/modules/emscripten/system/include/libc/ar.h +19 -63
- data/modules/emscripten/system/include/libc/arpa/ftp.h +35 -0
- data/modules/emscripten/system/include/libc/arpa/inet.h +36 -0
- data/modules/emscripten/system/include/libc/arpa/nameser.h +467 -0
- data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +2 -0
- data/modules/emscripten/system/include/libc/arpa/telnet.h +251 -0
- data/modules/emscripten/system/include/libc/arpa/tftp.h +31 -0
- data/modules/emscripten/system/include/libc/assert.h +9 -36
- data/modules/emscripten/system/include/libc/bits/alltypes.h +397 -0
- data/modules/emscripten/system/include/libc/bits/endian.h +1 -0
- data/modules/emscripten/system/include/libc/bits/errno.h +134 -0
- data/modules/emscripten/system/include/libc/bits/fcntl.h +38 -0
- data/modules/emscripten/system/include/libc/bits/fenv.h +34 -0
- data/modules/emscripten/system/include/libc/bits/float.h +17 -0
- data/modules/emscripten/system/include/libc/bits/io.h +0 -0
- data/modules/emscripten/system/include/libc/bits/ioctl.h +197 -0
- data/modules/emscripten/system/include/libc/bits/ipc.h +14 -0
- data/modules/emscripten/system/include/libc/bits/limits.h +8 -0
- data/modules/emscripten/system/include/libc/bits/mman.h +62 -0
- data/modules/emscripten/system/include/libc/bits/msg.h +16 -0
- data/modules/emscripten/system/include/libc/bits/posix.h +2 -0
- data/modules/emscripten/system/include/libc/bits/reg.h +19 -0
- data/modules/emscripten/system/include/libc/bits/setjmp.h +1 -0
- data/modules/emscripten/system/include/libc/bits/shm.h +18 -0
- data/modules/emscripten/system/include/libc/bits/signal.h +112 -0
- data/modules/emscripten/system/include/libc/bits/socket.h +17 -0
- data/modules/emscripten/system/include/libc/bits/stat.h +22 -0
- data/modules/emscripten/system/include/libc/bits/statfs.h +7 -0
- data/modules/emscripten/system/include/libc/bits/stdarg.h +4 -0
- data/modules/emscripten/system/include/libc/bits/stdint.h +20 -0
- data/modules/emscripten/system/include/libc/bits/syscall.h +696 -0
- data/modules/emscripten/system/include/libc/bits/termios.h +160 -0
- data/modules/emscripten/system/include/libc/bits/user.h +48 -0
- data/modules/emscripten/system/include/libc/byteswap.h +26 -0
- data/modules/emscripten/system/include/libc/complex.h +55 -54
- data/modules/emscripten/system/include/libc/cpio.h +29 -0
- data/modules/emscripten/system/include/libc/crypt.h +20 -0
- data/modules/emscripten/system/include/libc/ctype.h +58 -187
- data/modules/emscripten/system/include/libc/dirent.h +69 -6
- data/modules/emscripten/system/include/libc/dlfcn.h +42 -0
- data/modules/emscripten/system/include/libc/elf.h +2555 -0
- data/modules/emscripten/system/include/libc/endian.h +80 -1
- data/modules/emscripten/system/include/libc/err.h +25 -0
- data/modules/emscripten/system/include/libc/errno.h +23 -7
- data/modules/emscripten/system/include/libc/fcntl.h +175 -1
- data/modules/emscripten/system/include/libc/features.h +32 -0
- data/modules/emscripten/system/include/libc/fenv.h +28 -0
- data/modules/emscripten/system/include/libc/float.h +34 -0
- data/modules/emscripten/system/include/libc/fnmatch.h +24 -50
- data/modules/emscripten/system/include/libc/ftw.h +42 -0
- data/modules/emscripten/system/include/libc/getopt.h +22 -187
- data/modules/emscripten/system/include/libc/glob.h +42 -83
- data/modules/emscripten/system/include/libc/grp.h +37 -79
- data/modules/emscripten/system/include/libc/iconv.h +18 -56
- data/modules/emscripten/system/include/libc/ifaddrs.h +24 -53
- data/modules/emscripten/system/include/libc/inttypes.h +208 -271
- data/modules/emscripten/system/include/libc/iso646.h +5 -28
- data/modules/emscripten/system/include/libc/langinfo.h +88 -316
- data/modules/emscripten/system/include/libc/lastlog.h +1 -0
- data/modules/emscripten/system/include/libc/libgen.h +5 -13
- data/modules/emscripten/system/include/libc/libintl.h +25 -0
- data/modules/emscripten/system/include/libc/limits.h +140 -149
- data/modules/emscripten/system/include/libc/link.h +54 -0
- data/modules/emscripten/system/include/libc/locale.h +72 -70
- data/modules/emscripten/system/include/libc/malloc.h +0 -169
- data/modules/emscripten/system/include/libc/math.h +393 -573
- data/modules/emscripten/system/include/libc/memory.h +1 -0
- data/modules/emscripten/system/include/libc/mntent.h +44 -0
- data/modules/emscripten/system/include/libc/monetary.h +23 -0
- data/modules/emscripten/system/include/libc/mqueue.h +36 -0
- data/modules/emscripten/system/include/libc/net/ethernet.h +55 -0
- data/modules/emscripten/system/include/libc/net/if.h +135 -0
- data/modules/emscripten/system/include/libc/net/if_arp.h +133 -0
- data/modules/emscripten/system/include/libc/net/route.h +124 -0
- data/modules/emscripten/system/include/libc/netdb.h +161 -0
- data/modules/emscripten/system/include/libc/netinet/ether.h +14 -0
- data/modules/emscripten/system/include/libc/netinet/icmp6.h +305 -0
- data/modules/emscripten/system/include/libc/netinet/if_ether.h +126 -0
- data/modules/emscripten/system/include/libc/netinet/in.h +336 -0
- data/modules/emscripten/system/include/libc/netinet/in_systm.h +9 -0
- data/modules/emscripten/system/include/libc/netinet/ip.h +186 -0
- data/modules/emscripten/system/include/libc/netinet/ip6.h +142 -0
- data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +192 -0
- data/modules/emscripten/system/include/libc/netinet/tcp.h +71 -0
- data/modules/emscripten/system/include/libc/netinet/udp.h +35 -0
- data/modules/emscripten/system/include/libc/netpacket/packet.h +44 -0
- data/modules/emscripten/system/include/libc/nl_types.h +22 -0
- data/modules/emscripten/system/include/libc/paths.h +30 -5
- data/modules/emscripten/system/include/libc/poll.h +46 -0
- data/modules/emscripten/system/include/libc/pthread.h +191 -331
- data/modules/emscripten/system/include/libc/pty.h +18 -0
- data/modules/emscripten/system/include/libc/pwd.h +33 -62
- data/modules/emscripten/system/include/libc/readme.txt +2 -2
- data/modules/emscripten/system/include/libc/regex.h +53 -93
- data/modules/emscripten/system/include/libc/resolv.h +144 -0
- data/modules/emscripten/system/include/libc/sched.h +124 -89
- data/modules/emscripten/system/include/libc/search.h +40 -48
- data/modules/emscripten/system/include/libc/semaphore.h +35 -0
- data/modules/emscripten/system/include/libc/setjmp.h +35 -13
- data/modules/emscripten/system/include/libc/shadow.h +44 -0
- data/modules/emscripten/system/include/libc/signal.h +245 -20
- data/modules/emscripten/system/include/libc/spawn.h +74 -0
- data/modules/emscripten/system/include/libc/stdalign.h +15 -0
- data/modules/emscripten/system/include/libc/stdarg.h +18 -43
- data/modules/emscripten/system/include/libc/stdbool.h +14 -0
- data/modules/emscripten/system/include/libc/stddef.h +12 -58
- data/modules/emscripten/system/include/libc/stdint.h +82 -458
- data/modules/emscripten/system/include/libc/stdio.h +184 -679
- data/modules/emscripten/system/include/libc/stdio_ext.h +34 -0
- data/modules/emscripten/system/include/libc/stdlib.h +146 -205
- data/modules/emscripten/system/include/libc/stdnoreturn.h +5 -0
- data/modules/emscripten/system/include/libc/string.h +86 -89
- data/modules/emscripten/system/include/libc/strings.h +27 -27
- data/modules/emscripten/system/include/libc/stropts.h +139 -0
- data/modules/emscripten/system/include/libc/sys/acct.h +75 -0
- data/modules/emscripten/system/include/libc/sys/cachectl.h +22 -0
- data/modules/emscripten/system/include/libc/sys/dir.h +0 -8
- data/modules/emscripten/system/include/libc/sys/epoll.h +67 -0
- data/modules/emscripten/system/include/libc/sys/errno.h +2 -190
- data/modules/emscripten/system/include/libc/sys/eventfd.h +26 -0
- data/modules/emscripten/system/include/libc/sys/fcntl.h +2 -4
- data/modules/emscripten/system/include/libc/sys/file.h +20 -1
- data/modules/emscripten/system/include/libc/sys/fsuid.h +20 -0
- data/modules/emscripten/system/include/libc/sys/inotify.h +57 -0
- data/modules/emscripten/system/include/libc/sys/io.h +17 -0
- data/modules/emscripten/system/include/libc/sys/ioctl.h +14 -0
- data/modules/emscripten/system/include/libc/sys/ipc.h +42 -0
- data/modules/emscripten/system/include/{sys/sysctl.h → libc/sys/klog.h} +4 -4
- data/modules/emscripten/system/include/libc/sys/mman.h +55 -0
- data/modules/emscripten/system/include/libc/sys/mount.h +72 -0
- data/modules/emscripten/system/include/libc/sys/msg.h +52 -0
- data/modules/emscripten/system/include/libc/sys/mtio.h +188 -0
- data/modules/emscripten/system/include/libc/sys/param.h +29 -19
- data/modules/emscripten/system/include/libc/sys/personality.h +46 -0
- data/modules/emscripten/system/include/libc/sys/poll.h +2 -0
- data/modules/emscripten/system/include/libc/sys/prctl.h +101 -0
- data/modules/emscripten/system/include/libc/sys/procfs.h +65 -0
- data/modules/emscripten/system/include/libc/sys/ptrace.h +96 -0
- data/modules/emscripten/system/include/libc/sys/reboot.h +20 -0
- data/modules/emscripten/system/include/libc/sys/reg.h +9 -0
- data/modules/emscripten/system/include/libc/sys/resource.h +89 -45
- data/modules/emscripten/system/include/libc/sys/select.h +42 -0
- data/modules/emscripten/system/include/libc/sys/sem.h +82 -0
- data/modules/emscripten/system/include/libc/sys/sendfile.h +22 -0
- data/modules/emscripten/system/include/libc/sys/shm.h +61 -0
- data/modules/emscripten/system/include/libc/sys/signal.h +1 -315
- data/modules/emscripten/system/include/libc/sys/signalfd.h +44 -0
- data/modules/emscripten/system/include/libc/sys/socket.h +299 -0
- data/modules/emscripten/system/include/libc/sys/stat.h +95 -204
- data/modules/emscripten/system/include/libc/sys/statfs.h +32 -0
- data/modules/emscripten/system/include/libc/sys/statvfs.h +57 -0
- data/modules/emscripten/system/include/libc/sys/stropts.h +1 -0
- data/modules/emscripten/system/include/libc/sys/swap.h +21 -0
- data/modules/emscripten/system/include/libc/sys/syscall.h +6 -0
- data/modules/emscripten/system/include/libc/sys/sysctl.h +17 -0
- data/modules/emscripten/system/include/libc/sys/sysinfo.h +36 -0
- data/modules/emscripten/system/include/libc/sys/syslog.h +1 -0
- data/modules/emscripten/system/include/libc/sys/sysmacros.h +15 -0
- data/modules/emscripten/system/include/libc/sys/termios.h +2 -280
- data/modules/emscripten/system/include/libc/sys/time.h +40 -68
- data/modules/emscripten/system/include/libc/sys/timerfd.h +24 -0
- data/modules/emscripten/system/include/libc/sys/times.h +14 -16
- data/modules/emscripten/system/include/libc/sys/timex.h +98 -0
- data/modules/emscripten/system/include/libc/sys/ttydefaults.h +34 -92
- data/modules/emscripten/system/include/libc/sys/types.h +87 -481
- data/modules/emscripten/system/include/libc/sys/ucontext.h +1 -0
- data/modules/emscripten/system/include/libc/sys/uio.h +48 -0
- data/modules/emscripten/system/include/libc/sys/un.h +32 -0
- data/modules/emscripten/system/include/libc/sys/user.h +16 -0
- data/modules/emscripten/system/include/libc/sys/utsname.h +30 -0
- data/modules/emscripten/system/include/libc/sys/vfs.h +1 -0
- data/modules/emscripten/system/include/libc/sys/wait.h +41 -26
- data/modules/emscripten/system/include/libc/sys/xattr.h +30 -0
- data/modules/emscripten/system/include/libc/syscall.h +1 -0
- data/modules/emscripten/system/include/libc/sysexits.h +21 -0
- data/modules/emscripten/system/include/libc/syslog.h +104 -0
- data/modules/emscripten/system/include/libc/tar.h +27 -33
- data/modules/emscripten/system/include/libc/termios.h +40 -1
- data/modules/emscripten/system/include/libc/tgmath.h +270 -0
- data/modules/emscripten/system/include/libc/time.h +96 -237
- data/modules/emscripten/system/include/libc/ucontext.h +25 -0
- data/modules/emscripten/system/include/libc/ulimit.h +17 -0
- data/modules/emscripten/system/include/libc/unistd.h +517 -4
- data/modules/emscripten/system/include/libc/utime.h +15 -3
- data/modules/emscripten/system/include/libc/utmp.h +40 -1
- data/modules/emscripten/system/include/libc/utmpx.h +58 -0
- data/modules/emscripten/system/include/libc/values.h +39 -0
- data/modules/emscripten/system/include/libc/wchar.h +164 -175
- data/modules/emscripten/system/include/libc/wctype.h +67 -37
- data/modules/emscripten/system/include/libc/wordexp.h +31 -42
- data/modules/emscripten/system/include/libcxx/__locale +6 -6
- data/modules/emscripten/system/include/libcxx/locale +1 -1
- data/modules/emscripten/system/lib/libc/musl/readme.txt +9 -1
- data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +5 -0
- data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +92 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +1085 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +238 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +1836 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +390 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +454 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +9 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +550 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +640 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +39 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +101 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +18 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +9 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +9 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +16 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +21 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +6 -0
- data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +9 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +13 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +14 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +361 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +53 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +7 -0
- data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +13 -0
- data/modules/emscripten/system/lib/libcextra.symbols +44 -0
- data/modules/emscripten/system/lib/libcxx/exception.cpp +3 -3
- data/modules/emscripten/system/lib/libcxx/locale.cpp +12 -12
- data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +1 -1
- data/modules/emscripten/tools/asm_module.py +2 -0
- data/modules/emscripten/tools/autodebugger.py +3 -1
- data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -4835
- data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -6495
- data/modules/emscripten/tools/file_packager.py +53 -56
- data/modules/emscripten/tools/find_bigfuncs.py +2 -2
- data/modules/emscripten/tools/find_bigvars.py +24 -0
- data/modules/emscripten/tools/gen_struct_info.py +509 -0
- data/modules/emscripten/tools/gen_struct_info.pyc +0 -0
- data/modules/emscripten/tools/js-optimizer.js +177 -86
- data/modules/emscripten/tools/js_optimizer.py +54 -19
- data/modules/emscripten/tools/js_optimizer.pyc +0 -0
- data/modules/emscripten/tools/jsrun.py +17 -7
- data/modules/emscripten/tools/jsrun.pyc +0 -0
- data/modules/emscripten/tools/response_file.py +2 -2
- data/modules/emscripten/tools/response_file.pyc +0 -0
- data/modules/emscripten/tools/shared.py +257 -123
- data/modules/emscripten/tools/shared.pyc +0 -0
- data/modules/emscripten/tools/source-maps/sourcemapper.js +37 -6
- data/modules/emscripten/tools/tempfiles.py +1 -0
- data/modules/emscripten/tools/tempfiles.pyc +0 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +2 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +8 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +412 -169
- data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +88 -0
- data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +311 -265
- data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -20
- data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -21
- data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +2 -2
- data/modules/emscripten/tools/test-js-optimizer-regs-output.js +8 -8
- data/modules/emscripten/tools/test-js-optimizer-regs.js +1 -1
- data/modules/emscripten/tools/validate_asmjs.py +82 -0
- data/modules/mruby/Rakefile +2 -2
- data/modules/mruby/include/mruby/class.h +2 -2
- data/modules/mruby/include/mruby/compile.h +12 -4
- data/modules/mruby/include/mruby/data.h +8 -3
- data/modules/mruby/include/mruby/debug.h +65 -0
- data/modules/mruby/include/mruby/dump.h +10 -2
- data/modules/mruby/include/mruby/irep.h +1 -0
- data/modules/mruby/include/mruby/string.h +2 -1
- data/modules/mruby/include/mruby/value.h +20 -13
- data/modules/mruby/include/mruby/variable.h +1 -0
- data/modules/mruby/include/mruby.h +5 -6
- data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +6 -4
- data/modules/mruby/mrbgems/mruby-math/src/math.c +4 -0
- data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -1
- data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +1 -1
- data/modules/mruby/mrbgems/mruby-random/src/random.c +1 -4
- data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +25 -16
- data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +4 -0
- data/modules/mruby/mrbgems/mruby-struct/src/struct.c +1 -1
- data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +51 -0
- data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +22 -0
- data/modules/mruby/mrbgems/mruby-time/src/time.c +38 -60
- data/modules/mruby/mrblib/class.rb +2 -2
- data/modules/mruby/src/backtrace.c +96 -23
- data/modules/mruby/src/class.c +43 -41
- data/modules/mruby/src/codegen.c +52 -46
- data/modules/mruby/src/debug.c +214 -0
- data/modules/mruby/src/dump.c +245 -17
- data/modules/mruby/src/error.c +14 -6
- data/modules/mruby/src/etc.c +17 -10
- data/modules/mruby/src/gc.c +9 -9
- data/modules/mruby/src/kernel.c +1 -1
- data/modules/mruby/src/load.c +137 -1
- data/modules/mruby/src/object.c +1 -1
- data/modules/mruby/src/parse.y +162 -37
- data/modules/mruby/src/state.c +2 -0
- data/modules/mruby/src/string.c +28 -19
- data/modules/mruby/src/symbol.c +0 -1
- data/modules/mruby/src/variable.c +12 -15
- data/modules/mruby/src/vm.c +38 -22
- data/modules/mruby/tasks/mrbgem_spec.rake +6 -4
- data/modules/mruby/tasks/mrbgems_test.rake +9 -9
- data/modules/mruby/tasks/mruby_build_gem.rake +9 -0
- data/modules/mruby/tasks/toolchains/androideabi.rake +2 -0
- data/modules/mruby/test/driver.c +3 -3
- data/modules/mruby/test/t/array.rb +13 -0
- data/modules/mruby/test/t/class.rb +28 -0
- data/modules/mruby/test/t/exception.rb +10 -0
- data/modules/mruby/test/t/literals.rb +50 -0
- data/modules/mruby/test/t/module.rb +22 -0
- data/modules/mruby/test/t/proc.rb +37 -0
- data/modules/mruby/test/t/string.rb +20 -21
- data/modules/mruby/tools/mrbc/mrbc.c +2 -4
- data/scripts/gen_post.rb +1 -0
- data/scripts/gen_require.rb +107 -0
- data/templates/minimal/Rakefile +20 -0
- metadata +210 -88
- data/driver/main.c +0 -40
- data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +0 -24
- data/modules/emscripten/emlibtool +0 -11
- data/modules/emscripten/emlibtool.bat +0 -2
- data/modules/emscripten/src/framework.js +0 -257
- data/modules/emscripten/system/include/bsd/float.h +0 -91
- data/modules/emscripten/system/include/bsd/readme.txt +0 -2
- data/modules/emscripten/system/include/bsd/sys/mman.h +0 -180
- data/modules/emscripten/system/include/bsd/sys/utsname.h +0 -70
- data/modules/emscripten/system/include/dlfcn.h +0 -31
- data/modules/emscripten/system/include/err.h +0 -95
- data/modules/emscripten/system/include/features.h +0 -3
- data/modules/emscripten/system/include/libc/_ansi.h +0 -135
- data/modules/emscripten/system/include/libc/_syslist.h +0 -40
- data/modules/emscripten/system/include/libc/argz.h +0 -33
- data/modules/emscripten/system/include/libc/envlock.h +0 -15
- data/modules/emscripten/system/include/libc/envz.h +0 -16
- data/modules/emscripten/system/include/libc/fastmath.h +0 -13
- data/modules/emscripten/system/include/libc/ieeefp.h +0 -256
- data/modules/emscripten/system/include/libc/machine/_default_types.h +0 -121
- data/modules/emscripten/system/include/libc/machine/_types.h +0 -8
- data/modules/emscripten/system/include/libc/machine/ansi.h +0 -1
- data/modules/emscripten/system/include/libc/machine/endian.h +0 -31
- data/modules/emscripten/system/include/libc/machine/fastmath.h +0 -100
- data/modules/emscripten/system/include/libc/machine/ieeefp.h +0 -376
- data/modules/emscripten/system/include/libc/machine/malloc.h +0 -8
- data/modules/emscripten/system/include/libc/machine/param.h +0 -1
- data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +0 -43
- data/modules/emscripten/system/include/libc/machine/setjmp.h +0 -361
- data/modules/emscripten/system/include/libc/machine/stdlib.h +0 -8
- data/modules/emscripten/system/include/libc/machine/termios.h +0 -1
- data/modules/emscripten/system/include/libc/machine/time.h +0 -19
- data/modules/emscripten/system/include/libc/machine/types.h +0 -30
- data/modules/emscripten/system/include/libc/newlib.h +0 -2
- data/modules/emscripten/system/include/libc/process.h +0 -44
- data/modules/emscripten/system/include/libc/reent.h +0 -183
- data/modules/emscripten/system/include/libc/regdef.h +0 -7
- data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +0 -223
- data/modules/emscripten/system/include/libc/sys/_types.h +0 -93
- data/modules/emscripten/system/include/libc/sys/cdefs.h +0 -123
- data/modules/emscripten/system/include/libc/sys/config.h +0 -255
- data/modules/emscripten/system/include/libc/sys/custom_file.h +0 -2
- data/modules/emscripten/system/include/libc/sys/dirent.h +0 -58
- data/modules/emscripten/system/include/libc/sys/features.h +0 -212
- data/modules/emscripten/system/include/libc/sys/iconvnls.h +0 -77
- data/modules/emscripten/system/include/libc/sys/lock.h +0 -24
- data/modules/emscripten/system/include/libc/sys/queue.h +0 -471
- data/modules/emscripten/system/include/libc/sys/reent.h +0 -843
- data/modules/emscripten/system/include/libc/sys/sched.h +0 -67
- data/modules/emscripten/system/include/libc/sys/stdio.h +0 -27
- data/modules/emscripten/system/include/libc/sys/string.h +0 -2
- data/modules/emscripten/system/include/libc/sys/syslimits.h +0 -65
- data/modules/emscripten/system/include/libc/sys/unistd.h +0 -514
- data/modules/emscripten/system/include/libc/sys/utime.h +0 -26
- data/modules/emscripten/system/include/libc/unctrl.h +0 -46
- data/modules/emscripten/system/include/memory.h +0 -10
- data/modules/emscripten/system/include/mntent.h +0 -23
- data/modules/emscripten/system/include/net/arpa/inet.h +0 -32
- data/modules/emscripten/system/include/net/arpa/nameser.h +0 -535
- data/modules/emscripten/system/include/net/arpa/nameser_compat.h +0 -187
- data/modules/emscripten/system/include/net/if.h +0 -106
- data/modules/emscripten/system/include/net/netinet/in.h +0 -230
- data/modules/emscripten/system/include/net/netinet/tcp.h +0 -246
- data/modules/emscripten/system/include/net/resolv.h +0 -389
- data/modules/emscripten/system/include/netdb.h +0 -130
- data/modules/emscripten/system/include/nl_types.h +0 -19
- data/modules/emscripten/system/include/poll.h +0 -3
- data/modules/emscripten/system/include/pty.h +0 -6
- data/modules/emscripten/system/include/semaphore.h +0 -31
- data/modules/emscripten/system/include/spawn.h +0 -105
- data/modules/emscripten/system/include/stdbool.h +0 -16
- data/modules/emscripten/system/include/sys/bitypes.h +0 -3
- data/modules/emscripten/system/include/sys/io.h +0 -14
- data/modules/emscripten/system/include/sys/ioctl.h +0 -78
- data/modules/emscripten/system/include/sys/poll.h +0 -31
- data/modules/emscripten/system/include/sys/select.h +0 -16
- data/modules/emscripten/system/include/sys/sendfile.h +0 -16
- data/modules/emscripten/system/include/sys/socket.h +0 -247
- data/modules/emscripten/system/include/sys/socketvar.h +0 -3
- data/modules/emscripten/system/include/sys/statvfs.h +0 -32
- data/modules/emscripten/system/include/sys/uio.h +0 -22
- data/modules/emscripten/system/include/sys/un.h +0 -66
- data/modules/emscripten/system/include/sysexits.h +0 -108
- 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_ */
|