typenative 0.1.3 → 0.3.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.
- package/.gitattributes +1 -0
- package/.github/workflows/ci.yml +39 -2
- package/.github/workflows/npm-publish-github-packages.yml +7 -2
- package/CHANGELOG.md +293 -0
- package/CONTRIBUTION.md +8 -6
- package/README.md +15 -11
- package/bin/cli.js +7 -1
- package/bin/go/bridge.js +919 -0
- package/bin/go/convert.js +238 -0
- package/bin/go/metadata.js +211 -0
- package/bin/go/overrides.js +68 -0
- package/bin/go/stdlib.generated.js +175 -0
- package/bin/index.js +337 -239
- package/bin/main.js +9 -2
- package/bin/node/assert.js +344 -0
- package/bin/node/async_hooks.js +273 -0
- package/bin/node/buffer.js +765 -0
- package/bin/node/child_process.js +600 -0
- package/bin/node/cluster.js +1002 -0
- package/bin/node/console.js +121 -0
- package/bin/node/core.js +111 -0
- package/bin/node/crypto.js +414 -0
- package/bin/node/crypto_keys.js +2685 -0
- package/bin/node/dgram.js +388 -0
- package/bin/node/diagnostics_channel.js +534 -0
- package/bin/node/dns.js +635 -0
- package/bin/node/events.js +743 -0
- package/bin/node/fetch.js +737 -0
- package/bin/node/fs.js +998 -0
- package/bin/node/http.js +1500 -0
- package/bin/node/http2.js +688 -0
- package/bin/node/net.js +1143 -0
- package/bin/node/os.js +257 -0
- package/bin/node/path.js +758 -0
- package/bin/node/process.js +316 -0
- package/bin/node/punycode.js +195 -0
- package/bin/node/querystring.js +143 -0
- package/bin/node/readline.js +299 -0
- package/bin/node/registry.js +161 -0
- package/bin/node/sqlite.js +1142 -0
- package/bin/node/stream.js +1221 -0
- package/bin/node/stream_web.js +2259 -0
- package/bin/node/string_decoder.js +101 -0
- package/bin/node/system_extra.js +714 -0
- package/bin/node/test.js +1068 -0
- package/bin/node/timers.js +263 -0
- package/bin/node/tls.js +719 -0
- package/bin/node/url.js +861 -0
- package/bin/node/util.js +1311 -0
- package/bin/node/util_extra.js +599 -0
- package/bin/node/worker_threads.js +745 -0
- package/bin/node/zlib.js +263 -0
- package/bin/parse-native.js +10 -0
- package/bin/parse-node.js +10 -0
- package/bin/transpiler.js +2824 -588
- package/bin/typecheck-node.js +78 -0
- package/bin/version.js +2 -0
- package/conformance.md +708 -241
- package/govendor/github.com/ncruces/go-sqlite3/LICENSE +21 -0
- package/govendor/github.com/ncruces/go-sqlite3/README.md +121 -0
- package/govendor/github.com/ncruces/go-sqlite3/backup.go +132 -0
- package/govendor/github.com/ncruces/go-sqlite3/blob.go +266 -0
- package/govendor/github.com/ncruces/go-sqlite3/config.go +397 -0
- package/govendor/github.com/ncruces/go-sqlite3/conn.go +540 -0
- package/govendor/github.com/ncruces/go-sqlite3/conn_127.go +93 -0
- package/govendor/github.com/ncruces/go-sqlite3/const.go +436 -0
- package/govendor/github.com/ncruces/go-sqlite3/context.go +222 -0
- package/govendor/github.com/ncruces/go-sqlite3/error.go +182 -0
- package/govendor/github.com/ncruces/go-sqlite3/ext.go +153 -0
- package/govendor/github.com/ncruces/go-sqlite3/func.go +309 -0
- package/govendor/github.com/ncruces/go-sqlite3/go.mod +3 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk.go +29 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_other.go +13 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/dotlk/dotlk_unix.go +57 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/errutil/error.go +41 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/alloc.go +128 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/const.go +122 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/error.go +77 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem.go +116 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_other.go +34 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_unix.go +87 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mem_windows.go +149 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_unix.go +80 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/mmap_windows.go +129 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/sys_windows.go +60 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap.go +82 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_sys.go +113 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/sqlite3_wrap/wrap_vfs.go +181 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/testenv/env.go +55 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/util/json.go +54 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/util/json_v2.go +54 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/util/math.go +29 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/util/page.go +5 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/util/parse.go +142 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/util/pointer.go +3 -0
- package/govendor/github.com/ncruces/go-sqlite3/internal/util/reflect.go +10 -0
- package/govendor/github.com/ncruces/go-sqlite3/json.go +100 -0
- package/govendor/github.com/ncruces/go-sqlite3/json_v2.go +116 -0
- package/govendor/github.com/ncruces/go-sqlite3/pointer.go +13 -0
- package/govendor/github.com/ncruces/go-sqlite3/quote.go +140 -0
- package/govendor/github.com/ncruces/go-sqlite3/stmt.go +692 -0
- package/govendor/github.com/ncruces/go-sqlite3/time.go +360 -0
- package/govendor/github.com/ncruces/go-sqlite3/txn.go +374 -0
- package/govendor/github.com/ncruces/go-sqlite3/value.go +212 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/README.md +133 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/api.go +239 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/cksm.go +143 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/const.go +256 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/file.go +260 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/filename.go +187 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/lock.go +128 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/lock_other.go +23 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/map.go +63 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/map_other.go +13 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_bsd.go +110 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_darwin.go +131 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_dotlk.go +140 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_f2fs_linux.go +56 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_linux.go +117 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_ofd.go +59 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std.go +50 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_alloc.go +19 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_atomic.go +9 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go +13 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_sync.go +9 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_std_temp.go +16 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go +108 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go +180 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/registry.go +48 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/shm.go +26 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_bsd.go +258 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_copy.go +90 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_dotlk.go +168 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_memlk.go +52 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_ofd.go +185 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_other.go +21 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/shm_windows.go +124 -0
- package/govendor/github.com/ncruces/go-sqlite3/vfs/vfs.go +455 -0
- package/govendor/github.com/ncruces/go-sqlite3/vtab.go +677 -0
- package/govendor/github.com/ncruces/go-sqlite3/wrap.go +48 -0
- package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/LICENSE +18 -0
- package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/README.md +11 -0
- package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/go.mod +3 -0
- package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/libc.go +215 -0
- package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.dat +0 -0
- package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/sqlite3.go +157903 -0
- package/govendor/github.com/ncruces/go-sqlite3-wasm/v6/tools.sh +38 -0
- package/govendor/github.com/ncruces/julianday/LICENSE +21 -0
- package/govendor/github.com/ncruces/julianday/README.md +9 -0
- package/govendor/github.com/ncruces/julianday/go.mod +3 -0
- package/govendor/github.com/ncruces/julianday/julianday.go +124 -0
- package/govendor/golang.org/x/sys/LICENSE +27 -0
- package/govendor/golang.org/x/sys/PATENTS +22 -0
- package/govendor/golang.org/x/sys/go.mod +3 -0
- package/govendor/golang.org/x/sys/unix/README.md +184 -0
- package/govendor/golang.org/x/sys/unix/affinity_linux.go +189 -0
- package/govendor/golang.org/x/sys/unix/aliases.go +13 -0
- package/govendor/golang.org/x/sys/unix/asm_aix_ppc64.s +17 -0
- package/govendor/golang.org/x/sys/unix/asm_bsd_386.s +27 -0
- package/govendor/golang.org/x/sys/unix/asm_bsd_amd64.s +27 -0
- package/govendor/golang.org/x/sys/unix/asm_bsd_arm.s +27 -0
- package/govendor/golang.org/x/sys/unix/asm_bsd_arm64.s +27 -0
- package/govendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +29 -0
- package/govendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +27 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_386.s +65 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_amd64.s +57 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_arm.s +56 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_arm64.s +50 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_loong64.s +51 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_mips64x.s +54 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_mipsx.s +52 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +42 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_riscv64.s +47 -0
- package/govendor/golang.org/x/sys/unix/asm_linux_s390x.s +54 -0
- package/govendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +29 -0
- package/govendor/golang.org/x/sys/unix/asm_solaris_amd64.s +17 -0
- package/govendor/golang.org/x/sys/unix/asm_zos_s390x.s +382 -0
- package/govendor/golang.org/x/sys/unix/auxv.go +36 -0
- package/govendor/golang.org/x/sys/unix/auxv_unsupported.go +13 -0
- package/govendor/golang.org/x/sys/unix/bluetooth_linux.go +36 -0
- package/govendor/golang.org/x/sys/unix/bpxsvc_zos.go +657 -0
- package/govendor/golang.org/x/sys/unix/bpxsvc_zos.s +192 -0
- package/govendor/golang.org/x/sys/unix/cap_freebsd.go +195 -0
- package/govendor/golang.org/x/sys/unix/constants.go +13 -0
- package/govendor/golang.org/x/sys/unix/dev_aix_ppc.go +26 -0
- package/govendor/golang.org/x/sys/unix/dev_aix_ppc64.go +28 -0
- package/govendor/golang.org/x/sys/unix/dev_darwin.go +24 -0
- package/govendor/golang.org/x/sys/unix/dev_dragonfly.go +30 -0
- package/govendor/golang.org/x/sys/unix/dev_freebsd.go +30 -0
- package/govendor/golang.org/x/sys/unix/dev_linux.go +42 -0
- package/govendor/golang.org/x/sys/unix/dev_netbsd.go +29 -0
- package/govendor/golang.org/x/sys/unix/dev_openbsd.go +29 -0
- package/govendor/golang.org/x/sys/unix/dev_zos.go +28 -0
- package/govendor/golang.org/x/sys/unix/dirent.go +102 -0
- package/govendor/golang.org/x/sys/unix/endian_big.go +9 -0
- package/govendor/golang.org/x/sys/unix/endian_little.go +9 -0
- package/govendor/golang.org/x/sys/unix/env_unix.go +31 -0
- package/govendor/golang.org/x/sys/unix/fcntl.go +36 -0
- package/govendor/golang.org/x/sys/unix/fcntl_darwin.go +24 -0
- package/govendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +13 -0
- package/govendor/golang.org/x/sys/unix/fdset.go +27 -0
- package/govendor/golang.org/x/sys/unix/gccgo.go +59 -0
- package/govendor/golang.org/x/sys/unix/gccgo_c.c +44 -0
- package/govendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +20 -0
- package/govendor/golang.org/x/sys/unix/ifreq_linux.go +145 -0
- package/govendor/golang.org/x/sys/unix/ioctl_linux.go +341 -0
- package/govendor/golang.org/x/sys/unix/ioctl_signed.go +74 -0
- package/govendor/golang.org/x/sys/unix/ioctl_unsigned.go +74 -0
- package/govendor/golang.org/x/sys/unix/ioctl_zos.go +71 -0
- package/govendor/golang.org/x/sys/unix/mkall.sh +250 -0
- package/govendor/golang.org/x/sys/unix/mkerrors.sh +807 -0
- package/govendor/golang.org/x/sys/unix/mmap_nomremap.go +13 -0
- package/govendor/golang.org/x/sys/unix/mremap.go +57 -0
- package/govendor/golang.org/x/sys/unix/pagesize_unix.go +15 -0
- package/govendor/golang.org/x/sys/unix/pledge_openbsd.go +111 -0
- package/govendor/golang.org/x/sys/unix/ptrace_darwin.go +11 -0
- package/govendor/golang.org/x/sys/unix/ptrace_ios.go +11 -0
- package/govendor/golang.org/x/sys/unix/race.go +30 -0
- package/govendor/golang.org/x/sys/unix/race0.go +25 -0
- package/govendor/golang.org/x/sys/unix/readdirent_getdents.go +12 -0
- package/govendor/golang.org/x/sys/unix/readdirent_getdirentries.go +19 -0
- package/govendor/golang.org/x/sys/unix/readv_unix.go +103 -0
- package/govendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +16 -0
- package/govendor/golang.org/x/sys/unix/sockcmsg_linux.go +85 -0
- package/govendor/golang.org/x/sys/unix/sockcmsg_unix.go +106 -0
- package/govendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +46 -0
- package/govendor/golang.org/x/sys/unix/sockcmsg_zos.go +58 -0
- package/govendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +75 -0
- package/govendor/golang.org/x/sys/unix/syscall.go +86 -0
- package/govendor/golang.org/x/sys/unix/syscall_aix.go +582 -0
- package/govendor/golang.org/x/sys/unix/syscall_aix_ppc.go +52 -0
- package/govendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +83 -0
- package/govendor/golang.org/x/sys/unix/syscall_bsd.go +609 -0
- package/govendor/golang.org/x/sys/unix/syscall_darwin.go +711 -0
- package/govendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +50 -0
- package/govendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +50 -0
- package/govendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +26 -0
- package/govendor/golang.org/x/sys/unix/syscall_dragonfly.go +359 -0
- package/govendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +56 -0
- package/govendor/golang.org/x/sys/unix/syscall_freebsd.go +455 -0
- package/govendor/golang.org/x/sys/unix/syscall_freebsd_386.go +64 -0
- package/govendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +64 -0
- package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +60 -0
- package/govendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +60 -0
- package/govendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +60 -0
- package/govendor/golang.org/x/sys/unix/syscall_hurd.go +30 -0
- package/govendor/golang.org/x/sys/unix/syscall_hurd_386.go +28 -0
- package/govendor/golang.org/x/sys/unix/syscall_illumos.go +78 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux.go +2574 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_386.go +313 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_alarm.go +12 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_amd64.go +144 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +12 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_arm.go +218 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_arm64.go +188 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_gc.go +14 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +16 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +13 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +30 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +20 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_loong64.go +220 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +187 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +173 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_ppc.go +203 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +114 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +193 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_s390x.go +295 -0
- package/govendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +111 -0
- package/govendor/golang.org/x/sys/unix/syscall_netbsd.go +388 -0
- package/govendor/golang.org/x/sys/unix/syscall_netbsd_386.go +37 -0
- package/govendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +37 -0
- package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +37 -0
- package/govendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +37 -0
- package/govendor/golang.org/x/sys/unix/syscall_openbsd.go +346 -0
- package/govendor/golang.org/x/sys/unix/syscall_openbsd_386.go +41 -0
- package/govendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +41 -0
- package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +41 -0
- package/govendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +41 -0
- package/govendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +26 -0
- package/govendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +39 -0
- package/govendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +41 -0
- package/govendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +41 -0
- package/govendor/golang.org/x/sys/unix/syscall_solaris.go +1183 -0
- package/govendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +27 -0
- package/govendor/golang.org/x/sys/unix/syscall_unix.go +619 -0
- package/govendor/golang.org/x/sys/unix/syscall_unix_gc.go +14 -0
- package/govendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +22 -0
- package/govendor/golang.org/x/sys/unix/syscall_zos_s390x.go +3213 -0
- package/govendor/golang.org/x/sys/unix/sysvshm_linux.go +20 -0
- package/govendor/golang.org/x/sys/unix/sysvshm_unix.go +51 -0
- package/govendor/golang.org/x/sys/unix/sysvshm_unix_other.go +13 -0
- package/govendor/golang.org/x/sys/unix/timestruct.go +76 -0
- package/govendor/golang.org/x/sys/unix/unveil_openbsd.go +51 -0
- package/govendor/golang.org/x/sys/unix/vgetrandom_linux.go +13 -0
- package/govendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +11 -0
- package/govendor/golang.org/x/sys/unix/xattr_bsd.go +280 -0
- package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +1384 -0
- package/govendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +1385 -0
- package/govendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +1922 -0
- package/govendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +1922 -0
- package/govendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +1737 -0
- package/govendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +2042 -0
- package/govendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +2039 -0
- package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +2033 -0
- package/govendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +2033 -0
- package/govendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +2147 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux.go +4209 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_386.go +882 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +882 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_arm.go +887 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +884 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +874 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_mips.go +888 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +888 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +888 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +888 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +940 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +944 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +944 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +884 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +943 -0
- package/govendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +992 -0
- package/govendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +1779 -0
- package/govendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +1769 -0
- package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +1758 -0
- package/govendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +1769 -0
- package/govendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +1905 -0
- package/govendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +1905 -0
- package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +1905 -0
- package/govendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +1905 -0
- package/govendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +1905 -0
- package/govendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +1904 -0
- package/govendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +1903 -0
- package/govendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +1556 -0
- package/govendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +990 -0
- package/govendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +40 -0
- package/govendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +17 -0
- package/govendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +49 -0
- package/govendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +49 -0
- package/govendor/golang.org/x/sys/unix/zptrace_x86_linux.go +79 -0
- package/govendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +364 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +1461 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +1420 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +1188 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +1069 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +2728 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +799 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +2728 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +799 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +1666 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +1886 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +1886 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +1886 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +1886 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +1886 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +101 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux.go +2267 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_386.go +469 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +636 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +584 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +535 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +469 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +636 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +630 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +619 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +636 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +641 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +687 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +687 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +531 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +478 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +631 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +1848 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +1848 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +1848 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +1848 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +2407 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +719 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +2407 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +719 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +2407 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +719 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +2407 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +719 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +2407 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +719 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +2407 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +862 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +2407 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +719 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +2217 -0
- package/govendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +3458 -0
- package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +280 -0
- package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +280 -0
- package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +280 -0
- package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +280 -0
- package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +280 -0
- package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +280 -0
- package/govendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +281 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +439 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +437 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +316 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +393 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +393 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +393 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +393 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +393 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_386.go +470 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +394 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +434 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +337 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +334 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +454 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +384 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +384 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +454 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +461 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +433 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +433 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +338 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +399 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +413 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +274 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +274 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +274 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +274 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +219 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +219 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +219 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +218 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +221 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +217 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +218 -0
- package/govendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +2852 -0
- package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +353 -0
- package/govendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +357 -0
- package/govendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +878 -0
- package/govendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +878 -0
- package/govendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +473 -0
- package/govendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +651 -0
- package/govendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +656 -0
- package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +642 -0
- package/govendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +636 -0
- package/govendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +638 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux.go +6547 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_386.go +747 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +761 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_arm.go +741 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +740 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +741 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_mips.go +746 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +743 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +743 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +746 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +754 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +749 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +749 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +828 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +763 -0
- package/govendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +744 -0
- package/govendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +585 -0
- package/govendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +593 -0
- package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +590 -0
- package/govendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +593 -0
- package/govendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +568 -0
- package/govendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +568 -0
- package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +575 -0
- package/govendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +568 -0
- package/govendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +568 -0
- package/govendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +570 -0
- package/govendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +570 -0
- package/govendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +516 -0
- package/govendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +552 -0
- package/govendor/golang.org/x/sys/windows/aliases.go +13 -0
- package/govendor/golang.org/x/sys/windows/dll_windows.go +380 -0
- package/govendor/golang.org/x/sys/windows/env_windows.go +57 -0
- package/govendor/golang.org/x/sys/windows/eventlog.go +20 -0
- package/govendor/golang.org/x/sys/windows/exec_windows.go +248 -0
- package/govendor/golang.org/x/sys/windows/memory_windows.go +48 -0
- package/govendor/golang.org/x/sys/windows/mkerrors.bash +70 -0
- package/govendor/golang.org/x/sys/windows/mkknownfolderids.bash +27 -0
- package/govendor/golang.org/x/sys/windows/mksyscall.go +9 -0
- package/govendor/golang.org/x/sys/windows/race.go +30 -0
- package/govendor/golang.org/x/sys/windows/race0.go +25 -0
- package/govendor/golang.org/x/sys/windows/security_windows.go +1537 -0
- package/govendor/golang.org/x/sys/windows/service.go +257 -0
- package/govendor/golang.org/x/sys/windows/setupapi_windows.go +1425 -0
- package/govendor/golang.org/x/sys/windows/str.go +22 -0
- package/govendor/golang.org/x/sys/windows/syscall.go +104 -0
- package/govendor/golang.org/x/sys/windows/syscall_windows.go +1952 -0
- package/govendor/golang.org/x/sys/windows/types_windows.go +4058 -0
- package/govendor/golang.org/x/sys/windows/types_windows_386.go +35 -0
- package/govendor/golang.org/x/sys/windows/types_windows_amd64.go +34 -0
- package/govendor/golang.org/x/sys/windows/types_windows_arm.go +35 -0
- package/govendor/golang.org/x/sys/windows/types_windows_arm64.go +34 -0
- package/govendor/golang.org/x/sys/windows/zerrors_windows.go +9468 -0
- package/govendor/golang.org/x/sys/windows/zknownfolderids_windows.go +149 -0
- package/govendor/golang.org/x/sys/windows/zsyscall_windows.go +4828 -0
- package/govendor/manifest.txt +7 -0
- package/package.json +7 -1
- package/tsparser/check.go +157 -0
- package/tsparser/main.go +30 -1
- package/types/typenative-go.d.ts +15159 -5
- package/types/typenative-npm.d.ts +2640 -34
- package/types/typenative.d.ts +651 -8
|
@@ -0,0 +1,313 @@
|
|
|
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 386 && linux
|
|
6
|
+
|
|
7
|
+
package unix
|
|
8
|
+
|
|
9
|
+
import (
|
|
10
|
+
"unsafe"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
func setTimespec(sec, nsec int64) Timespec {
|
|
14
|
+
return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
func setTimeval(sec, usec int64) Timeval {
|
|
18
|
+
return Timeval{Sec: int32(sec), Usec: int32(usec)}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// 64-bit file system and 32-bit uid calls
|
|
22
|
+
// (386 default is 32-bit file system and 16-bit uid).
|
|
23
|
+
//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64
|
|
24
|
+
//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
|
|
25
|
+
//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
|
|
26
|
+
//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
|
|
27
|
+
//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
|
|
28
|
+
//sysnb Getegid() (egid int) = SYS_GETEGID32
|
|
29
|
+
//sysnb Geteuid() (euid int) = SYS_GETEUID32
|
|
30
|
+
//sysnb Getgid() (gid int) = SYS_GETGID32
|
|
31
|
+
//sysnb Getuid() (uid int) = SYS_GETUID32
|
|
32
|
+
//sys Ioperm(from int, num int, on int) (err error)
|
|
33
|
+
//sys Iopl(level int) (err error)
|
|
34
|
+
//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
|
|
35
|
+
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
|
|
36
|
+
//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
|
|
37
|
+
//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
|
|
38
|
+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
|
|
39
|
+
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
|
|
40
|
+
//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
|
|
41
|
+
//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32
|
|
42
|
+
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
|
|
43
|
+
//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
|
|
44
|
+
//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
|
|
45
|
+
//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
|
|
46
|
+
//sys Ustat(dev int, ubuf *Ustat_t) (err error)
|
|
47
|
+
//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32
|
|
48
|
+
//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32
|
|
49
|
+
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
|
|
50
|
+
|
|
51
|
+
//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)
|
|
52
|
+
//sys Pause() (err error)
|
|
53
|
+
|
|
54
|
+
func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
|
|
55
|
+
page := uintptr(offset / 4096)
|
|
56
|
+
if offset != int64(page)*4096 {
|
|
57
|
+
return 0, EINVAL
|
|
58
|
+
}
|
|
59
|
+
return mmap2(addr, length, prot, flags, fd, page)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
type rlimit32 struct {
|
|
63
|
+
Cur uint32
|
|
64
|
+
Max uint32
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT
|
|
68
|
+
|
|
69
|
+
const rlimInf32 = ^uint32(0)
|
|
70
|
+
const rlimInf64 = ^uint64(0)
|
|
71
|
+
|
|
72
|
+
func Getrlimit(resource int, rlim *Rlimit) (err error) {
|
|
73
|
+
err = Prlimit(0, resource, nil, rlim)
|
|
74
|
+
if err != ENOSYS {
|
|
75
|
+
return err
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
rl := rlimit32{}
|
|
79
|
+
err = getrlimit(resource, &rl)
|
|
80
|
+
if err != nil {
|
|
81
|
+
return
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if rl.Cur == rlimInf32 {
|
|
85
|
+
rlim.Cur = rlimInf64
|
|
86
|
+
} else {
|
|
87
|
+
rlim.Cur = uint64(rl.Cur)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if rl.Max == rlimInf32 {
|
|
91
|
+
rlim.Max = rlimInf64
|
|
92
|
+
} else {
|
|
93
|
+
rlim.Max = uint64(rl.Max)
|
|
94
|
+
}
|
|
95
|
+
return
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
|
|
99
|
+
newoffset, errno := seek(fd, offset, whence)
|
|
100
|
+
if errno != 0 {
|
|
101
|
+
return 0, errno
|
|
102
|
+
}
|
|
103
|
+
return newoffset, nil
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
|
|
107
|
+
//sysnb Gettimeofday(tv *Timeval) (err error)
|
|
108
|
+
//sysnb Time(t *Time_t) (tt Time_t, err error)
|
|
109
|
+
//sys Utime(path string, buf *Utimbuf) (err error)
|
|
110
|
+
//sys utimes(path string, times *[2]Timeval) (err error)
|
|
111
|
+
|
|
112
|
+
// On x86 Linux, all the socket calls go through an extra indirection,
|
|
113
|
+
// I think because the 5-register system call interface can't handle
|
|
114
|
+
// the 6-argument calls like sendto and recvfrom. Instead the
|
|
115
|
+
// arguments to the underlying system call are the number below
|
|
116
|
+
// and a pointer to an array of uintptr. We hide the pointer in the
|
|
117
|
+
// socketcall assembly to avoid allocation on every system call.
|
|
118
|
+
|
|
119
|
+
const (
|
|
120
|
+
// see linux/net.h
|
|
121
|
+
_SOCKET = 1
|
|
122
|
+
_BIND = 2
|
|
123
|
+
_CONNECT = 3
|
|
124
|
+
_LISTEN = 4
|
|
125
|
+
_ACCEPT = 5
|
|
126
|
+
_GETSOCKNAME = 6
|
|
127
|
+
_GETPEERNAME = 7
|
|
128
|
+
_SOCKETPAIR = 8
|
|
129
|
+
_SEND = 9
|
|
130
|
+
_RECV = 10
|
|
131
|
+
_SENDTO = 11
|
|
132
|
+
_RECVFROM = 12
|
|
133
|
+
_SHUTDOWN = 13
|
|
134
|
+
_SETSOCKOPT = 14
|
|
135
|
+
_GETSOCKOPT = 15
|
|
136
|
+
_SENDMSG = 16
|
|
137
|
+
_RECVMSG = 17
|
|
138
|
+
_ACCEPT4 = 18
|
|
139
|
+
_RECVMMSG = 19
|
|
140
|
+
_SENDMMSG = 20
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
|
|
144
|
+
fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
|
|
145
|
+
if e != 0 {
|
|
146
|
+
err = e
|
|
147
|
+
}
|
|
148
|
+
return
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
|
|
152
|
+
_, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
|
|
153
|
+
if e != 0 {
|
|
154
|
+
err = e
|
|
155
|
+
}
|
|
156
|
+
return
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
|
|
160
|
+
_, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
|
|
161
|
+
if e != 0 {
|
|
162
|
+
err = e
|
|
163
|
+
}
|
|
164
|
+
return
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {
|
|
168
|
+
_, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)
|
|
169
|
+
if e != 0 {
|
|
170
|
+
err = e
|
|
171
|
+
}
|
|
172
|
+
return
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
|
|
176
|
+
_, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
|
|
177
|
+
if e != 0 {
|
|
178
|
+
err = e
|
|
179
|
+
}
|
|
180
|
+
return
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
|
|
184
|
+
_, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
|
|
185
|
+
if e != 0 {
|
|
186
|
+
err = e
|
|
187
|
+
}
|
|
188
|
+
return
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
func socket(domain int, typ int, proto int) (fd int, err error) {
|
|
192
|
+
fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
|
|
193
|
+
if e != 0 {
|
|
194
|
+
err = e
|
|
195
|
+
}
|
|
196
|
+
return
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
|
|
200
|
+
_, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
|
|
201
|
+
if e != 0 {
|
|
202
|
+
err = e
|
|
203
|
+
}
|
|
204
|
+
return
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
|
|
208
|
+
_, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0)
|
|
209
|
+
if e != 0 {
|
|
210
|
+
err = e
|
|
211
|
+
}
|
|
212
|
+
return
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
|
|
216
|
+
var base uintptr
|
|
217
|
+
if len(p) > 0 {
|
|
218
|
+
base = uintptr(unsafe.Pointer(&p[0]))
|
|
219
|
+
}
|
|
220
|
+
n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
|
|
221
|
+
if e != 0 {
|
|
222
|
+
err = e
|
|
223
|
+
}
|
|
224
|
+
return
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
|
|
228
|
+
var base uintptr
|
|
229
|
+
if len(p) > 0 {
|
|
230
|
+
base = uintptr(unsafe.Pointer(&p[0]))
|
|
231
|
+
}
|
|
232
|
+
_, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen))
|
|
233
|
+
if e != 0 {
|
|
234
|
+
err = e
|
|
235
|
+
}
|
|
236
|
+
return
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
|
|
240
|
+
n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
|
|
241
|
+
if e != 0 {
|
|
242
|
+
err = e
|
|
243
|
+
}
|
|
244
|
+
return
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
|
|
248
|
+
n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
|
|
249
|
+
if e != 0 {
|
|
250
|
+
err = e
|
|
251
|
+
}
|
|
252
|
+
return
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
func Listen(s int, n int) (err error) {
|
|
256
|
+
_, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0)
|
|
257
|
+
if e != 0 {
|
|
258
|
+
err = e
|
|
259
|
+
}
|
|
260
|
+
return
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
func Shutdown(s, how int) (err error) {
|
|
264
|
+
_, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0)
|
|
265
|
+
if e != 0 {
|
|
266
|
+
err = e
|
|
267
|
+
}
|
|
268
|
+
return
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
func Fstatfs(fd int, buf *Statfs_t) (err error) {
|
|
272
|
+
_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
|
|
273
|
+
if e != 0 {
|
|
274
|
+
err = e
|
|
275
|
+
}
|
|
276
|
+
return
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
func Statfs(path string, buf *Statfs_t) (err error) {
|
|
280
|
+
pathp, err := BytePtrFromString(path)
|
|
281
|
+
if err != nil {
|
|
282
|
+
return err
|
|
283
|
+
}
|
|
284
|
+
_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
|
|
285
|
+
if e != 0 {
|
|
286
|
+
err = e
|
|
287
|
+
}
|
|
288
|
+
return
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) }
|
|
292
|
+
|
|
293
|
+
func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) }
|
|
294
|
+
|
|
295
|
+
func (iov *Iovec) SetLen(length int) {
|
|
296
|
+
iov.Len = uint32(length)
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
func (msghdr *Msghdr) SetControllen(length int) {
|
|
300
|
+
msghdr.Controllen = uint32(length)
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
func (msghdr *Msghdr) SetIovlen(length int) {
|
|
304
|
+
msghdr.Iovlen = uint32(length)
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
func (cmsg *Cmsghdr) SetLen(length int) {
|
|
308
|
+
cmsg.Len = uint32(length)
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
|
|
312
|
+
rsa.Service_name_len = uint32(length)
|
|
313
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Copyright 2022 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 linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64)
|
|
6
|
+
|
|
7
|
+
package unix
|
|
8
|
+
|
|
9
|
+
// SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH
|
|
10
|
+
// values.
|
|
11
|
+
|
|
12
|
+
//sys Alarm(seconds uint) (remaining uint, err error)
|
|
@@ -0,0 +1,144 @@
|
|
|
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 amd64 && linux
|
|
6
|
+
|
|
7
|
+
package unix
|
|
8
|
+
|
|
9
|
+
//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
|
|
10
|
+
//sys Fchown(fd int, uid int, gid int) (err error)
|
|
11
|
+
//sys Fstat(fd int, stat *Stat_t) (err error)
|
|
12
|
+
//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
|
|
13
|
+
//sys Fstatfs(fd int, buf *Statfs_t) (err error)
|
|
14
|
+
//sys Ftruncate(fd int, length int64) (err error)
|
|
15
|
+
//sysnb Getegid() (egid int)
|
|
16
|
+
//sysnb Geteuid() (euid int)
|
|
17
|
+
//sysnb Getgid() (gid int)
|
|
18
|
+
//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
|
|
19
|
+
//sysnb Getuid() (uid int)
|
|
20
|
+
//sys Ioperm(from int, num int, on int) (err error)
|
|
21
|
+
//sys Iopl(level int) (err error)
|
|
22
|
+
//sys Lchown(path string, uid int, gid int) (err error)
|
|
23
|
+
//sys Listen(s int, n int) (err error)
|
|
24
|
+
|
|
25
|
+
func Lstat(path string, stat *Stat_t) (err error) {
|
|
26
|
+
return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//sys MemfdSecret(flags int) (fd int, err error)
|
|
30
|
+
//sys Pause() (err error)
|
|
31
|
+
//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
|
|
32
|
+
//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
|
|
33
|
+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
|
|
34
|
+
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
|
|
35
|
+
|
|
36
|
+
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
|
|
37
|
+
var ts *Timespec
|
|
38
|
+
if timeout != nil {
|
|
39
|
+
ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
|
|
40
|
+
}
|
|
41
|
+
return pselect6(nfd, r, w, e, ts, nil)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
|
45
|
+
//sys setfsgid(gid int) (prev int, err error)
|
|
46
|
+
//sys setfsuid(uid int) (prev int, err error)
|
|
47
|
+
//sys Shutdown(fd int, how int) (err error)
|
|
48
|
+
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
|
49
|
+
|
|
50
|
+
func Stat(path string, stat *Stat_t) (err error) {
|
|
51
|
+
// Use fstatat, because Android's seccomp policy blocks stat.
|
|
52
|
+
return Fstatat(AT_FDCWD, path, stat, 0)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//sys Statfs(path string, buf *Statfs_t) (err error)
|
|
56
|
+
//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
|
|
57
|
+
//sys Truncate(path string, length int64) (err error)
|
|
58
|
+
//sys Ustat(dev int, ubuf *Ustat_t) (err error)
|
|
59
|
+
//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
|
|
60
|
+
//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
|
|
61
|
+
//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
|
|
62
|
+
//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
|
|
63
|
+
//sysnb setgroups(n int, list *_Gid_t) (err error)
|
|
64
|
+
//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
|
|
65
|
+
//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
|
|
66
|
+
//sysnb socket(domain int, typ int, proto int) (fd int, err error)
|
|
67
|
+
//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
|
|
68
|
+
//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
|
|
69
|
+
//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
|
|
70
|
+
//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
|
|
71
|
+
//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
|
|
72
|
+
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
|
|
73
|
+
//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
|
|
74
|
+
//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
|
|
75
|
+
|
|
76
|
+
//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
|
|
77
|
+
|
|
78
|
+
func Gettimeofday(tv *Timeval) (err error) {
|
|
79
|
+
errno := gettimeofday(tv)
|
|
80
|
+
if errno != 0 {
|
|
81
|
+
return errno
|
|
82
|
+
}
|
|
83
|
+
return nil
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
func Time(t *Time_t) (tt Time_t, err error) {
|
|
87
|
+
var tv Timeval
|
|
88
|
+
errno := gettimeofday(&tv)
|
|
89
|
+
if errno != 0 {
|
|
90
|
+
return 0, errno
|
|
91
|
+
}
|
|
92
|
+
if t != nil {
|
|
93
|
+
*t = Time_t(tv.Sec)
|
|
94
|
+
}
|
|
95
|
+
return Time_t(tv.Sec), nil
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
//sys Utime(path string, buf *Utimbuf) (err error)
|
|
99
|
+
//sys utimes(path string, times *[2]Timeval) (err error)
|
|
100
|
+
|
|
101
|
+
func setTimespec(sec, nsec int64) Timespec {
|
|
102
|
+
return Timespec{Sec: sec, Nsec: nsec}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
func setTimeval(sec, usec int64) Timeval {
|
|
106
|
+
return Timeval{Sec: sec, Usec: usec}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
func (r *PtraceRegs) PC() uint64 { return r.Rip }
|
|
110
|
+
|
|
111
|
+
func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc }
|
|
112
|
+
|
|
113
|
+
func (iov *Iovec) SetLen(length int) {
|
|
114
|
+
iov.Len = uint64(length)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
func (msghdr *Msghdr) SetControllen(length int) {
|
|
118
|
+
msghdr.Controllen = uint64(length)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
func (msghdr *Msghdr) SetIovlen(length int) {
|
|
122
|
+
msghdr.Iovlen = uint64(length)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
func (cmsg *Cmsghdr) SetLen(length int) {
|
|
126
|
+
cmsg.Len = uint64(length)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
|
|
130
|
+
rsa.Service_name_len = uint64(length)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
|
|
134
|
+
|
|
135
|
+
func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
|
|
136
|
+
cmdlineLen := len(cmdline)
|
|
137
|
+
if cmdlineLen > 0 {
|
|
138
|
+
// Account for the additional NULL byte added by
|
|
139
|
+
// BytePtrFromString in kexecFileLoad. The kexec_file_load
|
|
140
|
+
// syscall expects a NULL-terminated string.
|
|
141
|
+
cmdlineLen++
|
|
142
|
+
}
|
|
143
|
+
return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
|
|
144
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Copyright 2016 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 amd64 && linux && gc
|
|
6
|
+
|
|
7
|
+
package unix
|
|
8
|
+
|
|
9
|
+
import "syscall"
|
|
10
|
+
|
|
11
|
+
//go:noescape
|
|
12
|
+
func gettimeofday(tv *Timeval) (err syscall.Errno)
|
|
@@ -0,0 +1,218 @@
|
|
|
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 arm && linux
|
|
6
|
+
|
|
7
|
+
package unix
|
|
8
|
+
|
|
9
|
+
import (
|
|
10
|
+
"unsafe"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
func setTimespec(sec, nsec int64) Timespec {
|
|
14
|
+
return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
func setTimeval(sec, usec int64) Timeval {
|
|
18
|
+
return Timeval{Sec: int32(sec), Usec: int32(usec)}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
|
|
22
|
+
newoffset, errno := seek(fd, offset, whence)
|
|
23
|
+
if errno != 0 {
|
|
24
|
+
return 0, errno
|
|
25
|
+
}
|
|
26
|
+
return newoffset, nil
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
|
|
30
|
+
//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
|
|
31
|
+
//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
|
|
32
|
+
//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32
|
|
33
|
+
//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32
|
|
34
|
+
//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
|
|
35
|
+
//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
|
|
36
|
+
//sysnb socket(domain int, typ int, proto int) (fd int, err error)
|
|
37
|
+
//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
|
|
38
|
+
//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
|
|
39
|
+
//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
|
|
40
|
+
//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
|
|
41
|
+
//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error)
|
|
42
|
+
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
|
|
43
|
+
//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
|
|
44
|
+
|
|
45
|
+
// 64-bit file system and 32-bit uid calls
|
|
46
|
+
// (16-bit uid calls are not always supported in newer kernels)
|
|
47
|
+
//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
|
|
48
|
+
//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
|
|
49
|
+
//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
|
|
50
|
+
//sysnb Getegid() (egid int) = SYS_GETEGID32
|
|
51
|
+
//sysnb Geteuid() (euid int) = SYS_GETEUID32
|
|
52
|
+
//sysnb Getgid() (gid int) = SYS_GETGID32
|
|
53
|
+
//sysnb Getuid() (uid int) = SYS_GETUID32
|
|
54
|
+
//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
|
|
55
|
+
//sys Listen(s int, n int) (err error)
|
|
56
|
+
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
|
|
57
|
+
//sys Pause() (err error)
|
|
58
|
+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
|
|
59
|
+
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
|
|
60
|
+
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
|
|
61
|
+
//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
|
|
62
|
+
//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32
|
|
63
|
+
//sys Shutdown(fd int, how int) (err error)
|
|
64
|
+
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
|
|
65
|
+
//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
|
|
66
|
+
//sys Ustat(dev int, ubuf *Ustat_t) (err error)
|
|
67
|
+
|
|
68
|
+
//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
|
|
69
|
+
//sysnb Gettimeofday(tv *Timeval) (err error)
|
|
70
|
+
|
|
71
|
+
func Time(t *Time_t) (Time_t, error) {
|
|
72
|
+
var tv Timeval
|
|
73
|
+
err := Gettimeofday(&tv)
|
|
74
|
+
if err != nil {
|
|
75
|
+
return 0, err
|
|
76
|
+
}
|
|
77
|
+
if t != nil {
|
|
78
|
+
*t = Time_t(tv.Sec)
|
|
79
|
+
}
|
|
80
|
+
return Time_t(tv.Sec), nil
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
func Utime(path string, buf *Utimbuf) error {
|
|
84
|
+
if buf == nil {
|
|
85
|
+
return Utimes(path, nil)
|
|
86
|
+
}
|
|
87
|
+
tv := []Timeval{
|
|
88
|
+
{Sec: buf.Actime},
|
|
89
|
+
{Sec: buf.Modtime},
|
|
90
|
+
}
|
|
91
|
+
return Utimes(path, tv)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
//sys utimes(path string, times *[2]Timeval) (err error)
|
|
95
|
+
|
|
96
|
+
//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
|
|
97
|
+
//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
|
|
98
|
+
//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
|
|
99
|
+
//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
|
|
100
|
+
|
|
101
|
+
func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
|
|
102
|
+
_, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32))
|
|
103
|
+
if e1 != 0 {
|
|
104
|
+
err = errnoErr(e1)
|
|
105
|
+
}
|
|
106
|
+
return
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)
|
|
110
|
+
|
|
111
|
+
func Fstatfs(fd int, buf *Statfs_t) (err error) {
|
|
112
|
+
_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
|
|
113
|
+
if e != 0 {
|
|
114
|
+
err = e
|
|
115
|
+
}
|
|
116
|
+
return
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
func Statfs(path string, buf *Statfs_t) (err error) {
|
|
120
|
+
pathp, err := BytePtrFromString(path)
|
|
121
|
+
if err != nil {
|
|
122
|
+
return err
|
|
123
|
+
}
|
|
124
|
+
_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
|
|
125
|
+
if e != 0 {
|
|
126
|
+
err = e
|
|
127
|
+
}
|
|
128
|
+
return
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
|
|
132
|
+
page := uintptr(offset / 4096)
|
|
133
|
+
if offset != int64(page)*4096 {
|
|
134
|
+
return 0, EINVAL
|
|
135
|
+
}
|
|
136
|
+
return mmap2(addr, length, prot, flags, fd, page)
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
type rlimit32 struct {
|
|
140
|
+
Cur uint32
|
|
141
|
+
Max uint32
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT
|
|
145
|
+
|
|
146
|
+
const rlimInf32 = ^uint32(0)
|
|
147
|
+
const rlimInf64 = ^uint64(0)
|
|
148
|
+
|
|
149
|
+
func Getrlimit(resource int, rlim *Rlimit) (err error) {
|
|
150
|
+
err = Prlimit(0, resource, nil, rlim)
|
|
151
|
+
if err != ENOSYS {
|
|
152
|
+
return err
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
rl := rlimit32{}
|
|
156
|
+
err = getrlimit(resource, &rl)
|
|
157
|
+
if err != nil {
|
|
158
|
+
return
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if rl.Cur == rlimInf32 {
|
|
162
|
+
rlim.Cur = rlimInf64
|
|
163
|
+
} else {
|
|
164
|
+
rlim.Cur = uint64(rl.Cur)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if rl.Max == rlimInf32 {
|
|
168
|
+
rlim.Max = rlimInf64
|
|
169
|
+
} else {
|
|
170
|
+
rlim.Max = uint64(rl.Max)
|
|
171
|
+
}
|
|
172
|
+
return
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) }
|
|
176
|
+
|
|
177
|
+
func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) }
|
|
178
|
+
|
|
179
|
+
func (iov *Iovec) SetLen(length int) {
|
|
180
|
+
iov.Len = uint32(length)
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
func (msghdr *Msghdr) SetControllen(length int) {
|
|
184
|
+
msghdr.Controllen = uint32(length)
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
func (msghdr *Msghdr) SetIovlen(length int) {
|
|
188
|
+
msghdr.Iovlen = uint32(length)
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
func (cmsg *Cmsghdr) SetLen(length int) {
|
|
192
|
+
cmsg.Len = uint32(length)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
|
|
196
|
+
rsa.Service_name_len = uint32(length)
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
//sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE
|
|
200
|
+
|
|
201
|
+
func SyncFileRange(fd int, off int64, n int64, flags int) error {
|
|
202
|
+
// The sync_file_range and arm_sync_file_range syscalls differ only in the
|
|
203
|
+
// order of their arguments.
|
|
204
|
+
return armSyncFileRange(fd, flags, off, n)
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
|
|
208
|
+
|
|
209
|
+
func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
|
|
210
|
+
cmdlineLen := len(cmdline)
|
|
211
|
+
if cmdlineLen > 0 {
|
|
212
|
+
// Account for the additional NULL byte added by
|
|
213
|
+
// BytePtrFromString in kexecFileLoad. The kexec_file_load
|
|
214
|
+
// syscall expects a NULL-terminated string.
|
|
215
|
+
cmdlineLen++
|
|
216
|
+
}
|
|
217
|
+
return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
|
|
218
|
+
}
|