typenative 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/.gitattributes +1 -0
  2. package/.github/workflows/ci.yml +1 -1
  3. package/.github/workflows/npm-publish-github-packages.yml +1 -1
  4. package/CHANGELOG.md +247 -0
  5. package/CONTRIBUTION.md +1 -1
  6. package/README.md +4 -4
  7. package/bin/cli.js +3 -1
  8. package/bin/go/bridge.js +919 -0
  9. package/bin/go/convert.js +238 -0
  10. package/bin/go/metadata.js +211 -0
  11. package/bin/go/overrides.js +68 -0
  12. package/bin/go/stdlib.generated.js +175 -0
  13. package/bin/index.js +294 -240
  14. package/bin/main.js +4 -1
  15. package/bin/node/assert.js +344 -0
  16. package/bin/node/async_hooks.js +273 -0
  17. package/bin/node/buffer.js +765 -0
  18. package/bin/node/child_process.js +600 -0
  19. package/bin/node/cluster.js +1002 -0
  20. package/bin/node/console.js +121 -0
  21. package/bin/node/core.js +111 -0
  22. package/bin/node/crypto.js +414 -0
  23. package/bin/node/crypto_keys.js +2685 -0
  24. package/bin/node/dgram.js +388 -0
  25. package/bin/node/diagnostics_channel.js +534 -0
  26. package/bin/node/dns.js +635 -0
  27. package/bin/node/events.js +743 -0
  28. package/bin/node/fetch.js +737 -0
  29. package/bin/node/fs.js +998 -0
  30. package/bin/node/http.js +1500 -0
  31. package/bin/node/http2.js +688 -0
  32. package/bin/node/net.js +1143 -0
  33. package/bin/node/os.js +257 -0
  34. package/bin/node/path.js +758 -0
  35. package/bin/node/process.js +316 -0
  36. package/bin/node/punycode.js +195 -0
  37. package/bin/node/querystring.js +143 -0
  38. package/bin/node/readline.js +299 -0
  39. package/bin/node/registry.js +161 -0
  40. package/bin/node/sqlite.js +1142 -0
  41. package/bin/node/stream.js +1221 -0
  42. package/bin/node/stream_web.js +2259 -0
  43. package/bin/node/string_decoder.js +101 -0
  44. package/bin/node/system_extra.js +661 -0
  45. package/bin/node/test.js +1068 -0
  46. package/bin/node/timers.js +250 -0
  47. package/bin/node/tls.js +719 -0
  48. package/bin/node/url.js +861 -0
  49. package/bin/node/util.js +1311 -0
  50. package/bin/node/util_extra.js +599 -0
  51. package/bin/node/worker_threads.js +745 -0
  52. package/bin/node/zlib.js +263 -0
  53. package/bin/transpiler.js +2650 -575
  54. package/bin/version.js +2 -0
  55. package/conformance.md +707 -241
  56. package/govendor/github.com/ncruces/go-sqlite3/LICENSE +21 -0
  57. package/govendor/github.com/ncruces/go-sqlite3/README.md +121 -0
  58. package/govendor/github.com/ncruces/go-sqlite3/backup.go +132 -0
  59. package/govendor/github.com/ncruces/go-sqlite3/blob.go +266 -0
  60. package/govendor/github.com/ncruces/go-sqlite3/config.go +397 -0
  61. package/govendor/github.com/ncruces/go-sqlite3/conn.go +540 -0
  62. package/govendor/github.com/ncruces/go-sqlite3/conn_127.go +93 -0
  63. package/govendor/github.com/ncruces/go-sqlite3/const.go +436 -0
  64. package/govendor/github.com/ncruces/go-sqlite3/context.go +222 -0
  65. package/govendor/github.com/ncruces/go-sqlite3/error.go +182 -0
  66. package/govendor/github.com/ncruces/go-sqlite3/ext.go +153 -0
  67. package/govendor/github.com/ncruces/go-sqlite3/func.go +309 -0
  68. package/govendor/github.com/ncruces/go-sqlite3/go.mod +3 -0
  69. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go +29 -0
  70. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go +13 -0
  71. package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go +57 -0
  72. package/govendor/github.com/ncruces/go-sqlite3/internal/errutil/error.go +41 -0
  73. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/alloc.go +128 -0
  74. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/const.go +122 -0
  75. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/error.go +77 -0
  76. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem.go +116 -0
  77. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_other.go +34 -0
  78. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_unix.go +87 -0
  79. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_windows.go +149 -0
  80. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_unix.go +80 -0
  81. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_windows.go +129 -0
  82. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/sys_windows.go +60 -0
  83. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap.go +82 -0
  84. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_sys.go +113 -0
  85. package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_vfs.go +181 -0
  86. package/govendor/github.com/ncruces/go-sqlite3/internal/testenv/env.go +55 -0
  87. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json.go +54 -0
  88. package/govendor/github.com/ncruces/go-sqlite3/internal/util/json_v2.go +54 -0
  89. package/govendor/github.com/ncruces/go-sqlite3/internal/util/math.go +29 -0
  90. package/govendor/github.com/ncruces/go-sqlite3/internal/util/page.go +5 -0
  91. package/govendor/github.com/ncruces/go-sqlite3/internal/util/parse.go +142 -0
  92. package/govendor/github.com/ncruces/go-sqlite3/internal/util/pointer.go +3 -0
  93. package/govendor/github.com/ncruces/go-sqlite3/internal/util/reflect.go +10 -0
  94. package/govendor/github.com/ncruces/go-sqlite3/json.go +100 -0
  95. package/govendor/github.com/ncruces/go-sqlite3/json_v2.go +116 -0
  96. package/govendor/github.com/ncruces/go-sqlite3/pointer.go +13 -0
  97. package/govendor/github.com/ncruces/go-sqlite3/quote.go +140 -0
  98. package/govendor/github.com/ncruces/go-sqlite3/stmt.go +692 -0
  99. package/govendor/github.com/ncruces/go-sqlite3/time.go +360 -0
  100. package/govendor/github.com/ncruces/go-sqlite3/txn.go +374 -0
  101. package/govendor/github.com/ncruces/go-sqlite3/value.go +212 -0
  102. package/govendor/github.com/ncruces/go-sqlite3/vfs/README.md +133 -0
  103. package/govendor/github.com/ncruces/go-sqlite3/vfs/api.go +239 -0
  104. package/govendor/github.com/ncruces/go-sqlite3/vfs/cksm.go +143 -0
  105. package/govendor/github.com/ncruces/go-sqlite3/vfs/const.go +256 -0
  106. package/govendor/github.com/ncruces/go-sqlite3/vfs/file.go +260 -0
  107. package/govendor/github.com/ncruces/go-sqlite3/vfs/filename.go +187 -0
  108. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock.go +128 -0
  109. package/govendor/github.com/ncruces/go-sqlite3/vfs/lock_other.go +23 -0
  110. package/govendor/github.com/ncruces/go-sqlite3/vfs/map.go +63 -0
  111. package/govendor/github.com/ncruces/go-sqlite3/vfs/map_other.go +13 -0
  112. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_bsd.go +110 -0
  113. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_darwin.go +131 -0
  114. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_dotlk.go +140 -0
  115. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_f2fs_linux.go +56 -0
  116. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_linux.go +117 -0
  117. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_ofd.go +59 -0
  118. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std.go +50 -0
  119. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_alloc.go +19 -0
  120. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_atomic.go +9 -0
  121. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go +13 -0
  122. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_sync.go +9 -0
  123. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_temp.go +16 -0
  124. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go +108 -0
  125. package/govendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go +180 -0
  126. package/govendor/github.com/ncruces/go-sqlite3/vfs/registry.go +48 -0
  127. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm.go +26 -0
  128. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_bsd.go +258 -0
  129. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_copy.go +90 -0
  130. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_dotlk.go +168 -0
  131. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_memlk.go +52 -0
  132. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_ofd.go +185 -0
  133. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_other.go +21 -0
  134. package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go +124 -0
  135. package/govendor/github.com/ncruces/go-sqlite3/vfs/vfs.go +455 -0
  136. package/govendor/github.com/ncruces/go-sqlite3/vtab.go +677 -0
  137. package/govendor/github.com/ncruces/go-sqlite3/wrap.go +48 -0
  138. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/LICENSE +18 -0
  139. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/README.md +11 -0
  140. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/go.mod +3 -0
  141. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/libc.go +215 -0
  142. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.dat +0 -0
  143. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.go +157903 -0
  144. package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/tools.sh +38 -0
  145. package/govendor/github.com/ncruces/julianday/LICENSE +21 -0
  146. package/govendor/github.com/ncruces/julianday/README.md +9 -0
  147. package/govendor/github.com/ncruces/julianday/go.mod +3 -0
  148. package/govendor/github.com/ncruces/julianday/julianday.go +124 -0
  149. package/govendor/golang.org/x/sys/LICENSE +27 -0
  150. package/govendor/golang.org/x/sys/PATENTS +22 -0
  151. package/govendor/golang.org/x/sys/go.mod +3 -0
  152. package/govendor/golang.org/x/sys/unix/README.md +184 -0
  153. package/govendor/golang.org/x/sys/unix/affinity_linux.go +189 -0
  154. package/govendor/golang.org/x/sys/unix/aliases.go +13 -0
  155. package/govendor/golang.org/x/sys/unix/asm_aix_ppc64.s +17 -0
  156. package/govendor/golang.org/x/sys/unix/asm_bsd_386.s +27 -0
  157. package/govendor/golang.org/x/sys/unix/asm_bsd_amd64.s +27 -0
  158. package/govendor/golang.org/x/sys/unix/asm_bsd_arm.s +27 -0
  159. package/govendor/golang.org/x/sys/unix/asm_bsd_arm64.s +27 -0
  160. package/govendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +29 -0
  161. package/govendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +27 -0
  162. package/govendor/golang.org/x/sys/unix/asm_linux_386.s +65 -0
  163. package/govendor/golang.org/x/sys/unix/asm_linux_amd64.s +57 -0
  164. package/govendor/golang.org/x/sys/unix/asm_linux_arm.s +56 -0
  165. package/govendor/golang.org/x/sys/unix/asm_linux_arm64.s +50 -0
  166. package/govendor/golang.org/x/sys/unix/asm_linux_loong64.s +51 -0
  167. package/govendor/golang.org/x/sys/unix/asm_linux_mips64x.s +54 -0
  168. package/govendor/golang.org/x/sys/unix/asm_linux_mipsx.s +52 -0
  169. package/govendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +42 -0
  170. package/govendor/golang.org/x/sys/unix/asm_linux_riscv64.s +47 -0
  171. package/govendor/golang.org/x/sys/unix/asm_linux_s390x.s +54 -0
  172. package/govendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +29 -0
  173. package/govendor/golang.org/x/sys/unix/asm_solaris_amd64.s +17 -0
  174. package/govendor/golang.org/x/sys/unix/asm_zos_s390x.s +382 -0
  175. package/govendor/golang.org/x/sys/unix/auxv.go +36 -0
  176. package/govendor/golang.org/x/sys/unix/auxv_unsupported.go +13 -0
  177. package/govendor/golang.org/x/sys/unix/bluetooth_linux.go +36 -0
  178. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.go +657 -0
  179. package/govendor/golang.org/x/sys/unix/bpxsvc_zos.s +192 -0
  180. package/govendor/golang.org/x/sys/unix/cap_freebsd.go +195 -0
  181. package/govendor/golang.org/x/sys/unix/constants.go +13 -0
  182. package/govendor/golang.org/x/sys/unix/dev_aix_ppc.go +26 -0
  183. package/govendor/golang.org/x/sys/unix/dev_aix_ppc64.go +28 -0
  184. package/govendor/golang.org/x/sys/unix/dev_darwin.go +24 -0
  185. package/govendor/golang.org/x/sys/unix/dev_dragonfly.go +30 -0
  186. package/govendor/golang.org/x/sys/unix/dev_freebsd.go +30 -0
  187. package/govendor/golang.org/x/sys/unix/dev_linux.go +42 -0
  188. package/govendor/golang.org/x/sys/unix/dev_netbsd.go +29 -0
  189. package/govendor/golang.org/x/sys/unix/dev_openbsd.go +29 -0
  190. package/govendor/golang.org/x/sys/unix/dev_zos.go +28 -0
  191. package/govendor/golang.org/x/sys/unix/dirent.go +102 -0
  192. package/govendor/golang.org/x/sys/unix/endian_big.go +9 -0
  193. package/govendor/golang.org/x/sys/unix/endian_little.go +9 -0
  194. package/govendor/golang.org/x/sys/unix/env_unix.go +31 -0
  195. package/govendor/golang.org/x/sys/unix/fcntl.go +36 -0
  196. package/govendor/golang.org/x/sys/unix/fcntl_darwin.go +24 -0
  197. package/govendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +13 -0
  198. package/govendor/golang.org/x/sys/unix/fdset.go +27 -0
  199. package/govendor/golang.org/x/sys/unix/gccgo.go +59 -0
  200. package/govendor/golang.org/x/sys/unix/gccgo_c.c +44 -0
  201. package/govendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +20 -0
  202. package/govendor/golang.org/x/sys/unix/ifreq_linux.go +145 -0
  203. package/govendor/golang.org/x/sys/unix/ioctl_linux.go +341 -0
  204. package/govendor/golang.org/x/sys/unix/ioctl_signed.go +74 -0
  205. package/govendor/golang.org/x/sys/unix/ioctl_unsigned.go +74 -0
  206. package/govendor/golang.org/x/sys/unix/ioctl_zos.go +71 -0
  207. package/govendor/golang.org/x/sys/unix/mkall.sh +250 -0
  208. package/govendor/golang.org/x/sys/unix/mkerrors.sh +807 -0
  209. package/govendor/golang.org/x/sys/unix/mmap_nomremap.go +13 -0
  210. package/govendor/golang.org/x/sys/unix/mremap.go +57 -0
  211. package/govendor/golang.org/x/sys/unix/pagesize_unix.go +15 -0
  212. package/govendor/golang.org/x/sys/unix/pledge_openbsd.go +111 -0
  213. package/govendor/golang.org/x/sys/unix/ptrace_darwin.go +11 -0
  214. package/govendor/golang.org/x/sys/unix/ptrace_ios.go +11 -0
  215. package/govendor/golang.org/x/sys/unix/race.go +30 -0
  216. package/govendor/golang.org/x/sys/unix/race0.go +25 -0
  217. package/govendor/golang.org/x/sys/unix/readdirent_getdents.go +12 -0
  218. package/govendor/golang.org/x/sys/unix/readdirent_getdirentries.go +19 -0
  219. package/govendor/golang.org/x/sys/unix/readv_unix.go +103 -0
  220. package/govendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +16 -0
  221. package/govendor/golang.org/x/sys/unix/sockcmsg_linux.go +85 -0
  222. package/govendor/golang.org/x/sys/unix/sockcmsg_unix.go +106 -0
  223. package/govendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +46 -0
  224. package/govendor/golang.org/x/sys/unix/sockcmsg_zos.go +58 -0
  225. package/govendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +75 -0
  226. package/govendor/golang.org/x/sys/unix/syscall.go +86 -0
  227. package/govendor/golang.org/x/sys/unix/syscall_aix.go +582 -0
  228. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc.go +52 -0
  229. package/govendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +83 -0
  230. package/govendor/golang.org/x/sys/unix/syscall_bsd.go +609 -0
  231. package/govendor/golang.org/x/sys/unix/syscall_darwin.go +711 -0
  232. package/govendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +50 -0
  233. package/govendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +50 -0
  234. package/govendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +26 -0
  235. package/govendor/golang.org/x/sys/unix/syscall_dragonfly.go +359 -0
  236. package/govendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +56 -0
  237. package/govendor/golang.org/x/sys/unix/syscall_freebsd.go +455 -0
  238. package/govendor/golang.org/x/sys/unix/syscall_freebsd_386.go +64 -0
  239. package/govendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +64 -0
  240. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +60 -0
  241. package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +60 -0
  242. package/govendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +60 -0
  243. package/govendor/golang.org/x/sys/unix/syscall_hurd.go +30 -0
  244. package/govendor/golang.org/x/sys/unix/syscall_hurd_386.go +28 -0
  245. package/govendor/golang.org/x/sys/unix/syscall_illumos.go +78 -0
  246. package/govendor/golang.org/x/sys/unix/syscall_linux.go +2574 -0
  247. package/govendor/golang.org/x/sys/unix/syscall_linux_386.go +313 -0
  248. package/govendor/golang.org/x/sys/unix/syscall_linux_alarm.go +12 -0
  249. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64.go +144 -0
  250. package/govendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +12 -0
  251. package/govendor/golang.org/x/sys/unix/syscall_linux_arm.go +218 -0
  252. package/govendor/golang.org/x/sys/unix/syscall_linux_arm64.go +188 -0
  253. package/govendor/golang.org/x/sys/unix/syscall_linux_gc.go +14 -0
  254. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +16 -0
  255. package/govendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +13 -0
  256. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +30 -0
  257. package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +20 -0
  258. package/govendor/golang.org/x/sys/unix/syscall_linux_loong64.go +220 -0
  259. package/govendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +187 -0
  260. package/govendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +173 -0
  261. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc.go +203 -0
  262. package/govendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +114 -0
  263. package/govendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +193 -0
  264. package/govendor/golang.org/x/sys/unix/syscall_linux_s390x.go +295 -0
  265. package/govendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +111 -0
  266. package/govendor/golang.org/x/sys/unix/syscall_netbsd.go +388 -0
  267. package/govendor/golang.org/x/sys/unix/syscall_netbsd_386.go +37 -0
  268. package/govendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +37 -0
  269. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +37 -0
  270. package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +37 -0
  271. package/govendor/golang.org/x/sys/unix/syscall_openbsd.go +346 -0
  272. package/govendor/golang.org/x/sys/unix/syscall_openbsd_386.go +41 -0
  273. package/govendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +41 -0
  274. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +41 -0
  275. package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +41 -0
  276. package/govendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +26 -0
  277. package/govendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +39 -0
  278. package/govendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +41 -0
  279. package/govendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +41 -0
  280. package/govendor/golang.org/x/sys/unix/syscall_solaris.go +1183 -0
  281. package/govendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +27 -0
  282. package/govendor/golang.org/x/sys/unix/syscall_unix.go +619 -0
  283. package/govendor/golang.org/x/sys/unix/syscall_unix_gc.go +14 -0
  284. package/govendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +22 -0
  285. package/govendor/golang.org/x/sys/unix/syscall_zos_s390x.go +3213 -0
  286. package/govendor/golang.org/x/sys/unix/sysvshm_linux.go +20 -0
  287. package/govendor/golang.org/x/sys/unix/sysvshm_unix.go +51 -0
  288. package/govendor/golang.org/x/sys/unix/sysvshm_unix_other.go +13 -0
  289. package/govendor/golang.org/x/sys/unix/timestruct.go +76 -0
  290. package/govendor/golang.org/x/sys/unix/unveil_openbsd.go +51 -0
  291. package/govendor/golang.org/x/sys/unix/vgetrandom_linux.go +13 -0
  292. package/govendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +11 -0
  293. package/govendor/golang.org/x/sys/unix/xattr_bsd.go +280 -0
  294. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +1384 -0
  295. package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +1385 -0
  296. package/govendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +1922 -0
  297. package/govendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +1922 -0
  298. package/govendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +1737 -0
  299. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +2042 -0
  300. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +2039 -0
  301. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +2033 -0
  302. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +2033 -0
  303. package/govendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +2147 -0
  304. package/govendor/golang.org/x/sys/unix/zerrors_linux.go +4209 -0
  305. package/govendor/golang.org/x/sys/unix/zerrors_linux_386.go +882 -0
  306. package/govendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +882 -0
  307. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm.go +887 -0
  308. package/govendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +884 -0
  309. package/govendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +874 -0
  310. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips.go +888 -0
  311. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +888 -0
  312. package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +888 -0
  313. package/govendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +888 -0
  314. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +940 -0
  315. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +944 -0
  316. package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +944 -0
  317. package/govendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +884 -0
  318. package/govendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +943 -0
  319. package/govendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +992 -0
  320. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +1779 -0
  321. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +1769 -0
  322. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +1758 -0
  323. package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +1769 -0
  324. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +1905 -0
  325. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +1905 -0
  326. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +1905 -0
  327. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +1905 -0
  328. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +1905 -0
  329. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +1904 -0
  330. package/govendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +1903 -0
  331. package/govendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +1556 -0
  332. package/govendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +990 -0
  333. package/govendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +40 -0
  334. package/govendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +17 -0
  335. package/govendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +49 -0
  336. package/govendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +49 -0
  337. package/govendor/golang.org/x/sys/unix/zptrace_x86_linux.go +79 -0
  338. package/govendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +364 -0
  339. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +1461 -0
  340. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +1420 -0
  341. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +1188 -0
  342. package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +1069 -0
  343. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +2728 -0
  344. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +799 -0
  345. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +2728 -0
  346. package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +799 -0
  347. package/govendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +1666 -0
  348. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +1886 -0
  349. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +1886 -0
  350. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +1886 -0
  351. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +1886 -0
  352. package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +1886 -0
  353. package/govendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +101 -0
  354. package/govendor/golang.org/x/sys/unix/zsyscall_linux.go +2267 -0
  355. package/govendor/golang.org/x/sys/unix/zsyscall_linux_386.go +469 -0
  356. package/govendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +636 -0
  357. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +584 -0
  358. package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +535 -0
  359. package/govendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +469 -0
  360. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +636 -0
  361. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +630 -0
  362. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +619 -0
  363. package/govendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +636 -0
  364. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +641 -0
  365. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +687 -0
  366. package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +687 -0
  367. package/govendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +531 -0
  368. package/govendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +478 -0
  369. package/govendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +631 -0
  370. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +1848 -0
  371. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +1848 -0
  372. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +1848 -0
  373. package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +1848 -0
  374. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +2407 -0
  375. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +719 -0
  376. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +2407 -0
  377. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +719 -0
  378. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +2407 -0
  379. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +719 -0
  380. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +2407 -0
  381. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +719 -0
  382. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +2407 -0
  383. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +719 -0
  384. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +2407 -0
  385. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +862 -0
  386. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +2407 -0
  387. package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +719 -0
  388. package/govendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +2217 -0
  389. package/govendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +3458 -0
  390. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +280 -0
  391. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +280 -0
  392. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +280 -0
  393. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +280 -0
  394. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +280 -0
  395. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +280 -0
  396. package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +281 -0
  397. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +439 -0
  398. package/govendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +437 -0
  399. package/govendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +316 -0
  400. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +393 -0
  401. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +393 -0
  402. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +393 -0
  403. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +393 -0
  404. package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +393 -0
  405. package/govendor/golang.org/x/sys/unix/zsysnum_linux_386.go +470 -0
  406. package/govendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +394 -0
  407. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +434 -0
  408. package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +337 -0
  409. package/govendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +334 -0
  410. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +454 -0
  411. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +384 -0
  412. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +384 -0
  413. package/govendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +454 -0
  414. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +461 -0
  415. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +433 -0
  416. package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +433 -0
  417. package/govendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +338 -0
  418. package/govendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +399 -0
  419. package/govendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +413 -0
  420. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +274 -0
  421. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +274 -0
  422. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +274 -0
  423. package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +274 -0
  424. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +219 -0
  425. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +219 -0
  426. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +219 -0
  427. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +218 -0
  428. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +221 -0
  429. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +217 -0
  430. package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +218 -0
  431. package/govendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +2852 -0
  432. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +353 -0
  433. package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +357 -0
  434. package/govendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +878 -0
  435. package/govendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +878 -0
  436. package/govendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +473 -0
  437. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +651 -0
  438. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +656 -0
  439. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +642 -0
  440. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +636 -0
  441. package/govendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +638 -0
  442. package/govendor/golang.org/x/sys/unix/ztypes_linux.go +6547 -0
  443. package/govendor/golang.org/x/sys/unix/ztypes_linux_386.go +747 -0
  444. package/govendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +761 -0
  445. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm.go +741 -0
  446. package/govendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +740 -0
  447. package/govendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +741 -0
  448. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips.go +746 -0
  449. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +743 -0
  450. package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +743 -0
  451. package/govendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +746 -0
  452. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +754 -0
  453. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +749 -0
  454. package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +749 -0
  455. package/govendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +828 -0
  456. package/govendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +763 -0
  457. package/govendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +744 -0
  458. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +585 -0
  459. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +593 -0
  460. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +590 -0
  461. package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +593 -0
  462. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +568 -0
  463. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +568 -0
  464. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +575 -0
  465. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +568 -0
  466. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +568 -0
  467. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +570 -0
  468. package/govendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +570 -0
  469. package/govendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +516 -0
  470. package/govendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +552 -0
  471. package/govendor/golang.org/x/sys/windows/aliases.go +13 -0
  472. package/govendor/golang.org/x/sys/windows/dll_windows.go +380 -0
  473. package/govendor/golang.org/x/sys/windows/env_windows.go +57 -0
  474. package/govendor/golang.org/x/sys/windows/eventlog.go +20 -0
  475. package/govendor/golang.org/x/sys/windows/exec_windows.go +248 -0
  476. package/govendor/golang.org/x/sys/windows/memory_windows.go +48 -0
  477. package/govendor/golang.org/x/sys/windows/mkerrors.bash +70 -0
  478. package/govendor/golang.org/x/sys/windows/mkknownfolderids.bash +27 -0
  479. package/govendor/golang.org/x/sys/windows/mksyscall.go +9 -0
  480. package/govendor/golang.org/x/sys/windows/race.go +30 -0
  481. package/govendor/golang.org/x/sys/windows/race0.go +25 -0
  482. package/govendor/golang.org/x/sys/windows/security_windows.go +1537 -0
  483. package/govendor/golang.org/x/sys/windows/service.go +257 -0
  484. package/govendor/golang.org/x/sys/windows/setupapi_windows.go +1425 -0
  485. package/govendor/golang.org/x/sys/windows/str.go +22 -0
  486. package/govendor/golang.org/x/sys/windows/syscall.go +104 -0
  487. package/govendor/golang.org/x/sys/windows/syscall_windows.go +1952 -0
  488. package/govendor/golang.org/x/sys/windows/types_windows.go +4058 -0
  489. package/govendor/golang.org/x/sys/windows/types_windows_386.go +35 -0
  490. package/govendor/golang.org/x/sys/windows/types_windows_amd64.go +34 -0
  491. package/govendor/golang.org/x/sys/windows/types_windows_arm.go +35 -0
  492. package/govendor/golang.org/x/sys/windows/types_windows_arm64.go +34 -0
  493. package/govendor/golang.org/x/sys/windows/zerrors_windows.go +9468 -0
  494. package/govendor/golang.org/x/sys/windows/zknownfolderids_windows.go +149 -0
  495. package/govendor/golang.org/x/sys/windows/zsyscall_windows.go +4828 -0
  496. package/govendor/manifest.txt +7 -0
  497. package/package.json +6 -1
  498. package/types/typenative-go.d.ts +15159 -5
  499. package/types/typenative-npm.d.ts +2637 -34
  500. package/types/typenative.d.ts +651 -8
@@ -0,0 +1,609 @@
1
+ // Copyright 2009 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ //go:build darwin || dragonfly || freebsd || netbsd || openbsd
6
+
7
+ // BSD system call wrappers shared by *BSD based systems
8
+ // including OS X (Darwin) and FreeBSD. Like the other
9
+ // syscall_*.go files it is compiled as Go code but also
10
+ // used as input to mksyscall which parses the //sys
11
+ // lines and generates system call stubs.
12
+
13
+ package unix
14
+
15
+ import (
16
+ "runtime"
17
+ "syscall"
18
+ "unsafe"
19
+ )
20
+
21
+ const ImplementsGetwd = true
22
+
23
+ func Getwd() (string, error) {
24
+ var buf [PathMax]byte
25
+ _, err := Getcwd(buf[0:])
26
+ if err != nil {
27
+ return "", err
28
+ }
29
+ n := clen(buf[:])
30
+ if n < 1 {
31
+ return "", EINVAL
32
+ }
33
+ return string(buf[:n]), nil
34
+ }
35
+
36
+ /*
37
+ * Wrapped
38
+ */
39
+
40
+ //sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error)
41
+ //sysnb setgroups(ngid int, gid *_Gid_t) (err error)
42
+
43
+ func Getgroups() (gids []int, err error) {
44
+ n, err := getgroups(0, nil)
45
+ if err != nil {
46
+ return nil, err
47
+ }
48
+ if n == 0 {
49
+ return nil, nil
50
+ }
51
+
52
+ // Sanity check group count. Max is 16 on BSD.
53
+ if n < 0 || n > 1000 {
54
+ return nil, EINVAL
55
+ }
56
+
57
+ a := make([]_Gid_t, n)
58
+ n, err = getgroups(n, &a[0])
59
+ if err != nil {
60
+ return nil, err
61
+ }
62
+ gids = make([]int, n)
63
+ for i, v := range a[0:n] {
64
+ gids[i] = int(v)
65
+ }
66
+ return
67
+ }
68
+
69
+ func Setgroups(gids []int) (err error) {
70
+ if len(gids) == 0 {
71
+ return setgroups(0, nil)
72
+ }
73
+
74
+ a := make([]_Gid_t, len(gids))
75
+ for i, v := range gids {
76
+ a[i] = _Gid_t(v)
77
+ }
78
+ return setgroups(len(a), &a[0])
79
+ }
80
+
81
+ // Wait status is 7 bits at bottom, either 0 (exited),
82
+ // 0x7F (stopped), or a signal number that caused an exit.
83
+ // The 0x80 bit is whether there was a core dump.
84
+ // An extra number (exit code, signal causing a stop)
85
+ // is in the high bits.
86
+
87
+ type WaitStatus uint32
88
+
89
+ const (
90
+ mask = 0x7F
91
+ core = 0x80
92
+ shift = 8
93
+
94
+ exited = 0
95
+ killed = 9
96
+ stopped = 0x7F
97
+ )
98
+
99
+ func (w WaitStatus) Exited() bool { return w&mask == exited }
100
+
101
+ func (w WaitStatus) ExitStatus() int {
102
+ if w&mask != exited {
103
+ return -1
104
+ }
105
+ return int(w >> shift)
106
+ }
107
+
108
+ func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }
109
+
110
+ func (w WaitStatus) Signal() syscall.Signal {
111
+ sig := syscall.Signal(w & mask)
112
+ if sig == stopped || sig == 0 {
113
+ return -1
114
+ }
115
+ return sig
116
+ }
117
+
118
+ func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }
119
+
120
+ func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }
121
+
122
+ func (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL }
123
+
124
+ func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }
125
+
126
+ func (w WaitStatus) StopSignal() syscall.Signal {
127
+ if !w.Stopped() {
128
+ return -1
129
+ }
130
+ return syscall.Signal(w>>shift) & 0xFF
131
+ }
132
+
133
+ func (w WaitStatus) TrapCause() int { return -1 }
134
+
135
+ //sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)
136
+
137
+ func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {
138
+ var status _C_int
139
+ wpid, err = wait4(pid, &status, options, rusage)
140
+ if wstatus != nil {
141
+ *wstatus = WaitStatus(status)
142
+ }
143
+ return
144
+ }
145
+
146
+ //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
147
+ //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
148
+ //sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
149
+ //sysnb socket(domain int, typ int, proto int) (fd int, err error)
150
+ //sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
151
+ //sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
152
+ //sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
153
+ //sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
154
+ //sys Shutdown(s int, how int) (err error)
155
+
156
+ func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
157
+ if sa.Port < 0 || sa.Port > 0xFFFF {
158
+ return nil, 0, EINVAL
159
+ }
160
+ sa.raw.Len = SizeofSockaddrInet4
161
+ sa.raw.Family = AF_INET
162
+ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
163
+ p[0] = byte(sa.Port >> 8)
164
+ p[1] = byte(sa.Port)
165
+ sa.raw.Addr = sa.Addr
166
+ return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil
167
+ }
168
+
169
+ func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {
170
+ if sa.Port < 0 || sa.Port > 0xFFFF {
171
+ return nil, 0, EINVAL
172
+ }
173
+ sa.raw.Len = SizeofSockaddrInet6
174
+ sa.raw.Family = AF_INET6
175
+ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
176
+ p[0] = byte(sa.Port >> 8)
177
+ p[1] = byte(sa.Port)
178
+ sa.raw.Scope_id = sa.ZoneId
179
+ sa.raw.Addr = sa.Addr
180
+ return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil
181
+ }
182
+
183
+ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
184
+ name := sa.Name
185
+ n := len(name)
186
+ if n >= len(sa.raw.Path) || n == 0 {
187
+ return nil, 0, EINVAL
188
+ }
189
+ sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL
190
+ sa.raw.Family = AF_UNIX
191
+ for i := range n {
192
+ sa.raw.Path[i] = int8(name[i])
193
+ }
194
+ return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil
195
+ }
196
+
197
+ func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) {
198
+ if sa.Index == 0 {
199
+ return nil, 0, EINVAL
200
+ }
201
+ sa.raw.Len = sa.Len
202
+ sa.raw.Family = AF_LINK
203
+ sa.raw.Index = sa.Index
204
+ sa.raw.Type = sa.Type
205
+ sa.raw.Nlen = sa.Nlen
206
+ sa.raw.Alen = sa.Alen
207
+ sa.raw.Slen = sa.Slen
208
+ sa.raw.Data = sa.Data
209
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil
210
+ }
211
+
212
+ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
213
+ switch rsa.Addr.Family {
214
+ case AF_LINK:
215
+ pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa))
216
+ sa := new(SockaddrDatalink)
217
+ sa.Len = pp.Len
218
+ sa.Family = pp.Family
219
+ sa.Index = pp.Index
220
+ sa.Type = pp.Type
221
+ sa.Nlen = pp.Nlen
222
+ sa.Alen = pp.Alen
223
+ sa.Slen = pp.Slen
224
+ sa.Data = pp.Data
225
+ return sa, nil
226
+
227
+ case AF_UNIX:
228
+ pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
229
+ if pp.Len < 2 || pp.Len > SizeofSockaddrUnix {
230
+ return nil, EINVAL
231
+ }
232
+ sa := new(SockaddrUnix)
233
+
234
+ // Some BSDs include the trailing NUL in the length, whereas
235
+ // others do not. Work around this by subtracting the leading
236
+ // family and len. The path is then scanned to see if a NUL
237
+ // terminator still exists within the length.
238
+ n := int(pp.Len) - 2 // subtract leading Family, Len
239
+ for i := 0; i < n; i++ {
240
+ if pp.Path[i] == 0 {
241
+ // found early NUL; assume Len included the NUL
242
+ // or was overestimating.
243
+ n = i
244
+ break
245
+ }
246
+ }
247
+ sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))
248
+ return sa, nil
249
+
250
+ case AF_INET:
251
+ pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
252
+ sa := new(SockaddrInet4)
253
+ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
254
+ sa.Port = int(p[0])<<8 + int(p[1])
255
+ sa.Addr = pp.Addr
256
+ return sa, nil
257
+
258
+ case AF_INET6:
259
+ pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
260
+ sa := new(SockaddrInet6)
261
+ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
262
+ sa.Port = int(p[0])<<8 + int(p[1])
263
+ sa.ZoneId = pp.Scope_id
264
+ sa.Addr = pp.Addr
265
+ return sa, nil
266
+ }
267
+ return anyToSockaddrGOOS(fd, rsa)
268
+ }
269
+
270
+ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
271
+ var rsa RawSockaddrAny
272
+ var len _Socklen = SizeofSockaddrAny
273
+ nfd, err = accept(fd, &rsa, &len)
274
+ if err != nil {
275
+ return
276
+ }
277
+ if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && len == 0 {
278
+ // Accepted socket has no address.
279
+ // This is likely due to a bug in xnu kernels,
280
+ // where instead of ECONNABORTED error socket
281
+ // is accepted, but has no address.
282
+ Close(nfd)
283
+ return 0, nil, ECONNABORTED
284
+ }
285
+ sa, err = anyToSockaddr(fd, &rsa)
286
+ if err != nil {
287
+ Close(nfd)
288
+ nfd = 0
289
+ }
290
+ return
291
+ }
292
+
293
+ func Getsockname(fd int) (sa Sockaddr, err error) {
294
+ var rsa RawSockaddrAny
295
+ var len _Socklen = SizeofSockaddrAny
296
+ if err = getsockname(fd, &rsa, &len); err != nil {
297
+ return
298
+ }
299
+ // TODO(jsing): DragonFly has a "bug" (see issue 3349), which should be
300
+ // reported upstream.
301
+ if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 {
302
+ rsa.Addr.Family = AF_UNIX
303
+ rsa.Addr.Len = SizeofSockaddrUnix
304
+ }
305
+ return anyToSockaddr(fd, &rsa)
306
+ }
307
+
308
+ //sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
309
+
310
+ // GetsockoptString returns the string value of the socket option opt for the
311
+ // socket associated with fd at the given socket level.
312
+ func GetsockoptString(fd, level, opt int) (string, error) {
313
+ buf := make([]byte, 256)
314
+ vallen := _Socklen(len(buf))
315
+ err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
316
+ if err != nil {
317
+ return "", err
318
+ }
319
+ return ByteSliceToString(buf[:vallen]), nil
320
+ }
321
+
322
+ //sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
323
+ //sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
324
+ //sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
325
+
326
+ func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
327
+ var msg Msghdr
328
+ msg.Name = (*byte)(unsafe.Pointer(rsa))
329
+ msg.Namelen = uint32(SizeofSockaddrAny)
330
+ var dummy byte
331
+ if len(oob) > 0 {
332
+ // receive at least one normal byte
333
+ if emptyIovecs(iov) {
334
+ var iova [1]Iovec
335
+ iova[0].Base = &dummy
336
+ iova[0].SetLen(1)
337
+ iov = iova[:]
338
+ }
339
+ msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
340
+ msg.SetControllen(len(oob))
341
+ }
342
+ if len(iov) > 0 {
343
+ msg.Iov = &iov[0]
344
+ msg.SetIovlen(len(iov))
345
+ }
346
+ if n, err = recvmsg(fd, &msg, flags); err != nil {
347
+ return
348
+ }
349
+ oobn = int(msg.Controllen)
350
+ recvflags = int(msg.Flags)
351
+ return
352
+ }
353
+
354
+ //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
355
+
356
+ func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
357
+ var msg Msghdr
358
+ msg.Name = (*byte)(unsafe.Pointer(ptr))
359
+ msg.Namelen = uint32(salen)
360
+ var dummy byte
361
+ var empty bool
362
+ if len(oob) > 0 {
363
+ // send at least one normal byte
364
+ empty = emptyIovecs(iov)
365
+ if empty {
366
+ var iova [1]Iovec
367
+ iova[0].Base = &dummy
368
+ iova[0].SetLen(1)
369
+ iov = iova[:]
370
+ }
371
+ msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
372
+ msg.SetControllen(len(oob))
373
+ }
374
+ if len(iov) > 0 {
375
+ msg.Iov = &iov[0]
376
+ msg.SetIovlen(len(iov))
377
+ }
378
+ if n, err = sendmsg(fd, &msg, flags); err != nil {
379
+ return 0, err
380
+ }
381
+ if len(oob) > 0 && empty {
382
+ n = 0
383
+ }
384
+ return n, nil
385
+ }
386
+
387
+ //sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error)
388
+
389
+ func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) {
390
+ var change, event unsafe.Pointer
391
+ if len(changes) > 0 {
392
+ change = unsafe.Pointer(&changes[0])
393
+ }
394
+ if len(events) > 0 {
395
+ event = unsafe.Pointer(&events[0])
396
+ }
397
+ return kevent(kq, change, len(changes), event, len(events), timeout)
398
+ }
399
+
400
+ // sysctlmib translates name to mib number and appends any additional args.
401
+ func sysctlmib(name string, args ...int) ([]_C_int, error) {
402
+ // Translate name to mib number.
403
+ mib, err := nametomib(name)
404
+ if err != nil {
405
+ return nil, err
406
+ }
407
+
408
+ for _, a := range args {
409
+ mib = append(mib, _C_int(a))
410
+ }
411
+
412
+ return mib, nil
413
+ }
414
+
415
+ func Sysctl(name string) (string, error) {
416
+ return SysctlArgs(name)
417
+ }
418
+
419
+ func SysctlArgs(name string, args ...int) (string, error) {
420
+ buf, err := SysctlRaw(name, args...)
421
+ if err != nil {
422
+ return "", err
423
+ }
424
+ n := len(buf)
425
+
426
+ // Throw away terminating NUL.
427
+ if n > 0 && buf[n-1] == '\x00' {
428
+ n--
429
+ }
430
+ return string(buf[0:n]), nil
431
+ }
432
+
433
+ func SysctlUint32(name string) (uint32, error) {
434
+ return SysctlUint32Args(name)
435
+ }
436
+
437
+ func SysctlUint32Args(name string, args ...int) (uint32, error) {
438
+ mib, err := sysctlmib(name, args...)
439
+ if err != nil {
440
+ return 0, err
441
+ }
442
+
443
+ n := uintptr(4)
444
+ buf := make([]byte, 4)
445
+ if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {
446
+ return 0, err
447
+ }
448
+ if n != 4 {
449
+ return 0, EIO
450
+ }
451
+ return *(*uint32)(unsafe.Pointer(&buf[0])), nil
452
+ }
453
+
454
+ func SysctlUint64(name string, args ...int) (uint64, error) {
455
+ mib, err := sysctlmib(name, args...)
456
+ if err != nil {
457
+ return 0, err
458
+ }
459
+
460
+ n := uintptr(8)
461
+ buf := make([]byte, 8)
462
+ if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {
463
+ return 0, err
464
+ }
465
+ if n != 8 {
466
+ return 0, EIO
467
+ }
468
+ return *(*uint64)(unsafe.Pointer(&buf[0])), nil
469
+ }
470
+
471
+ func SysctlRaw(name string, args ...int) ([]byte, error) {
472
+ mib, err := sysctlmib(name, args...)
473
+ if err != nil {
474
+ return nil, err
475
+ }
476
+
477
+ // Find size.
478
+ n := uintptr(0)
479
+ if err := sysctl(mib, nil, &n, nil, 0); err != nil {
480
+ return nil, err
481
+ }
482
+ if n == 0 {
483
+ return nil, nil
484
+ }
485
+
486
+ // Read into buffer of that size.
487
+ buf := make([]byte, n)
488
+ if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {
489
+ return nil, err
490
+ }
491
+
492
+ // The actual call may return less than the original reported required
493
+ // size so ensure we deal with that.
494
+ return buf[:n], nil
495
+ }
496
+
497
+ func SysctlClockinfo(name string) (*Clockinfo, error) {
498
+ mib, err := sysctlmib(name)
499
+ if err != nil {
500
+ return nil, err
501
+ }
502
+
503
+ n := uintptr(SizeofClockinfo)
504
+ var ci Clockinfo
505
+ if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {
506
+ return nil, err
507
+ }
508
+ if n != SizeofClockinfo {
509
+ return nil, EIO
510
+ }
511
+ return &ci, nil
512
+ }
513
+
514
+ func SysctlTimeval(name string) (*Timeval, error) {
515
+ mib, err := sysctlmib(name)
516
+ if err != nil {
517
+ return nil, err
518
+ }
519
+
520
+ var tv Timeval
521
+ n := uintptr(unsafe.Sizeof(tv))
522
+ if err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil {
523
+ return nil, err
524
+ }
525
+ if n != unsafe.Sizeof(tv) {
526
+ return nil, EIO
527
+ }
528
+ return &tv, nil
529
+ }
530
+
531
+ //sys utimes(path string, timeval *[2]Timeval) (err error)
532
+
533
+ func Utimes(path string, tv []Timeval) error {
534
+ if tv == nil {
535
+ return utimes(path, nil)
536
+ }
537
+ if len(tv) != 2 {
538
+ return EINVAL
539
+ }
540
+ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
541
+ }
542
+
543
+ func UtimesNano(path string, ts []Timespec) error {
544
+ if ts == nil {
545
+ err := utimensat(AT_FDCWD, path, nil, 0)
546
+ if err != ENOSYS {
547
+ return err
548
+ }
549
+ return utimes(path, nil)
550
+ }
551
+ if len(ts) != 2 {
552
+ return EINVAL
553
+ }
554
+ err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
555
+ if err != ENOSYS {
556
+ return err
557
+ }
558
+ // Not as efficient as it could be because Timespec and
559
+ // Timeval have different types in the different OSes
560
+ tv := [2]Timeval{
561
+ NsecToTimeval(TimespecToNsec(ts[0])),
562
+ NsecToTimeval(TimespecToNsec(ts[1])),
563
+ }
564
+ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
565
+ }
566
+
567
+ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
568
+ if ts == nil {
569
+ return utimensat(dirfd, path, nil, flags)
570
+ }
571
+ if len(ts) != 2 {
572
+ return EINVAL
573
+ }
574
+ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
575
+ }
576
+
577
+ //sys futimes(fd int, timeval *[2]Timeval) (err error)
578
+
579
+ func Futimes(fd int, tv []Timeval) error {
580
+ if tv == nil {
581
+ return futimes(fd, nil)
582
+ }
583
+ if len(tv) != 2 {
584
+ return EINVAL
585
+ }
586
+ return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
587
+ }
588
+
589
+ //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
590
+
591
+ func Poll(fds []PollFd, timeout int) (n int, err error) {
592
+ if len(fds) == 0 {
593
+ return poll(nil, 0, timeout)
594
+ }
595
+ return poll(&fds[0], len(fds), timeout)
596
+ }
597
+
598
+ // TODO: wrap
599
+ // Acct(name nil-string) (err error)
600
+ // Gethostuuid(uuid *byte, timeout *Timespec) (err error)
601
+ // Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error)
602
+
603
+ //sys Madvise(b []byte, behav int) (err error)
604
+ //sys Mlock(b []byte) (err error)
605
+ //sys Mlockall(flags int) (err error)
606
+ //sys Mprotect(b []byte, prot int) (err error)
607
+ //sys Msync(b []byte, flags int) (err error)
608
+ //sys Munlock(b []byte) (err error)
609
+ //sys Munlockall() (err error)